使用VSFTPD傳輸檔案

2022-08-13 06:21:13 字數 4368 閱讀 2339

ftp(file transfer protocol)是一種在網際網路進行檔案傳輸的協議,基於b/s模式,預設使用20、21埠,其中20埠(資料埠)用於資料傳輸,21埠(命令埠)用於

接收客戶端發出的相關ftp命令與引數。

ftp協議的兩種工作模式:

vsftpd(very secure ftp daemon)是一款執行在linux上的ftp服務程式。

vsftp允許使用者以三種模式登陸到ftp伺服器上。

1.匿名開放模式:任何人可以無需密碼驗證直接登陸到ftp伺服器上。

2.本地使用者模式:通過linux系統本地的賬戶密碼進行認證登陸。

3.虛擬使用者模式:需要為ftp服務單獨建立使用者資料庫檔案,這些賬戶僅提供ftp服務程式認證。(最安全的模式)

ftp是linux系統中以命令列方式管理ftp服務的客戶端工具。

vsftpd預設開啟了匿名開放模式。

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

1 anonymous_enable=yes

2 anon_umask=022

3 anon_upload_enable=yes

4 anon_mkdir_write_enable=yes

5 anon_other_write_enable=yes

在 vsftpd 服務程式的匿名開放認證模式下,其賬戶統一為 anonymous,密碼為空。

而且在連線到 ftp 伺服器後,預設訪問的是/var/ftp 目錄。接下來具體操作,注意root許可權以及selinux。

開啟方式:

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

1 anonymous_enable=no

2 local_enable=yes

3 write_enable=yes

4 local_umask=022

重啟:

[root@linuxprobe ~]# systemctl restart vsftpd

[root@linuxprobe ~]# systemctl enable vsftpd

更改user_list:

[root@linuxprobe ~]# cat /etc/vsftpd/user_list

1# vsftpd userlist

2 # if userlist_deny=no, only allow users in this file

3 # if userlist_deny=yes (default), never allow users in this file

, and

4 # do not even prompt for

a password.

5 # note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers

6 # for

users that are denied.

7 root #刪除它

登陸:

ftp

140.143.88.174

步驟:1)

建立用於進行

ftp

認證的使用者資料庫檔案,其中奇數行為賬戶名,偶數行為密碼。例如, 

[root@linuxprobe ~]# cd /etc/vsftpd/[root@linuxprobe vsftpd]# vim vuser.list

zhangsan

redhat

lisi

redhat

用 db

_load

命令用雜湊(

hash

)演算法將原始的明文資訊檔案轉換成資料庫檔案,並且降低

資料庫檔案的許可權(避免其他人看到資料庫檔案的內容),然後再把原始的明文資訊檔案

刪除。

[root@linuxprobe vsftpd]# db_load -t -t hash -f vuser.list vuser.db

[root@linuxprobe vsftpd]#

file

vuser.db

vuser.db: berkeley db (hash, version

9, native byte-order)

[root@linuxprobe vsftpd]#

chmod

600vuser.db

[root@linuxprobe vsftpd]#

rm -f vuser.list

2)建立 vsftpd 服務程式用於儲存檔案的根目錄以及虛擬使用者對映的系統本地使用者。

ftp 服務用於儲存檔案的根目錄指的是,當虛擬使用者登入後所訪問的預設位置。

由於 linux

系統中的每乙個檔案都有所有者、所屬組屬性,例如使用虛擬賬戶「張三」

新建了乙個檔案,但是系統中找不到賬戶「張三」,就會導致這個檔案的許可權出現錯誤。為此,

需要再建立乙個可以對映到虛擬使用者的系統本地使用者。簡單來說,就是讓虛擬使用者預設登入

到與之有對映關係的這個系統本地使用者的家目錄中,虛擬使用者建立的檔案的屬性也都歸屬於

這個系統本地使用者,從而避免

linux

系統無法處理虛擬使用者所建立檔案的屬性許可權。

為了方便管理

ftp

伺服器上的資料,可以把這個系統本地使用者的家目錄設定為

/var

目錄(該目錄用來存放經常發生改變的資料)。並且為了安全起見,我們將這個系統本地使用者設定

為不允許登入

ftp

伺服器,這不會影響虛擬使用者登入,而且還可以避免黑客通過這個系統本

地使用者進行登入。

[root@linuxprobe ~]# useradd -d /var/ftproot -s /sbin/nologin virtual

[root@linuxprobe ~]# ls -ld /var/ftproot/drwx------. 3 virtual virtual 74 jul 14

17:50 /var/ftproot/[root@linuxprobe ~]# chmod -rf 755 /var/ftproot/

3)建立用於支援虛擬使用者的pam檔案

pam

是一組安全機制的模組,系統管理員可以用來輕易地調整服務程式的認證方式,而不必對應用程式進行任何修改 。

新建乙個用於虛擬使用者認證的

pam

檔案 vsftpd.vu

,其中

pam

檔案內的「

db=」引數為

使用 db

_load

命令生成的賬戶密碼資料庫檔案的路徑,但不用寫資料庫檔案的字尾:

[root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/vuser

account required pam_userdb.so db=/etc/vsftpd/vuser

4)在 vsftpd 服務程式的主配置檔案中通過 pam_service_name 引數將 pam 認證檔案的名稱修改為 vsftpd.vu

1 anonymous_enable=no

2 local_enable=yes

3 guest_enable=yes

4 guest_username=virtual

5 allow_writeable_chroot=yes

5)為虛擬使用者設定不同的許可權。

[root@linuxprobe ~]# mkdir /etc/vsftpd/vusers_dir/[root@linuxprobe ~]# cd /etc/vsftpd/vusers_dir/[root@linuxprobe vusers_dir]# 

touch

lisi

[root@linuxprobe vusers_dir]# vim zhangsan

anon_upload_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

user_config_dir=/etc/vsftpd/vusers_dir
6)設定

selinux

域允許策略

Linux 使用vsftpd服務傳輸檔案

檔案傳輸協議 ftp伺服器是按照ftp協議在網際網路上提供檔案儲存和訪問服務的主機,ftp客戶端則是向伺服器傳送連線請求,以建立資料傳輸鏈路的主機。ftp協議有下面兩種工作模式。在學習防火牆服務配置時曾經講過,防火牆一般是用於過濾從外網進入內網的流量,因此有些時候需要將ftp的工作模式設定為主動模式...

使用pscp傳輸檔案

win下可以使用pscp來進行 putty的官網有下 進入cmd,使用cmd開啟pscp.exe,輸入命令列 pscp 選項 檔名 使用者名稱 host 位置 將本地檔案複製到host主機下,如 pscp test root 192.168.222.2 var www,把test 檔案傳到 var ...

使用scp傳輸檔案

scp是secure copy的縮寫,主要用於伺服器檔案傳輸,是linux系統下基於ssh登陸進行安全的遠端檔案拷貝命令。命令格式scp 引數 原路徑 目標路徑 命令引數 1 強制scp命令使用協議ssh1 2 強制scp命令使用協議ssh2 4 強制scp命令只使用ipv4定址 6 強制scp命令...