本节内容:
vsftpd服务器虚拟用户配置
系统环境: centos 5.2 x86_64
FTP服务端:vsftpd
直接yum安装:
# 通过yum直接在线装vsftpd(rpm版本)
复制代码 代码示例:
yum -y install vsftpd
# 创建系统用户的列表,一行一个
复制代码 代码示例:
touch /etc/vsftpd/vsftpd.chroot_list
# 创建vsftp的日志文件
复制代码 代码示例:
touch /var/log/vsftpd.log
# 创建虚拟用户的配置文件路径目录
复制代码 代码示例:
mkdir /etc/vsftpd/user_config
# 创建vsftp的系统用户 (假设站点目录在/www/wwwroot/ftpd)
复制代码 代码示例:
useradd ftpd -d /www/wwwroot/ftpd -s /sbin/nologin
# 把vsftp的系统用户写入vsftpd.chroot_list
复制代码 代码示例:
echo 'ftpd' >> /etc/vsftpd/vsftpd.chroot_list
# 准备工作, 创建passwd.txt, 单行为用户名, 双行为密码
复制代码 代码示例:
touch /etc/vsftpd/passwd.txt
例如:
ftp1
123456
ftp2
456789
# 创建虚拟用户密码认证的数据库文件
复制代码 代码示例:
db_load -T -t hash -f passwd.txt /etc/vsftpd/user_passwd.db
# 如果提示找不到db_load, 则安装下列包, 如果正常则跳过本步骤
复制代码 代码示例:
yum -y install db4 db4-tcl db4-utils
# 直接编辑认证文件
vi /etc/pam.d/vsftpd
复制代码 代码示例:
# 清空里面的内容或者都注释掉(最前面加#), 添加下面两行
auth
required pam_userdb.so db=/etc/vsftpd/user_passwd
account required pam_userdb.so db=/etc/vsftpd/user_passwd
# 编辑vsftp的配置文件
vi /etc/vsftpd/vsftpd.conf
# 添加内容
复制代码 代码示例:
listen=YES
background=YES
anonymous_enable=NO
local_enable=YES
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
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log # 日志文件路径, 前面有说到
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to hao32 FTP servers # 登陆后欢迎语, 可以自定义
pam_service_name=vsftpd # 认证文件名, 在位置/etc/pam.d/vsftpd
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list # vsftp系统用户列表, 前面有说到
guest_enable=YES # 允许虚拟用户
guest_username=ftpd # vsftp的系统用户, 前面有说到
user_config_dir=/etc/vsftpd/user_config # vsftp的虚拟用户的配置文件目录, 前面有说到
reverse_lookup_enable=NO # 禁止反解析,解决有时候连接FTP会卡住一会的问题
# 为每个虚拟用户创建配置文件
vi /etc/vsftpd/user_config/ftp1
复制代码 代码示例:
# 添加内容
local_root=/www/wwwroot/ftpd/ftp1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# 同样的方法建立ftp2,如果用户多的话,写入/etc/vsftpd/passwd.txt来生成密码认证的数据库文件。
# 启动vsftp服务器
复制代码 代码示例:
service vsftpd start
# 验证登陆
复制代码 代码示例:
主机名: 您服务器的
IP地址
用户:ftp1/123456
用户:ftp2/456789
# 说明: /www/wwwroot/ftpd目录的所有文件用户属组都是ftpd,使用虚拟用户上传的文件用户属组也都是ftpd
# 为了处理多用户安全的情况,一个虚拟用户无法跳到同组其他用户下。