Vsftp虛擬用戶配置
1、FTP概述
File Transfer Protocol文件傳輸協議
傳輸模式
a,主動模式:由服務器主動鏈接客戶端創建數據鏈路
b,被動模式:FTP服務器等待客戶端創建數據鏈路
使用端口
21 用於與客戶機創建命令鏈路
20 在主動模式下服務器使用20向客戶機創建數據鏈路
2、軟件包安裝
環境Centos 6.0 x86
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# yum -y install db_utils
3、虛擬用戶配置
一、新建虛擬用戶db數據庫
[root@localhost vsftpd]# cat /etc/vsftpd/vsftpd_login.txt
read
redhat
write
redhat
manager
redhat
[root@localhost vsftpd]#
格式爲第一行爲用戶名,第二行爲密碼,而後類推。
生成虛擬用戶db數據庫認證文件
[root@localhost vsftpd]# db_load -T -t hash -f vsftpd_login.txt vsftpd_login.db
[root@localhost vsftpd]# chmod 600 vsftpd_login.db
[root@localhost vsftpd]# ll vsftpd_login.db
二、新建虛擬用戶所需的PAM配置文件
[root@localhost ~]# cat /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
三、創建虛擬用戶對應的系統真實用戶
[root@localhost ~]# useradd -d /home/ftpsite/ -s /sbin/nologin virtual
[root@localhost ~]# chmod 700 /home/ftpsite/
[root@localhost ~]# chown -R virtual.virtual /home/ftpsite/
[root@localhost ~]# ll /home/
注: /home/ftpsite 爲虛擬用戶ftp的的根目錄,不然會出現問題。
四、修改主配置文件vsftpd.conf
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_port=21
userlist_enable=YES
chroot_local_user=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
pasv_min_port=50000
pasv_max_port=50000
pasv_enable=YES
max_clients=100
max_per_ip=5
idle_session_timeout=600
local_max_rate=5000000
ftpd_banner=Welcome to Win2003 FTP Service
[root@localhost ~]#
五、創建日誌文件
[root@localhost ~]# touch /var/log/vsftpd.log
[root@localhost ~]# chown virtual.virtual /var/log/vsftpd.log
六、創建虛擬用戶配置文件
[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf/
read只能下載
[root@localhost vsftpd_user_conf]# cat read
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_umask=022
download_enable=YES
local_root=/home/ftpsite/read/
[root@localhost vsftpd_user_conf]#
write用戶只能寫入
[root@localhost vsftpd_user_conf]# cat write
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_umask=022
download_enable=NO
local_root=/home/ftpsite/write/
[root@localhost vsftpd_user_conf]#
manager全部權限
[root@localhost vsftpd_user_conf]# cat manager
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_umask=022
download_enable=YES
local_root=/home/ftpsite/manager/
[root@localhost vsftpd_user_conf]#
注:全部以上配置文件中不能有空格,不然啓動時會報錯
啓動服務
[root@localhost ~]# service vsftpd restart
七、權限測試
分別用read write 和manager 登陸測試權限。
八、被動模式訪問FTP,添加防火牆策略
pasv_enable=yes
connect_from_port_20=YES
pasv_min_port=50000
pasv_max_port=50000
防火牆開啓 21 20 50000 就能夠了
5、配置文件詳解
anonymous_enable=NO
設定不容許匿名訪問
local_enable=YES
設定本地用戶能夠訪問。若是該項目設定爲NO那麼全部虛擬用戶將沒法訪問。
write_enable=YES
設定能夠進行寫操做。
local_umask=022
設定上傳後文件的權限掩碼。
anon_upload_enable=NO
禁止匿名用戶上傳。
anon_mkdir_write_enable=NO
禁止匿名用戶創建目錄。
dirmessage_enable=YES
設定開啓目錄標語功能。
xferlog_enable=YES
設定開啓日誌記錄功能。
connect_from_port_20=YES
設定端口20進行數據鏈接。
chown_uploads=NO
設定禁止上傳文件更改宿主。
xferlog_file=/var/log/vsftpd.log
設定Vsftpd的服務日誌保存路徑。
xferlog_std_format=YES
設定日誌使用標準的記錄格式。
async_abor_enable=YES
設定支持異步傳輸功能。
ascii_upload_enable=YES
ascii_download_enable=YES
設定支持ASCII模式的上傳和下載功能。
ftpd_banner=Welcome to win2003 FTP servers
設定Vsftpd的登錄標語。
chroot_local_user=YES
禁止本地用戶登出本身的FTP主目錄。
pam_service_name=vsftpd.vu
設定PAM服務下Vsftpd.vu 的驗證配置文件名。
如下這些是關於Vsftpd虛擬用戶支持的重要配置項目。默認Vsftpd.conf中不包含這些設定項目,須要本身手動添加配置。
guest_enable=YES
設定啓用虛擬用戶功能。
guest_username=virtual
指定虛擬用戶的宿主用戶。
virtual_use_local_privs=YES
設定虛擬用戶的權限符合他們的宿主用戶。
user_config_dir=/etc/vsftpd/vsftpd_user_conf
虛擬用戶我的Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每一個vsftp虛擬用戶個性的配置文件,一個須要注意的地方就是這些配置文件名必須和虛擬用戶名相同。