linux之文件傳輸協議(FTP)與本地用戶測試

FTP:文件傳輸協議
    兩類連接:
        命令連接:傳輸命令
        數據連接:傳輸數據
        端口號 TCP 20/21
        工作方式:
            主動模式:
                21端口--控制端口
                20端口--數據端口
                描述:
                    當客戶端與FTP服務器建立連接時客戶端會輸入賬戶和密碼,當輸入正確後,FTP服務器會用21端口返回給客戶端一條登錄成功的信息。客戶端登錄成功後會進行數據傳輸(連接成功後,客戶端開始監聽服務器20端口),此時客戶端會產生一隨機端口號通過FTP服務器21端口進行數據傳輸,當21端口收到數據流後會連接到FTP服務器20端口將相關數據流傳輸給客戶端的隨機端口,實現雙方的數據傳輸。
            被動模式:
                21端口+隨機端口
                描述:
                    同樣當客戶機登錄成功後,客戶端會打開兩個隨機端口,第一個端口連接到FTP服務器21端口,此時客戶端發送PASV命令,不允許FTP服務器21端口連接20端口,這樣FTP服務器會使用隨機端口號迴應客戶端PASV應答。此時客戶端會使用第二個隨機端口號來監聽服務器傳輸來的數據。
            路徑映射:
                用戶家目錄:每個用戶的URL的/映射到當前用戶的家目錄
            vsftpd以ftp用戶的身份運行進程,默認認用戶即爲ftp用戶,匿名用戶的默認路徑即ftp用戶的家目錄/var/ftp
    程序環境:
        主程序:/usr/sbin/vsftpd
        主配置文件:/etc/vsftpd/vsftpd.conf
        數據根目錄:/var/ftp
        系統模塊文件:/usr/lib/systemd/system/vsftpd.service

        配置vsftpd:
            ftp用戶:
                匿名用戶:                            
                虛擬用戶:非系統用戶,用戶賬號非爲可登陸操作系統的用戶賬號
                系統用戶:至少禁止系統用戶訪問ftp服務,/etc/vsftpd/ftpusers, PAM (/etc/pam.d/vsftpd)

                用戶通過vsftpd服務訪問到默認路徑,是用戶自己的家目錄;默認可以自己有權限訪問的所有路徑切換
            配置文件:
                /etc/vsftpd/vsftpd.conf
            匿名用戶:
                anonymous_enablen=YES
                anon_upload_enable=YES
                anon_mkdir_write_enable=YES
                anon_other_write_enable=YES
            系統用戶:
                local_enable=YES
                write_enable=YES
                local_umask=022

                輔助配置文件/etc/vsftpd/ftpusers
                    列在此文件中的用戶 均禁止使用ftp服務
                chroot_local_user=YES
                    本地用戶在訪問時只能訪問自己的家目錄
                chroot_list_enable=YES
                chroot_list_file=/etc/vsftpd/chroot_list
                    禁據列表中文件存在的用戶於其家目錄中 ;需要事先去除用戶對家目錄的寫權限
            傳輸日誌:
                xferlog_enable=YES
                xferlog_file=/var/log/xferlog
                xferlog_std_format=YES
            守護進程的類型:
                standalone :獨立守護進程;由服務進程自行監聽套按字.並接收用戶訪問請求
                translent :瞬時守護進程;由受託管方代爲監聽套按字,服務進程沒有訪問請求時不啓動;當託管方收到訪問請求時才啓動服務進程
                    Centos 6 : xinetd獨立守護進程/etc/xinetd.d/
                    Centos 7 :由systemd代爲監聽
            控制可登陸vsftpd服務的用戶列表:
                userlist_enable=YES
                    啓用/etc/vsftpd/user_list文件來控制可登錄用戶
                userlist_deny=
                    YES:意味着此爲黑名單
                    NO:白名單
            上傳下載速率:
                anon_max-rate=0
                local_max_rate=0
            併發連接數限制:
                max_clients=2000
                max_per_ip=50
    測試:
        配置本地用戶上傳和下載
           (1)vsftpd可以直接使用Linux系統的本地用戶作爲FTP用戶
            使用本地用戶登錄FTP服務器後,默認將位於用戶自己的主目錄中,且具有讀寫權限
            如利用qwertyuiop用戶訪問ftp,那麼默認將進入到的目錄是/home/qwertyuiop              
            創建系統用戶,並設置密碼,並在主目錄中放置一個測試文件:
                    useradd  ftptest   
                    passwd   vsftpdtest
                    echo ‘ftp test’ > /home/ftptest/ftptest.txt    
            創建系統用戶test,並設置密碼:
                    useradd  qwertyuiop
                    passwd   qwertyuiop
            (2)允許用戶ftptest登錄,且登錄成功後位於自己的家目錄中。不允許qwertyuiop用戶登陸
                anonymous_enable=NO
                local_enable=YES  
                write_enable=YES  
                chroot_local_user =YES       
                chroot_list_enable=NO        
                chroot_list_file=/etc/vsftpd/chroot_list    
                local_umask=022    
                userlist_enable=YES
                userlist_deny=NO
                將ftptest用戶加入到 /etc/vsftpd/user_list文件。
            (3)允許qwertyuiop用戶登錄,登錄成功後位於/data目錄,禁止ftptest用戶登錄
                anonymous_enable=NO
                 local_enable=YES  
                  write_enable=YES  
                 chroot_local_user =YES       
                  chroot_list_enable=NO        
                chroot_list_file=/etc/vsftpd/chroot_list    
                local_umask=022    
                userlist_enable=YES
                userlist_deny=NO
                local_root=/data
                將qwertyuiop用戶加入到 /etc/vsftpd/user_list文件。從此文件中刪除ftptest用戶
                注:每次測試必須重新啓動服務

 

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