Centos7下安装vsftpd 3.0

作者: brakchen | 来源:发表于2017-07-27 21:05 被阅读485次
    环境
    • Centos 7 x64
    • 25G SSD
    • 1024MB 内存
    • vsftpd 3.*

    先更新下
    [root@vultr ~]# yum update -y

    然后使用yum安装
    [root@vultr ~]# yum install vsftpd -y

    安装完成以后编辑配置文件,在编辑前我们先备份在目录 /etc/vsftpd/下的配置文件
    [root@vultr ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
    编辑
    [root@vultr ~]# vim /etc/vsftpd/vsftpd.conf

    配置文件配置请跟随以下配置:

    #不允许匿名用户登陆
    anonymous_enable=NO
    #允许本地用户登陆
    local_enable=YES
    #允许用户往目录写入文件
    write_enable=YES
    #默认会被注释需要需要去掉行前的#解除注释
    #如果你希望用户在自己目录下而不是可以随意进入其他目录比如/ #,/etc等目录的话,请保留这个为YES。
    #如果你希望用户可以随意进入其他目录的话就注释掉这句话
    chroot_local_user=YES
    
    在文件最后加入以下内容
    #settings
    allow_writeable_chroot=YES
    pasv_enable=Yes
    pasv_min_port=10000
    pasv_max_port=10100
    

    保存并且退出文件

    如果你希望可以使用root登陆vsftpd的话,在/etc/vsftpd/ftpusers 和/etc/vsftpd/user_list 文件内把root去掉

    然后保存退出

    但是我不建议这样做,因为可能会导致vsftpd无法启动

    最后可以启动你的vsftpd了,再启动之前我们先检查下配置文件:
    sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
    有错误的话会返回错误信息

    启动
    oot@vultr ~]# systemctl start vsftpd

    然后创建开机自启
    [root@vultr ~]# systemctl enable vsftpd

    如果你想加入组的话使用以下命令创建组
    [root@vultr ~]# groupadd ftpusersonlygroup

    然后创建一个新的用户
    [root@vultr ~]# useradd -m ftpuser -s /sbin/nologin -g ftpusersonlygroup

    • -m 会自动的为ftpuser在/home目录下创建文件夹,如果你想指定文件路径的话使用:-d /home/newuserfolder 就可以指定了
    • /sbin/nologin 会禁止使用SSH登陆只允许FTP登陆,如果强行使用SSH登陆的话将会返回拒绝信息“This account is currently not available”你可以自定义返回的信息,在 /etc/nologin.txt

    然后更改密码
    [root@vultr ~]# passwd ftpuser

    然后创建ftpuser的根目录
    [root@vultr ~]# mkdir /home/ftpuser/root

    最后我们设置权限

    [root@vultr ~]# chown root:root /home/ftpuser
    [root@vultr ~]# chmod 755 /home
    [root@vultr ~]# chmod 755 /home/ftpuser
    [root@vultr ~]# chown ftpuser:ftpusersonlygroup /home/ftpuser/*
    [root@vultr ~]# chmod 775 -R /home/ftpuser/*
    

    ftpuser的所有者必须是root这样chroot才能正常工作.

    [root@vultr ~]# chmod -R ugo+rw /home/ftpuser

    最后配置防火墙开通端口

    [root@vultr ~]# firewall-cmd --permanent --zone=public --add-port=21/tcp
    [root@vultr ~]# firewall-cmd --permanent --zone=public --add-port=20/tcp
    [root@vultr ~]# firewall-cmd --permanent --zone=public --add-port=22/tcp
    [root@vultr ~]# firewall-cmd --permanent --zone=public --add-port=10000-10100/tcp
    [root@vultr ~]# firewall-cmd --reload
    

    如果你正在使用SELinux,为了确保不会出问题把你得ftp主目录加入白名单
    [root@vultr ~]# setsebool -P home/joe on

    以上就可以正常登陆ftp了,如果你登陆出现错误:
    SFTP Connection Error Received unexpected end-of-file from SFTP server

    请先检查/etc/ssh/sshd_config 配置文件下
    # Subsystem sftp /usr/lib/openssh/sftp-server
    是不是被注释了,如果是的话去掉#解除注释,然后更改为
    Subsystem sftp internal-sftp

    Reference


    以下为可选内容,如果不想开启SFTP请跳过这里拉到最后
    如果你想允许SFTP(secure ftp)的话,请按照以下步骤,他会把通信加密,端口是22,会更安全

    首先安装SSH server
    [root@vultr ~]# yum -y install openssh-server

    打开 /etc/ssh/sshd_config文件然后把注释去掉

    #subsystem sftp /usr/libexec/openssh/sftp-server

    在vim下可以按下/然后输入想搜索的字符按回车 搜索下一个直接按 n

    然后增加以下内容:

    Subsystem sftp internal-sftp
    Match group ftpusersonlygroup
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    

    然后重启SSHD
    [root@vultr ~]# systemctl restart sshd


    最后附上一些别人总结的常见问题以及解决方案

    vsftpDaemon搭建问题手册

    相关文章

      网友评论

        本文标题:Centos7下安装vsftpd 3.0

        本文链接:https://www.haomeiwen.com/subject/cirtlxtx.html