vsftpd 创建虚拟用户,添加黑名单 常见550 500报错解决方案

1 安装vsftpd

yum install -y vsftpd ftp

2 配置vsftpd

  1. 创建宿主用户

    useradd ftpuser
    
  2. 备份vsftpd.conf文件

    mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
    
  3. 修改vsftpd.conf文

    vim /etc/vsftpd/vsftpd.conf
    

    添加如下内容

    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 FTP Server
    chroot_local_user=YES
    ls_recurse_enable=NO
    listen=YES
    hide_ids=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    guest_enable=YES
    allow_writeable_chroot=YES
    #虚拟机宿主用户
    guest_username=ftpuser
    virtual_use_local_privs=YES
    #个人vsftp文件存放目录
    user_config_dir=/etc/vsftpd/vconf
    

注意:

  • 虚拟机宿主用户要改为自己创建的用户

2.2 虚拟用户配置

  1. 制作虚拟用户文件

    vim /etc/vsftpd/virftp.txt
    
    myftp1
    123
    myftp2
    123
    
  2. 生成虚拟用户数据库文件

    db_load -T -t hash -f /etc/vsftpd/virftp.txt /etc/vsftpd/virftp.db
    

如果修改了/etc/vsftpd/virftp.txt 内容,需要 再次 生成虚拟用户数据库文件

2.3 设置认证文件 PAM

vim /etc/pam.d/vsftpd

注释 除第二行以外

详情如下:

#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth    sufficient      /lib64/security/pam_userdb.so    db=/etc/vsftpd/virftp
account sufficient      /lib64/security/pam_userdb.so    db=/etc/vsftpd/virftp

2.4 虚拟用户配置

  1. 创建虚拟用户配置文件存放路径

    mkdir /etc/vsftpd/vconf
    
  2. 创建虚拟用户家路径

    mkdir /home/vft
    
  3. 赋予宿主用户权限

    chown ftpuser:ftpuser /home/vftp
    
  4. 建立 单个虚拟用户 配置文件

    myftp1 是自定义的虚拟用户名字

    vim /etc/vsftpd/vconf/myftp1
    
    local_root=/home/ftp
    #指定虚拟用户的具体主路径,可更改
    anonymous_enable=NO
    #设定不允许匿名用户访问
    write_enable=YES
    #设定允许写操作
    local_umask=022
    #设定上传文件权限掩码
    anon_upload_enable=NO
    #设定不允许匿名用户上传
    anon_mkdir_write_enable=NO
    #设定不允许匿名用户建立目录
    idle_session_timeout=600
    #设定空闲连接超时时间
    data_connection_timeout=120
    #设定单次连续传输最大时间
    max_clients=10
    #设定并发客户端访问个数
    max_per_ip=5
    #设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件
    local_max_rate=50000
    #设定该用户的最大传输速率,单位b/s
    
  5. 复制 修改文件名为第二个虚拟用户的名字

    cp /etc/vsftpd/vconf/myftp1 /etc/vsftpd/vconf/myftp2
    

3 配置黑名单

  1. 在vsftpd.conf中修改userlist_enable = YES

    vim /etc/vsftpd/vsftpd.conf
    
    userlist_enable=YES
    

    本文中已修改

  2. 在黑名单中添加用户名字 myftp2

    vim /etc/vsftpd/user_list
    

    添加并保存

4 测试

  • 重启服务
systemctl restart vsftpd
  • 测试黑名单

    ftp localhost
    

    在这里插入图片描述

  • 创建
    在这里插入图片描述

5 遇到的错误

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

在vsftpd.conf中把 allow_writeable_chroot打开 (本文配置中已打开)

allow_writeable_chroot=YES

550 create directory operation failed

关闭SELinux

vim /etc/selinux/config

将 SELINUX=XXX -->XXX 代表级别

改为:

SELINUX=disabled

6 参考文章

vsftpd——虚拟用户配置 - 少力 - 博客园 (cnblogs.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值