一、概述
1、工作模式:
主動模式:服務器主動對客戶端發起連接
被動模式:服務器開啓相應端口,等待客戶端發起連接
2、主動模式端口: 控制 21 傳輸數據 20
3、被動模式端口: 隨機
二、安裝
1、服務名:vsftpd
2、主配置文件:/etc/vsftpd/vsftpd.conf
3、驗證方式:
匿名訪問
本地用戶訪問
虛擬用戶訪問
4、軟件:
服務器端 vsftpd 客戶端 ftp
三、匿名用戶
anonymous_enable=YES:啓用匿名訪問 anon_umask=022:匿名用戶所上傳文件的權限掩碼(無此項,默認600) anon_root=/var/ftp:匿名用戶的FTP根目錄 anon_upload_enable=YES:允許上傳文件(服務器權限和目錄權限均需要設置) anon_mkdir_write_enable=YES:允許創建目錄 anon_other_write_enable=YES:開放其他寫入權 anon_max_rate=0:限制最大傳輸速率(字節/秒)
四、本地用戶
local_enable=YES:是否啓用本地系統用戶 local_umask=022:本地用戶所上傳文件的權限掩碼 local_root=/var/ftp:設置本地用戶的FTP根目錄 chroot_local_user=YES:是否將用戶禁錮在主目錄 local_max_rate=0:限制最大傳輸速率(字節/秒)
常用的全局配置項:
listen_address=192.168.4.1:設置監聽的IP地址 listen_port=21:設置監聽FTP服務的端口號 write_enable=YES:是否啓用寫入權限 download_enable=YES:是否允許下載文件 max_clients=0:限制併發客戶端連接數 max_per_ip=0:限制同一IP地址的併發連接數 Pasv_min_port=50000 將客戶端的數據連接端口改在 Pasv_max_port=60000 50000—60000之間)
訪問限制:
userlist_enable=YES:是否啓用user_list列表文件 userlist_deny=YES:是否禁用user_list中的用戶 Userlist_deny=NO;
其它安全選項:
connect_timeout=60 accept_timeout=60 data_connection_timeout=300 idle_session_timeout=300 ftpd_banner=xxx和banner_file=/path/file tcp_wrappers=YES
五、訪問控制
userlist_enable=YES userlist_deny=YES時 出現在/etc/vsftpd/user_list文件裏的用戶,會被拒絕訪問FTP服務器 userlist_enable=YES userlist_deny=NO 只允許出現在/etc/vsftp/user_list文件裏的用戶登錄FTP服務器 /etc/vsftpd/ftpusers 出現在該文件裏的用戶,全部拒絕訪問FTP服務器,不管user_list做任何設置
六、虛擬用戶
特點:
a、減少系統用戶的數據,提高系統安全性
b、根據不同的用戶,設置不同的訪問權限
創建賬號數據:
1.建立虛擬FTP用戶的帳號數據庫文件
2.創建FTP根目錄及虛擬用戶映射的系統用戶
3.建立支持虛擬用戶的PAM認證文件
添加虛擬用戶支持
4.在vsftpd.conf文件中添加支持配置
5.爲個別虛擬用戶建立獨立的配置文件
啓動服務並測試
6.重新加載vsftpd配置
7.使用虛擬FTP賬戶訪問測試
[root@localhost]# vi /etc/vsftpd/vusers.list #建立虛擬用戶 zhangsan 123 lisi 456 [root@localhost]# cd /etc/vsftpd/ [root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db #建立虛擬FTP用戶的帳號數據庫文件 [root@localhost vsftpd]# file vusers.db #查看數據庫文件 vusers.db: Berkeley DB (Hash, version 8, native byte-order) [root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.* [root@localhost vsftpd]# ls -lh /etc/vsftpd/vusers.* -rw------- 1 root root 12K 02-26 08:51 /etc/vsftpd/vusers.db -rw------- 1 root root 18 02-26 08:48 /etc/vsftpd/vusers.list
2.創建FTP根目錄及虛擬用戶映射的系統用戶
[root@localhost]# useradd -d /var/ftproot -s /sbin/nologin virtual [root@localhost]# chmod 755 /var/ftproot/
3.建立支持虛擬用戶的PAM認證文件
[root@localhost]# vi /etc/pam.d/vsftpd.vu #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/vusers account required pam_userdb.so db=/etc/vsftpd/vusers
4.在vsftpd.conf文件中添加支持配置
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf …… local_enable=YES write_enable=YES anon_umask=022 guest_enable=YES guest_username=virtual pam_service_name=vsftpd.vu
5.爲不同的虛擬用戶建立獨立的配置文件
在vsftpd.conf文件中添加用戶配置目錄支持
user_config_dir=/etc/vsftpd/vusers_dir
爲用戶mike、john建立獨立的配置目錄及文件
配置文件名與用戶名相同
[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/ [root@localhost ~]# cd /etc/vsftpd/vusers_dir/ [root@localhost vusers_dir]# vi zhangsan anon_upload_enable=YES anon_mkdir_write_enable=YES [root@localhost vusers_dir]# touch lisi