Vsftpd虛擬用戶的配置
System:Linux centos6.5 2.6.32-431.el6.x86_64
vsftpd-2.2.2-21.el6.x86_64
第一步、安裝
#cd /etc/yum.repos.d/
# rm -rf *
# wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo
# yum clean all
# yum -y install vsftpd
# yum -y install db4-utils
第二步、建立虛擬用戶
#vim /home/loginuser.txt
user1
password1
user2
password2
user3
password4
格式爲第一行爲用戶名名,第二行爲密碼,然後類推
建立db數據庫,同時只有root用戶才能讀寫
# db_load -T -t hash -f /home/loginuser.txt /etc/vsftpd/vsftpd_login.db
# chmod 600 /etc/vsftpd/vsftpd_login.db
配置pam文件
# vim /etc/pam.d/vsftpd.vu (64位系統)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
# vim /etc/pam.d/vsftpd.vu (32位系統)
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
#vim /etc/pam.d/vsftpd (64位系統)
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
建立虛擬用戶對應的系統真實用戶
useradd jboss -d /data -s /sbin/nologin
chown jboss.jboss /data
注:在虛擬主機服務器上用nginx,用戶爲www
第三步、修改配置文件
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
userlist_enable=YES
chroot_local_user=YES
tcp_wrappers=YES
#guest_enable=YES
#guest_username=jboss
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=50010
pasv_enable=yes
max_clients=200
max_per_ip=4
idle_session_timeout=600
ftpd_banner=Welcome to Windows2008 FTP Service.
註釋如下:
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的服務日誌保存路徑。注意,該文件默認不存在。必須要手動touch出來,並且由於這裏更改了Vsftpd的服務宿主用戶爲手動建立的Vsftpd。必須注意給與該用戶對日誌的寫入權限,否則服務將啓動失敗。
xferlog_std_format=YES
設定日誌使用標準的記錄格式。
nopriv_user=vsftpd
設定支撐Vsftpd服務的宿主用戶爲手動建立的Vsftpd用戶。注意,一旦做出更改宿主用戶後,必須注意一起與該服務相關的讀寫文件的讀寫賦權問題。比如日誌文件就必須給與該用戶寫入權限等。
async_abor_enable=YES
設定支持異步傳輸功能。
ascii_upload_enable=YES
ascii_download_enable=YES
設定支持ASCII模式的上傳和下載功能。
ftpd_banner=Welcome to Awei FTP servers
設定Vsftpd的登陸標語。
chroot_local_user=YES
禁止本地用戶登出自己的FTP主目錄。
pam_service_name=vsftpd
設定PAM服務下Vsftpd的驗證配置文件名。因此,PAM驗證將參考/etc/pam.d/下的vsftpd文件配置。
以下這些是關於Vsftpd虛擬用戶支持的重要配置項目。默認Vsftpd.conf中不包含這些設定項目,需要自己手動添加配置。
guest_enable=YES
設定啓用虛擬用戶功能。
guest_username=ftp
指定虛擬用戶的宿主用戶。
virtual_use_local_privs=YES
設定虛擬用戶的權限符合他們的宿主用戶。
user_config_dir=/etc/vsftpd/vsftpd_user_conf
設定虛擬用戶個人Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每個Vsftp虛擬用戶個性的配置文件,一個需要注意的
地方就是這些配置文件名必須和虛擬用戶名相同。
第四步、建立日誌
因爲默認vsftpd的日誌文件不存在,需要手工建立,同時賦予權限
# touch /var/log/vsftpd.log
第五步、建立虛擬用戶配置文件
# mkdir /etc/vsftpd/vsftpd_user_conf
所有權限
# vim /etc/vsftpd/vsftpd_user_conf/user1
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=Yes
local_root=/data/user1
上傳權限
# vim /etc/vsftpd/vsftpd_user_conf/user2
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=NO
local_root=/data/user2
只能下載
# vim /etc/vsftpd/vsftpd_user_conf/user3
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=/data/user3
第六步、關閉SELinux
#vi /etc/selinux/config
SELINUX=disabled
#setenforce 0 不重啓關閉selinux生效
第七步、關閉防火牆或打開21、20端口
#setup
啓動服務
#service vsftpd start
看日誌:
#tail -f /var/log/vsftpd.log
#tail -f /var/log/secure
支持SSL
如果需要支持SSL 安全連接
#vi /etc/vsftpd/vsftpd.conf
ssl_enable=yes
rsa_cert_file=/etc/vsftpd/vsftpd.pem
ssl_ciphers=HIGH
require_ssl_reuse=NO
生存密鑰:放入rsa_cert_file=/etc/vsftpd/ 目錄下
#openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem -days 1095
重啓服務:
#service vsftpd restart