1. 程式人生 > >vsftpd檔案伺服器的安裝與配置(centos6.x和7.x)

vsftpd檔案伺服器的安裝與配置(centos6.x和7.x)

vsftpd是一款免費的、開源的ftp伺服器軟體。

 

  安裝環境(centos 6.8 64位)

  安裝版本 vsftpd-2.2.2-24.el6.x86_64

  安裝步驟:

    一:執行 yum -y install vsftpd(1、可以先執行 rpm -qa | grep vsftpd 檢查是否已經安裝vsftpd;2、預設配置檔案路徑在/etc/vsftpd/vsftpd.conf  )

    二:建立虛擬使用者:

        1、建立ftp資料夾:mkdir /ftpfile

        2、新增匿名使用者:useradd ftpuser -d /ftpfile -s /sbin/nologin

        3、修改許可權:chown -R ftpuser.ftpuser /ftpfile

        4、修改ftpuser的密碼:passwd ftpuser

    三、配置:

      1、進入資料夾:/etc/vsftpd

      2、建立檔案:vim chroot_list 將剛剛新增的ftpuser使用者新增到該檔案中,後續將對該檔案進行引用

        cat 預覽:

      3、vim /etc/selinux/config,修改為SELINUX=disabled(如果驗證是出現550拒絕訪問的錯誤則執行:setsebool -P ftp_home_dir 1)

      4、重啟linux:reboot

      5、修改vsftpd的配置檔案:vim /etc/vsftpd/vsftpd.conf 配置說明如下:

          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 xlt 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的複雜性就在於此。

      6、防火牆配置:

        1)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

          刪除:

          -A INPUT -j REJECT --reject-with icmp-host-prohibited
          -A FORWARD -j REJECT --reject-with icmp-host-prohibited

        2)重啟防火牆:service iptables restart

    四:驗證

      1、執行重啟命令:(第一次執行時關閉vsftpd的操作會失敗,不用理會,只需要保證啟動ok)service vsftpd restart    (在centos7中,防火牆的命令進行了變化)

        

      2、執行ifconfig檢視IP地址、開啟瀏覽器訪問ftp://(your ipadress)