CentOS7安装配置VSFTPD(虚拟用户方式)

一、安装
    1. 查看是否安装vsftpd
        rpm -qa | grep vsftpd
    2. 安装 
        yum -y install vsftpd
    3. 设置开机启用
        ckconfig vsftpd on

二、配置vsftpd
    打开vsftpd配置文件
    # vi /etc/vsftpd/vftpd.conf

    #设定不允许匿名访问 
    anonymous_enable=NO
    #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    #记录上传下载文件的日志
    xferlog_enable=YES
    connect_from_port_20=YES
    chown_uploads=YES
    chown_username=ftp
    #日志记录文件位置
    xferlog_file=/var/log/vsftpd.log
    #格式化日志
    xferlog_std_format=YES
    #设定支持ASCII模式的上传和下载功能
    ascii_upload_enable=YES
    ascii_download_enable=YES

    //使用户不能离开主目录 
    chroot_list_enable=YES
    #chroot_list_file=/etc/vsftpd/chroot_list 

    ls_recurse_enable=YES
    #监听IPv4 sockets
    listen=YES
    #注释IPv6 sockets监听
    #listen_ipv6=YES

    #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证 //已下三个请在配置文件中手动添加 
    pam_service_name=vsftpd 

    userlist_enable=YES
    userlist_deny=YES
    #/etc/vsftpd/user_list中的用户禁止登录ftp
    #如果只配置userlist_enable=YES,有可能出现错误 “530 Permission denied”,因此加上如下配置
    userlist_file=/etc/vsftpd/user_list
    tcp_wrappers=YES

    #设定启用虚拟用户功能 
    guest_enable=YES 
    //指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 
    guest_username=ftp 
    #设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
    user_config_dir=/etc/vsftpd/vuser_conf 

    pasv_min_port=61001
    pasv_max_port=62000

    #文件上传下载权限设置
    allow_writeable_chroot=YES
    anon_umask=022
    file_open_mode=777

    #虚拟用户和本地用户有相同的权限
    virtual_use_local_privs=YES


三、创建chroot list,将vftpd.conf配置文件中的guest_username加入其中:
    # touch /etc/vsftpd/chroot_list
    # echo ftp >> /etc/vsftpd/chroot_list

四、创建用户密码文件
    # touch /etc/vsftpd/vuser_passwd.txt
    ##注意奇行是用户名,偶行是密码
    test
    111222

五、生成虚拟用户认证的db文件
    如果没有db4需要先进行安装。安装Berkeley DB工具:
    # yum install db4 db4-utils
    生成虚拟用户认证的db文件:
    # db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

六、编辑认证文件:
    # vi /etc/pam.d/vsftpd

    全部注释掉原来语句再增加以下两句:
    ##查看系统版本号    
    # getconf LONG_BIT
    #系统为32位的
    auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
    account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
    #系统为64位的
    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd


七、创建虚拟用户配置文件
    # mkdir /etc/vsftpd/vuser_conf/
    #文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效
    # vi /etc/vsftpd/vuser_conf/test
    ##内容如下:
    #虚拟用户根目录,根据实际情况修改(如果没有需要创建)。该目录必须要有读写权限 chmod -R 777 目录。
    local_root=/var/ftp/upload
    #可写 
    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

八、设置防火墙
    打开防火墙设置:
    # vi /etc/sysconfig/iptables
    注释其他,新加如下
    # -A INPUT –m state --state NEW –m tcp –p tcp –dport 22 –j ACCEPT
    # -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
    # -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT
    然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:
    # systemctl restart firewalld.service


如果上传下载中出现错误,看下日志vsftpd.conf(xferlog_file)
tail /var/log/vsftpd.log
如果安装过程中出现错误,可看日志

tail /var/log/secure


注:如有错误,请大家指正哈


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
CentOS 7中的vsftpd(Very Secure FTP Daemon)是一个轻量级、安全的FTP服务器,用于在Linux系统上提供文件传输服务。虚拟用户配置vsftpd的一个重要功能,它允许管理员为多个用户创建独立的FTP账户,而无需在系统中为每个用户设置单独的账户。 在CentOS 7中配置vsftpd虚拟用户,通常包括以下几个步骤: 1. **安装和启动vsftpd**: ``` sudo yum install vsftpd systemctl start vsftpd systemctl enable vsftpd ``` 2. **编辑vsftpd配置文件**: ``` sudo vi /etc/vsftpd/vsftpd.conf ``` 打开配置文件后,找到`anonymous_enable`行,将其设为`no`,以禁用匿名访问。 3. **启用虚拟用户模块**: 在配置文件中添加或修改以下行,启用虚拟用户支持: ``` virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/user_conf ``` 还需创建`/etc/vsftpd/user_conf`目录并确保只有root有写权限。 4. **创建虚拟用户和设置权限**: 使用`sudo vsftpd_mkdb`命令初始化vsftpd数据库。然后,为每个虚拟用户创建一个名为`.ftpconfig`的文件,例如: ``` sudo tee /etc/vsftpd/user_conf/myuser.ftpconfig << EOF local_root=/home/myuser/public_html chroot_local_user=YES user_sub_token=YES pasv_enable=YES EOF ``` 这里设置了用户登录后的根目录,并启用了chrooting(限制用户只能在指定目录下操作)。 5. **配置vsftpd用户映射**: 如果需要,可以在`/etc/vsftpd.user_map`中定义用户映射规则。 6. **重启vsftpd服务**: ``` sudo systemctl restart vsftpd ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值