天天看點

Vsftpd服務傳輸

1. FTP簡單介紹

檔案傳輸協定FTP(File Transfer Protocol),即能夠讓使用者在網際網路中上傳、下載下傳檔案的檔案協定

FTP用戶端   FTP伺服器端

FTP占用兩個端口号(21,20) 

   21端口:指令控制,用于接受用戶端執行的FTP指令。 

   20端口:資料傳輸,用于上傳、下載下傳檔案資料。

FTP資料傳輸類型:

    主動模式:FTP伺服器端主動向FTP用戶端發起連接配接請求。

    被動模式:FTP伺服器等待FTP用戶端的連接配接請求。

2. 安裝Vsftpd服務程式

   Vsftpd即“Very Secure FTP Dawmon”一款運作在Unix作業系統的FTP服務端程式,

 主打:安全性、完全開源免費、速度高、支援IPv6、虛拟使用者功能等。

   #yum install vsftpd -y

   #iptables -F        //清空防火牆規則

   #service iptables save   //儲存清空後的防火牆規則

    /usr/sbin/vsftpd      主程式            

    /etc/vsftpd/ftpusers  & /etc/vsftpd/user_list   //使用者禁止登陸清單

    /etc/vsftpd/vsftpd.conf     //主配置檔案

配置檔案參數作用詳解:

listen=yes|no             //是否以獨立運作方式監聽服務

listen_address=ip_位址    //設定要監聽的ip位址

listen_port=21            //設定ftp的監聽端口

download_enable=yes|no    //是否運作下載下傳

userlist_enable=yes|no    //是否啟用“禁止登陸使用者名單”

max_client=0              //最大用戶端連接配接數,0位不限制

anonymous_enable=yes| no  //是否允許匿名使用者通路

anon_upload_enable=yes|no //是否允許匿名使用者上傳檔案

anon_umask=022            //匿名使用者上傳檔案的umask值

anon_root=/var/ftp        // 匿名使用者的ftp根目錄

anon_mkdir_write_enable=yes|no   //是否開放匿名使用者建立目錄   

anon_other_write_enable=yes|no   //是否開放匿名使用者其他寫入權限

local_enable=yes|no        //是否允許本地使用者登入ftp  

local_umask=022

local_root=/var/ftp

chroot_local_user=yes|no   //是否将使用者權限禁锢在ftp目錄,安全

3. Vsftpd的三種驗證方式

    匿名通路:任何人無需驗證密碼即可登入ftp伺服器。

    本地使用者:使用ftp伺服器中的賬号、密碼資訊。

    匿名使用者:建立的獨立的ftp賬号資料。

 3.1 匿名通路模式

    vim /etc/vsftpd/vsftp.conf

   -------------------------------------

        anonymous_enable=yes

        anon_upload_enable=yes

        anon_mkdir_write_enble=yes

        anon_other_wite_enable=yes

        write_enbale=yes

-----------------------------------------

    伺服器端:chown ftp /var/ftp/pub         //修改pub目錄宿主

              setenforce=0                  //關閉selinux

              vim /etc/selinux/conf 

              systemctl restart vsftpd

     客服端配置:yun install ftp -y

                 ftp 192.168.100.10(伺服器ip)

                 anonymous

3.2 本地使用者模式

vim /etc/vsftpd/vsftp.conf

      anonymous_enable=no

      local_enable=yes

      write_enable=yes

      userlist_deny=yes

      userlist_enable=yes

      pam_service_name=vsftpd

       systemctl restart vsftpd

       useradd jerry && echo "jerry" | passwd --stdin jerry   //添加userlist外的使用者

       iptables -F

       setenforce=0

--------------------------------

3.3 虛拟使用者模式(最安全)

    3.3.1 建立虛拟FTP使用者資料庫檔案

          cd /etc/vsftpd

          vim myvuser.list      //單數行賬号   雙數為密碼

              Jerry

          db_load -T -t hash -f myvuser.list myvuser.db   //使用dbload指令用hash算法生成資料庫檔案myvuser.db

          chmod 600 myvuser.db     //修改權限

          rm -f myvuser.list

   3.3.2 建立FTP根目錄及虛拟使用者映射的系統使用者

           useradd -d /var/ftproot -s /sbin/nologin virtual     //建立預設檔案根目錄/var/ftproot

           ls -ld /var/ftproot/

           chmod -Rf 755 /var/ftproot/

   3.3.3 建立支援虛拟用的PAM認證檔案

           vim /etc/pam.d/vsftpd.u

                auth required pam_userdb.so.db=/etc/vsftpd/myvuser //myvuser不加字尾

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

   3.3.4 在vsftpd.conf檔案中添加支援配置

---------- -------------------------------------   

anonymous_enable=NO

local_enable=YES

guest_enable=YES

guest_username=virtual

pam_service_name=vsftpd.vu                  //指定pam檔案

write_enable=YES

allow_writeable_chroot=YES                  //允許根目錄可寫

user_config_dir=/etc/vsftpd/myvusers_dir

-----------------------------------------------

    3.3.5 為虛拟使用者設定不同的權限

............................................................

          vim /etc/vsftpd/vsftpd.conf

              user_config_dir=/etc/vsftpd/myvusers_dir  //建立使用者獨立權限配置檔案存放目錄

          cd  /etc/vsftpd/myvusers_dir

                 vim Jerry                                     //配置Jerry使用者的具體權限

                     anon_upload_enable=YES

                     anon_mkdir_write_enable=YES

                     anon_other_write_enable=YES

......................................................................

    3.3.6 重新開機 vsftpd服務  systemctl restart vsftpd

4. 可插拔認證子產品PAM

      PAM:Pluggable Authentication Modules一種認證機制

      應用  -> PAM api (應用接口層) -> 子產品 (鑒别子產品層)

          重要pam目錄:

                /lib/security:pam         //認證子產品

                /etc/pam.d                //針對不同服務定義好的pam配置檔案