Linux系統下安裝vsftpd

注意:

1. 刪除已安裝的vsftpd,在對應目錄下輸入:yum remove vsftpd;
2. 如果是普通用戶登錄linux,在命令前加上"sudo",可以提升權限;
  1. 安裝vsftpd
yum -y install vsftpd

此為下載安裝過程結尾部分截圖:


image.png
  1. 根目錄創建新文件夾
mkdir ftpfile
image.png
  1. 增加一個用戶,權限限制為只能訪問ftpfile目錄并且沒有登錄權限。
useradd ftpuser -d /ftpfile/ -s /sbin/nologin
image.png
  1. 將ftpfile的擁有者改為ftpuser
chown -R ftpuser.ftpuser /ftpfile/
image.png
  1. 設置tfpuser的密碼
 passwd ftpuser
image.png
  1. 切換到ftpfile目錄下,創建文件index.html


    image.png

    image.png
  2. 配置ftp服務器


    image.png

    修改或新增以下屬性:

  3. anonymous_enable=NO —— 是否允許匿名ftp,如否則選擇NO
  4. local_enable=YES —— 是否允許本地用戶登錄
  5. write_enable=YES —— 是否允許登陸用戶有寫權限。屬于全局設置,默認值為YES。
  6. local_umask=022 —— 默認的umask碼
  7. dirmessage_enable=YES —— 如果啟動這個選項,那么使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,如果有,則會出現此檔案的內容,通常這個檔案會放置歡迎話語,或是對該目錄的說明。默認值為開啟。
  8. xferlog_enable=YES —— 是否啟用上傳/下載日志記錄。如果啟用,則上傳與下載的信息將被完整紀錄在xferlog_file 所定義的檔案中。預設為開啟。
  9. connect_from_port_20=YES —— 指定FTP使用20端口進行數據傳輸,默認值為YES。
  10. xferlog_std_format=YES —— 如果啟用,則日志文件將會寫成xferlog的標準格式,如同wu-ftpd 一般。默認值為關閉。
  11. ftpd_banner=Welcome to ambermall FTP service. —— 這里用來定義歡迎話語的字符串,banner_file是檔案的形式,而ftpd_banner 則是字符串的形式。預設為無。
  12. local_root=/ftpfile —— 當本地用戶登入時,將被更換到定義的目錄下。默認值為各用戶的家目錄。
  13. chroot_local_user=YES —— 用于指定用戶列表文件中的用戶是否允許切換到上級目錄。默認值為NO。
    通過搭配能實現以下幾種效果:
    ①當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd.chroot_list文件中列出的用戶,可以切換到其他目錄;未在文件中列出的用戶,不能切換到其他目錄。
    ②當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其他目錄;未在文件中列出的用戶,可以切換到其他目錄。
    ③當chroot_list_enable=NO,chroot_local_user=YES時,所有的用戶均不能切換到其他目錄。
    ④當chroot_list_enable=NO,chroot_local_user=NO時,所有的用戶均可以切換到其他目錄。
  14. use_localtime=yes —— 使用本機時間
  15. chroot_list_enable=YES —— 設置是否啟用chroot_list_file配置項指定的用戶列表文件。默認值為NO。
  16. chroot_list_file=/etc/vsftpd/chroot_list —— 用于指定用戶列表文件,該文件用于控制哪些用戶可以切換到用戶家目錄的上級目錄。
  17. listen=YES —— 設置vsftpd服務器是否以standalone模式運行。以standalone模式運行是一種較好的方式,此時listen必須設置為YES,此為默認值。建議不要更改,有很多與服務器運行相關的配置命令,需要在此模式下才有效。若設置為NO,則vsftpd不是以獨立的服務運行,要受到xinetd服務的管控,功能上會受到限制。
  18. pam_service_name=vsftpd —— 設置PAM使用的名稱,默認值為/etc/pam.d/vsftpd。
  19. userlist_enable=YES —— 是否啟用vsftpd.user_list文件。
  20. tcp_wrappers=YES —— 設置vsftpd是否與tcp wrapper相結合來進行主機的訪問控制。默認值為YES。如果啟用,則vsftpd服務器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設置,來決定請求連接的主機,是否允許訪問該FTP服務器。這兩個文件可以起到簡易的防火墻功能。
    比如:若要僅允許192.168.0.1—192.168.0.254的用戶可以連接FTP服務器,則在/etc/hosts.allow文件中添加以下內容:
    vsftpd:192.168.0. :allow
    all:all :deny
  21. pasv_min_port=61001 —— 在PASV工作模式下,數據連接可以使用的端口范圍的最小端口,0 表示任意端口。默認值為0。
  22. pasv_max_port=62000 —— 在PASV工作模式下,數據連接可以使用的端口范圍的最大端口,0 表示任意端口。默認值為0。
    更加詳細配置解釋,請參考: vsftpd配置文件詳解
  23. 配置完畢后,保存并關閉。創建chroot_list_file=/etc/vsftpd/chroot_list 指定的chroot_list 文件。
vim /etc/vsftpd/chroot_list

添加我們剛才創建的用戶名稱:


image.png
  1. 重啟ftp服務器
service vsftpd restart
image.png
  1. 網絡防火墻配置
vim /etc/sysconfig/iptables
#vsftpd
-A INPUT -p TCP --dport 61001:62000 -j ACCEPT
-A OUTPUT -p TCP --dport 61001:62000 -j ACCEPT
-A INPUT -p TCP --dport 20 -j ACCEPT
-A OUTPUT -p TCP --dport 20 -j ACCEPT
-A INPUT -p TCP --dport 21 -j ACCEPT
-A OUTPUT -p TCP --dport 21 -j ACCEPT

重啟防火墻

service iptables restart
image.png
  1. 在linux里使用ftp客戶端:

  2. 安裝ftp
yum -y install ftp
  1. 連接ftp服務器
ftp ip地址  例如:ftp 192.168.1.5
  1. 輸入用戶mingcheng和密碼,登錄成功
  2. 輸入dir查看文件


    image.png

    細心的小伙伴,可能發現了最后出現but failed to open directory。這該怎么解決呢?

* vim /etc/selinux/config
* 修改SELINUX為disable,保存并關閉
image.png

* 輸入【setenforce 0】生效
* service vsftpd restart
這回再登錄就沒問題了:


image.png
  1. 瀏覽器里試試


    image.png
  2. vsftpd的vsftpd.conf文件我設置了chroot_local_user=YES和chroot_list_enable=YES。這代表:在/etc/vsftpd.chroot_list文件中列出的用戶,可以切換到其他目錄;未在文件中列出的用戶,不能切換到其他目錄。
image.png

下面切換到上一級試試:

image.png

不過這樣做太危險了,所以還是把chroot_local_user改成No吧:
先退出客戶端:


image.png
 vim /etc/vsftpd/vsftpd.conf
image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容