第一部分:理論
一.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