centos下安裝vsftpd

 

簡介

vsftpd是“very secure FTP daemon”的縮寫,是一個完全免費的、開發源代碼的ftp服務器軟件。

vsftpd,它是一款在Linux發行版中最受推崇的FTP服務器程序,小巧輕快,安全易用,支持虛擬用戶、支持帶寬限制等功能。

一、環境準備

centos7   64位

二、軟件下載與安裝

1)執行以下命令進行安裝:  

 yum  -y install vsftpd

注意:

①是否使用sudo 權限執行請根據具體環境來決定;

②安裝之前可通過以下命令,先檢查是否已經安裝過 vsftpd :

 rpm -qa | grep vsftpd

③配置文件默認在   /etc/vsftpd/vsftpd.conf     

2)創建虛擬用戶

①選擇在根目錄或者用戶目錄下創建ftp文件夾:  mkdir ftpfile   ,例如創建目錄:   /ftpfile

②添加匿名用戶: 

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

③修改ftpfile目錄的權限:

chown -R ftpuser.ftpuser /ftpfile     
chmod -R 555 /ftpfile

 注: vsftpd設置用戶目錄權限的時候,必須設置根目錄權限爲555不能給太高的權限(例如:777),不然會導致登陸失敗。至於根目錄裏面的權限隨便設置。

④重設 ftpuser 密碼:

passwd ftpuser   

例如本人輸入的密碼是:     testcheck      。需要記住該密碼,後續登陸搭建好的 ftp 服務器會使用到。

注:是否使用sudo 權限執行需要根據系統的具體環境來決定。

⑤進入 /ftpfile 目錄,創建一個文件,用於後續校驗 ftp服務器能否正常訪問:

cd ftpfile/
vim index.txt

按下按鍵     進入  vim 的編輯模式,隨意輸入測試句子:

按下鍵盤左上角的 ESC 按鍵退出編輯模式,輸入   :wq   保存退出,該文件用於後面檢驗測試使用。

三、配置

1)創建 ftp  服務器白名單用戶文件:

cd /etc/vsftpd
sudo vim chroot_list

2)添加虛擬用戶:把上面新增的虛擬用戶,例如我在上面創建的是  ftpuser  添加到此配置文件中,後續需要使用到:

3)按下鍵盤左上角的   ESC 按鍵退出編輯模式,通過 vim 的  "    :wq  "   命令進行保存退出。

4)修改 selinux  安全配置:

sudo vim /etc/selinux/config 

把其中的 SELINUX 修改爲  SELINUX=disabled 

5)按下鍵盤左上角的   ESC  按鍵退出編輯模式,通過vim 的  "    :wq  "   命令進行保存退出。

注:如果下面驗證的時候出現  550 拒絕訪問錯誤請執行:

sudo setsebool -P ftp_home_dir 1

爲了確保上述配置生效,需重啓linux服務器,執行  reboot    命令進行重啓。如果後續步驟正常,則忽略此步驟。

6)修改 vsftpd 配置文件:

sudo vim /etc/vsftpd/vsftpd.conf

7)添加或更新配置 :

注:    配置屬性時,屬性值後面不能有任何空格!!!!注意檢查!!!我就在這一步卡了很久,因爲有一個屬性配置後面多了幾個空格,導致啓動  vsftpd 時報錯。請務必檢查清楚!!!


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對應) 
18)userlist_enable=YES(是否啓用vsftpd.user_list文件,黑名單,白名單都可以
19)pasv_min_port=61001(被動模式使用端口範圍最小值)
20)pasv_max_port=62000(被動模式使用端口範圍最大值)
21)pasv_enable=YES    (pasv_enable=YES/NO(默認值爲YES)
    #若設置爲YES,則使用PASV工作模式;若設置爲NO,則使用PORT模式。默認值爲YES,即使用PASV工作模式。

FTP協議有兩種工作方式:PORT方式和PASV方式,分別表示主動式和被動式。
           1)PORT(主動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。 
           當需要傳送數據時,客戶端在命令鏈路上用 PORT命令告訴服務器:“我打開了****端口,你過來連接我”。於是服務器從20端口向客戶端的****端口發送連接請求,建立一條數據鏈路來傳送數據。需傳輸數據時,FTP服務器主動發送連接請求。
           2)PASV(被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。 
           當需要傳送數據時,服務器在命令鏈路上用 PASV命令告訴客戶端:“我打開了****端口,你過來連接我”。於是客戶端向服務器的****端口發送連接請求,建立一條數據鏈路來傳送數據。需傳輸數據時,FTP服務器被動接收連接請求。 
           從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的複雜性就在於此。

 


8)修改完 vsftpd 配置文件後,需要重啓服務,讓配置生效,也可以檢查配置是否有問題,如果出現 500 錯誤,記得檢查配置文件中的屬性值後面是否有多餘的空格

9)防火牆配置。

①配置 iptables 配置文件:

sudo vim /etc/sysconfig/iptables

②將以下配置添加到防火牆中:

#vsftpd 
-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 

③按下鍵盤左上角的  ESC 按鍵退出編輯模式,通過vim 的  "    :wq  "   命令進行保存退出。

④執行命令重啓防火牆服務,讓配置生效:

sudo service iptables restart 

四、校驗

1)重啓 vsftpd 服務:

sudo service vsftpd restart

2)執行   ifconfig   查看運行 vsftpd 服務器的 ip 地址:

3)根據上面查詢到的 ip 地址,如本人的centos系統的 ip 地址爲 192.168.56.101  ,打開瀏覽器進行訪問    ftp://192.168.56.101     。 需要根據個人系統的具體ip輸入,不能生硬照搬:

4)輸入之前創建的 ftp 匿名用戶賬戶和密碼,參加上面第二大步驟 軟件下載與安裝 中創建的虛擬用戶和密碼,例如我的是:   

             用戶名 :    ftpuser     

             密   碼  :    testcheck

5)如果可以正常跳轉到如下頁面,表示配置  FTP 服務器成功:

6)除此之外,我們還可以通過ftp客戶端軟件進行校驗。

例如:cuteftp、filezilla、viperftp、flashftp、leapftp等進行連接 ftp 服務器,進行文件上傳、下載來驗證。

附vsftpd常用命令

啓動:sudo service vsftpd start
關閉:sudo service vsftpd stop
重啓:sudo service vsftpd restart

 

參考鏈接:

       vsftpd無法登陸:https://blog.bccn.net/%E9%9D%99%E5%A4%9C%E6%80%9D/61146     

       安裝步驟主要參考了慕課網實戰課程《Java從零到企業級電商項目實戰》的教學。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章