centos7 vsftp 虚拟用户配置

搞过好多遍了,每次都要花不少时间确认一些小问题,所以做个笔记,供以后参考
1. 安装 vsftpd

yum install vsftpd
chkconfig vsftpd on
  1. 测试端口外网可访问性,用telnet就可以测试,如果不可访问,请确认vsftp端口已经监听,并且iptable 或者firewall配置正确,同时如果用的是阿里云之类的云主机,确认云平台的安全策略是否已经开放21端口
  2. 创建用户
    useradd virtual -s /sbin/nologin
    默认的vsftpd的服务宿主用户是root,但是这不符合安全性的需要。这里建立名字为virtual的用户,用他来作为支持Vsftpd的服务宿主用户。由于该用户仅用来支持vsftpd服务用,因此没有许可他登陆系统的必要,并设定他为不能登陆系统的用户。
    这个用户跟配置文件中的guest_username字段是对应的。
  3. 修改/etc/vsftpd.conf
    新增:
anonymous_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/users
reverse_lookup_enable=NO
  1. 修改 /etc/pam.d/vsftpd,删除原有内容,新增:
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
  1. 创建账号
    1)创建账号文件 login.txt:aaaa是密码,1111是密码,多个用户依次换行
aaa
111111
bbb
222

2)生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
7. 创建虚拟账号
mkdir /etc/vsftpd/users
vi aaaa
这里面的权限要根据需要的权限来配置,下面是一个可读写的全权限用户配置

local_root=/var/ftp/aaa
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
  1. 对相关的路径给与权限,这样才能正常上传,否则会提示553错误
mkdir -p /var/ftp/aaa

chown virtual:virtual /var/ftp/aaa

chmod 755 /var/ftp/aaa
  1. 配置完成重启服务
    systemctl restart vsftpd

发表评论

电子邮件地址不会被公开。 必填项已用*标注