centos/linux下的安裝vsftpd

lonecloud發表於2017-08-12

1.簡介:

  vsftpd 是“very secure FTP daemon”的縮寫,安全性是它的一個最大的特點。vsftpd 是一個 UNIX 類作業系統上執行的伺服器的名字,ftp伺服器軟體

2.安裝

使用root使用者執行以下指令:

yum -y install vsftpd

3.檢視是否安裝成功

yum qa |grep vsftpd

 

4.建立虛擬使用者

建立儲存該ftp檔案的資料夾

 mkdir ftpfile

 新增匿名使用者並將剛剛建立的ftpfile資料夾設定為該使用者的資料夾

useradd ftpfile -d /ftpfile -s /sbin/nologin

 修改ftpfile資料夾許可權

chown -R ftpfile:ftpfile  /ftpfile/

 

  

設定ftpfile使用者的密碼

passwd ftpfile

 5.將該使用者新增到配置檔案中

vim /etc/vsftpd/chroot_list

 在最後一行新增ftpfile使用者然後儲存

 

6.修改配置檔案將SeLinuX關閉(這個和vsftpd衝突)

  將下面配置檔案中的SELINUX=diasable

vim /etc/selinux/config 

 然後按:wq退出

注意:

  如果後面驗證碰到550拒絕訪問的時候請執行

setsebool -P ftp_home_dir 1

7. 配置vsftpd檔案配置

whereis vsftpd
vim /etc/vsftpd/vsftpd.conf

 在vim下輸入/banner找到該位置

1)local_root=/ftpfile(當本地使用者登入時,將被更換到定義的目錄下,預設值為各使用者的家目錄) 
2)anon_root=/ftpfile(使用匿名登入時,所登入的目錄) 
3)use_localtime=YES(預設是GMT時間,改成使用本機系統時間)
4)anonymous_enable=NO(不允許匿名使用者登入)
5)local_enable=YES(允許本地使用者登入)
6)write_enable=YES(本地使用者可以在自己家目錄中進行讀寫操作)
7)local_umask=022(本地使用者新增檔案時的umask值)
8)dirmessage_enable=YES(如果啟動這個選項,那麼使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,如果有,則會出現此檔案的內容,通常這個檔案會放置歡迎話語,或是對該目錄的說明。預設值為開啟)
9)xferlog_enable=YES(是否啟用上傳/下載日誌記錄。如果啟用,則上傳與下載的資訊將被完整紀錄在xferlog_file 所定義的檔案中。預設為開啟。)
10)connect_from_port_20=YES(指定FTP使用20埠進行資料傳輸,預設值為YES)
11)xferlog_std_format=YES(如果啟用,則日誌檔案將會寫成xferlog的標準格式)
12)ftpd_banner=Welcome to mmall FTP Server(這裡用來定義歡迎話語的字串)
13)chroot_local_user=NO(用於指定使用者列表檔案中的使用者是否允許切換到上級目錄)
14)chroot_list_enable=YES(設定是否啟用chroot_list_file配置項指定的使用者列表檔案)
15)chroot_list_file=/etc/vsftpd/chroot_list(用於指定使用者列表檔案)
16)listen=YES(設定vsftpd伺服器是否以standalone模式執行,以standalone模式執行是一種較好的方式,此時listen必須設定為YES,此為預設值。建議不要更改,有很多與伺服器執行相關的配置命令,需要在此模式下才有效,若設定為NO,則vsftpd不是以獨立的服務執行,要受到xinetd服務的管控,功能上會受到限制)
17)pam_service_name=vsftpd(虛擬使用者使用PAM認證方式,這裡是設定PAM使用的名稱,預設即可,與/etc/pam.d/vsftpd對應) userlist_enable=YES(是否啟用vsftpd.user_list檔案,黑名單,白名單都可以
18)pasv_min_port=61001(被動模式使用埠範圍最小值)
19)pasv_max_port=62000(被動模式使用埠範圍最大值)
20)pasv_enable=YES(pasv_enable=YES/NO(YES)
若設定為YES,則使用PASV工作模式;若設定為NO,則使用PORT模式。預設值為YES,即使用PASV工作模式。
   FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
   一、PORT(主動)方式的連線過程是:客戶端向伺服器的FTP埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。 
  當需要傳送資料時,客戶端在命令鏈路上用 PORT命令告訴伺服器:“我開啟了****埠,你過來連線我”。於是伺服器從20埠向客戶端的****埠傳送連線請求,建立一條資料鏈路來傳送資料。
   二、PASV(被動)方式的連線過程是:客戶端向伺服器的FTP埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。 
  當需要傳送資料時,伺服器在命令鏈路上用 PASV命令告訴客戶端:“我開啟了****埠,你過來連線我”。於是客戶端向伺服器的****埠傳送連線請求,建立一條資料鏈路來傳送資料。 
  從上面可以看出,兩種方式的命令鏈路連線方法是一樣的,而資料鏈路的建立方法就完全不同。而FTP的複雜性就在於此。
)

新增自定義傳輸埠:

pasv_min_port=610001
pasv_max_port=620000

 

配置好了輸入:wq儲存

8.配置防火牆

vim /etc/sysconfig/iptables

 加入ip設定

-A INPUT -p TCP --dport 61001:62000 -j ACCEPT
-A OUTPUT -p TCP --sport 61001:62000 -j ACCEPT
-A INPUT -p TCP --dport 20 -j ACCEPT
-A OUTPUT -p TCP --sport 20 -j ACCEPT
-A INPUT -p TCP --dport 21 -j ACCEPT
-A OUTPUT -p TCP --sport 21 -j ACCEPT

 

 然後儲存

讓防火牆服務重啟

service iptables restart

 出現如下圖所示則儲存完成

 

啟動vsftpd服務

service vsftpd restart

 

重啟vsftpd

9.測試 

在瀏覽器裡出入ftp://xx.xx.xx.xx(你的伺服器的ip地址)

然後會彈出叫我們輸入使用者名稱和密碼,如果能夠正常登入則說明可以使用啦

值得注意的是:

在/etc/vsftpd/vsftpd.conf資料夾下有個屬性

#chroot_local_user=YES

這個屬性值為YES的時候回導致其可以隨意進入linux資料夾中

相關文章