ftp是在internet上應用較爲廣泛的文件共享服務,在linux下可以通過pureftp,vsftpd等來實現。ftp的幾種主要驗證方式有1.匿名帳號
2.系統帳號
3.虛擬帳號
ftp採用的是tcp的21號端口和20號端口。21號主要用於鏈接控制。20號用來傳輸數據。明文傳遞。這樣,如果我們採用系統賬戶登錄ftp,在網絡傳輸的過程中賬戶名密碼可能被人抓包。對操作系統的安全造成威脅。而虛擬帳號登錄的時候採用的是一個在系統中不存在的帳號。當經過系統pam驗證後,就會在系統內映射爲一個系統用戶。這樣即使被抓包,也是個根本無法登錄系統的帳號。不會對系統造成威脅。
使用vsftpd實現虛擬賬戶訪問ftp
實驗步驟:
1.安裝vsftpd. db4-load(主要用於生成虛擬帳號的數據庫文件)
#yum install vsftpd db4-load -y
2.生成虛擬賬戶的數據庫文件vuser(文件路徑自己定義)
#vim vuser user1 123 user2 456 #db-load -T -t hash -f vuser vuser.db
在上邊的vuser中 文件的奇數行對應虛擬賬戶的用戶名。偶數行對用密碼
3.修改文件權限。僅允許root查看修改
#chmod 600 vuser*
4.添加虛擬用戶對應的系統用戶virftp
#useradd -d /var/ftpd -s /sbin/nologin virftp #chmod 755 /var/ftpd
5.爲虛擬用戶創建pam認證文件
#vim /etc/pam.d/vuser #PAM-1.0 //注意這裏的#。不要和上邊的搞混 auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser
6.修改vsftpd配置文件
#grep -v "^$" /etc/vsftpd/vsftpd.conf |grep -v "^#" anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vuser //vuser是剛纔編寫的pam文件 userlist_enable=YES tcp_wrappers=YES guest_enable=YES guest_username=virftp
這樣就可以使用虛擬用戶訪問ftp。如果實驗不同。注意自己的iptables防火牆和selinux狀態
當需要對不同的用戶區別不同的權限,可以在vsftpd主目錄下新建文件夾以存放用戶配置文件。同時在vsftpd主配置文件末尾追加
user_config_dir=/etc/vsftpd/virftp
在虛擬用戶的配置文件目錄中可以創建虛擬用戶賬戶命名的文件對賬戶權限進行控制,需要注意的是。虛擬用戶被默認按照匿名用戶控制以降低權限。所以在配置文件中應按匿名用戶的配置來寫
如 anon_write_enable=YES