本文记录内部vsftp服务环境搭建过程
1,关闭SELinux,
对于pasv模式ftp,端口受SElinux管理,可能报425 Failed to establish connection.错误。
setenforce 0
cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
2, 新建操作系统用户
方便权限控制和对ftp虚拟用户文件进行统一管理
useradd -d /home/vsftp -s /bin/false vsftpd
chmod -R 755 /home/vsftp
3, 建立虚拟用户文件
vsftp通过parm对虚拟用户、OS用户进行认证。
3.1 编辑虚拟用户账户
比如内容如下 cat /etc/vsftpd/vusers.txt
zhannianke
password
3.2 建立pam认证识别的加密库
db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db
4, 为vsftpd配置pam服务
修改/etc/pam.d/vsftpd. 比如 cat /etc/pam.d/vsftpd
cat /etc/pam.d/vsftpd
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
session optional pam_keyinit.so force revoke
auth optional pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
5, 修改vsftpd配置文件/etc/vsftpd.conf
#
#打开虚拟用户管理配置
pam_service_name=vsftpd ###与前述pam配置文件对应
guest_enable=yes
guest_username=vsftpd ####对应的OS用户
user_config_dir=/etc/vsftpd/vusers.d #####指定虚拟用户配置文件路径
local_enable=yes
#
#启用可写权限
write_enable=YES
allow_writeable_chroot=yes #避免错误500 OOPS: vsftpd: refusing to run with writable root inside chroot()
virtual_use_local_privs=YES #避免文件权限错误
#
#启用passive模式
pasv_enable=yes
pasv_min_port=10000
pasv_max_port=12000
6,编写虚拟用户配置文件
在上述user_config_dir指定目录下,按照第3步骤的vusers.txt中,每个用户新建一个对应配置文件。比如:
cat /etc/vsftpd/vusers.d/zhannianke
local_root=/home/vsftpd/zhannianke
virtual_use_local_privs=YES
guest_username=vsftpd
write_enable=YES
7,启动vsftpd服务
systemctl restart vsftpd
常见问题分析:
1,用户登录认证信息分析查看文件 /var/log/secure
2, 对于文件传输记录可以在vsftpd.conf中打开文件传输日志