第一部分:理論 一.FTP服務器基本原理 1.基本概念:ftp文件傳輸協議:file transport protocol 2.傳輸模式:主動模式和被動模式 3.使用端口 A. 主動模式:命令控制:21 數據傳輸:20 B. 被動模式:命令控制:21 數據傳輸:1024以後的隨機端口 二.經常使用FTP服務器軟件 Windows下:iis serverU Linux下:wu-ftp proftp vsftp 三.經常使用的服務器端軟件 vsftp——本章的重中之重:very security file transport protocol 四.經常使用ftp客戶端軟件 1.特色: FTP客戶端軟件的特色 運行在圖形環境下的窗口程序 可以使用鼠標和經過菜單進行操做 用戶界面友好,操做方便 2.:經常使用FTP客戶端軟件 CuteFTP, leapftp, flashxp是Windows下流行的商業軟件 Filezilla是Windows下運行的開源軟件 gftp是Linux中GNOME桌面環境中運行的FTP客戶端軟件,是GNOME的重要組成部分 五.vsftpd.conf中經常使用的配置參數: anonymous_enable=YES 啓用匿名用戶 local_enable=YES 啓用本地用戶 write_enable=YES 啓用本地用戶寫權限 local_umask=022 本地用戶生成文件的掩碼(上傳的文件權限是644) 若是上傳文件夾總權限777;文件666(能夠用file_open_mode=0777) dirmessage_enable=YES dirmessage_enable設置爲「YES」時當切換到FTP服務器中的某個目錄時,將顯示該目錄下的.message隱含文件的內容 xferlog_enable=YES xferlog_enable設置爲「YES」時FTP服務器將啓用上傳和下載日誌 (日誌文件:/var/log/xferlog) connect_from_port_20=YES connect_from_port_20設置爲「YES」時FTP服務器將啓用FTP數據端口的鏈接請求 xferlog_std_format=YES xferlog_std_format設置爲「YES」時FTP服務器將使用標準的ftpd xferlog日誌格式 pam_service_name=vsftpd pam_service_name設置PAM認證服務的配置文件名稱 userlist_enable=YES userlist_enable設置爲「YES」時FTP服務器將檢查userlist_file設置文件中指定的用戶是否能夠訪問vsftpd服務器 (userlist_enable=YES userlist_deny=NO 表示vsftpd.user_list中用戶能夠登陸) (userlist_enable=YES userlist_deny=YES 表示改文件中用戶不能夠登陸) (默認狀況下,userlist_deny=yes 也就說,寫到vsftpd.user_list裏面的用戶不能登陸) listen=YES 設置爲yes時,ftp以獨立方式啓動,不然以超級進程的方式啓動 tcp_wrappers=YES tcp_wrappers設置爲「YES」時FTP服務器將使用tcp_wrappers做爲主機訪問控制方式 chroot_local_user=YES 限制本地用戶禁錮在宿主目錄裏面 max_clients=100 最大客戶端 max_per_ip=5 每一個ip的最大鏈接數 local_max_rate=500000 本地用戶最大傳輸速率 (單位byte) anon_max_rate=200000 匿名用戶最大傳輸速率 listen_port=2121 更改ftp默認端口號 六./etc/vsftpd.ftpusers用於保存不容許進行FTP登陸的本地用戶賬號 七./etc/vsftpd.user_list文件具備對vsftpd服務器更靈活的用戶訪問控制 若是想讓該文件中的用戶禁止登錄ftp服務器,則 userlist_enable=YES userlist_deny=YES 若是想讓該文件中的用戶容許登錄ftp服務器,則 userlist_enable=YES userlist_deny=NO 八.vsftpd中支持的用戶類型 1.匿名用戶:匿名用戶名稱:ftp和anonymous 2.系統用戶:系統當中實際存在的用戶 3.虛擬用戶:非系統用戶 第二部分:實驗 實驗一:測試匿名用戶和系統用戶 1. 安裝ftp軟件包:rpm –ivh vsftpd…… 2. 啓動ftp服務:service vsftpd start 3. 在客戶端登錄ftp測試。 A. 在cmd裏面用測試命令: ftp 服務器ip B. 用客戶端登錄測試 windows客戶端:flashxp, cuteftp, leapftp Linux 客戶端:gftp(先安裝gftp軟件包) 試驗二:ftp虛擬用戶的配置 1. 創建虛擬用戶口令庫文件(奇數行是用戶名,偶數行是密碼) 進入/etc/vsftpd 目錄,而後新建文件benet 2. 生成vsftpd的認證文件(須要安裝db4-util書上沒介紹) db_load -T -t hash -f /etc/vsftpd/benet /etc/vsftpd/benet.db 3. 創建虛擬用戶所需的PAM配置文件(/etc/pam.d/) 進入/etc/pam.d,而後創建文件ftp,內容以下 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/benet(庫名) account required /lib/security/pam_userdb.so db=/etc/vsftpd/benet(庫名) 4. 創建虛擬用戶所須要的系統用戶 useradd aa -d /virtual(虛擬用戶主目錄) -s /sbin/nologin 5. 創建虛擬用戶所要訪問的目錄並設置相應權限(修改主目錄權限700) chmod 700 -R /virtual 6. 設置/etc/vsftpd/vsftpd.conf配置文件,在文檔末尾添加以下內容: guest_enable=YES guest_username=aa(新建的系統用戶) pam_service_name=ftp(驗證模塊名稱) user_config_dir=/etc/vsftpd_user_conf 虛擬用戶權限的配置目錄 7. 進入/etc/vsftpd_user_conf新建文件aa,bb。這兩個文件就是aa和bb用戶的權限配置文件,下面的參數就是具體的可能用的參數 anon_world_readable_only=NO 表示用戶能夠瀏覽FTP目錄和下載文件 anon_upload_enable=YES 表示用戶能夠上傳文件 anon_mkdir_write_enable=YES 表示用戶具備創建目錄的權限,不能刪除目錄 anon_other_write_enable=YES 表示用戶具備文件更名和刪除文件的權限 local_root=/ 指定虛擬用戶的目錄 8 . 給aa用戶瀏覽和下載的權限,給bb用戶瀏覽,上傳,下載,刪除的權限。 補充實驗 1. 如何實現匿名用戶上傳。 在/var/ftp/下新建目錄來實現上傳。 2. 如何限制本地任意切換主目錄。 chroot_local_user = YES