Vsftp 配置样例:Virtual User 与 TLS

发布时间:2019-12-15编辑:脚本学堂
virtual user的配置样例:按装必要软件:db4-utils & vsftpd,其中db4-tuils是为了创建虚拟用户的密码数据库而按装的。

virtual user的配置样例:
按装必要软件:db4-utils & vsftpd,其中db4-tuils是为了创建虚拟用户的密码数据库而按装的。
创建密码数据库文件:/etc/vsftpd/virtual-users.txt。格式如下
username1
password1
username2
password2
使用创建密码库文件:db_load -T -t hash -f /etc/vsftpd/virtual-users.txt /etc/vsftpd/virtual-users.db
创建一个pam验证文件:vi /etc/pam.d/vsftpd-virtual
 

复制代码 代码如下:
#%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/virtual-users account required pam_userdb.so db=/etc/vsftpd/virtual-users session required pam_loginuid.so
 

编辑vsftpd文件来使用这个pam验证机制
 

复制代码 代码如下:
# disables anonymous FTP
anonymous_enable=NO
# enables non-anonymous FTP
local_enable=YES
# activates virtual users
guest_enable=YES
# virtual users to use local privs, not anon privs
virtual_use_local_privs=YES
# enables uploads and new directories
write_enable=YES
# the PAM file used by authentication of virtual uses
pam_service_name=vsftpd-virtual
# in conjunction with 'local_root',
# specifies a home directory for each virtual user
user_sub_token=$USER
local_root=/var/www/virtual/$USER
# the virtual user is restricted to the virtual FTP area
chroot_local_user=YES
# hides the FTP server user IDs and just display "ftp" in directory listings
hide_ids=YES
# runs vsftpd in standalone mode
listen=YES
# listens on this port for incoming FTP connections
listen_port=21
# the minimum port to allocate for PASV style data connections
pasv_min_port=62222
# the maximum port to allocate for PASV style data connections
pasv_max_port=63333
# controls whether PORT style data connections use port 20 (ftp-data)
connect_from_port_20=YES
# the umask for file creation
local_umask=022
 

为不同的用户创建目录文件/var/www/virtual/$USER,但都属于同一个属主和属组ftp:ftp。

centos的wiki上有一篇不错的原文:http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users。非常详尽。只需要说明几点测试时遇到的问题如下:

增加了TLS的功能,在使用lftp命令测试时,可以设置如下参数使TLS生效。
set ftp:ssl-auth TLS
set ftp:ssl-force true
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
但是使用TLS的传输会比较慢。经测试:
不用TLS的传输速率达到 50MB/s
使用TLS的传输速率只有1.5MB/s