美文网首页
Debian下安装FTP服务vsftpd

Debian下安装FTP服务vsftpd

作者: 西电大侠 | 来源:发表于2018-11-15 15:50 被阅读9次

    安装vsftpd

    apt-get update
    apt-get install vsftpd
    

    配置vsftpd

    vi /etc/vsftpd.conf
    

    一般配置选项如下:

    # listen=YES
    listen_ipv6=YES
    # listen 和 listen_ipv6 开一个就行;两个都开,vsftpd就报错了
    # 匿名用户访问
    anonymous_enable=NO
    # 本地用户访问
    local_enable=YES
    write_enable=YES
    local_umask=022
    anon_mkdir_write_enable=NO
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_file=/var/log/vsftpd.log
    
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd.chroot_list
    
    secure_chroot_dir=/var/run/vsftpd/empty
    pam_service_name=vsftpd
    
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    ssl_enable=NO
    

    通常我们会在chroot_local_user 以及chroot_list_enable 搭配来使用配置权限。

    chroot_local_user #是否将所有用户限制在用户当前的主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)
    chroot_list_enable #是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
    chroot_list_file=/etc/vsftpd/chroot_list # 简单点来说,这个文件就是为了我们上面组合而存在的,如果我们禁用名单开启。就是开出一个额外的附属情况给一些账号,让他们做出例外的特权。
    让我们举个例子:

    假设有ftp1, ftp2两个ftp用户, 计划让ftp1用户锁定在主目录下,不允许切换到其他目录, 但是允许ftp2用户自由切换目录,则可以分如下两种方式实现:

    方式一:

    令:

    chroot_local_user=YES
    chroot_list_enable=YES
    然后执行
    [root@centos6 ~]# vi /etc/vsftpd.chroot_list
    里面加入用户名ftp2即可
    

    解释:chroot_local_user=YES将所有用户限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=YES,即全体用户都被“限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“不会被限制在主目录下”的用户。

    方式二:

    令:

    chroot_local_user=NO
    chroot_list_enable=YES
    然后执行
    [root@centos6 ~]# vi /etc/vsftpd.chroot_list
    里面加入用户名ftp1即可
    

    解释:chroot_local_user=NO则所有用户不被限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=NO,即全体用户都“不被限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“会被限制在主目录下”的用户。

    其他情况:

    对于chroot_local_user和chroot_list_enable的组合还有这样两种情况:

    chroot_local_user=YES
    chroot_list_enable=NO
    和
    chroot_local_user=NO
    chroot_list_enable=NO
    

    当chroot_list_enable=NO时,就不再启用chroot_list_file,此时就是单纯的把全部用户限定或不限定在主目录下了!

    补充:
    关于chroot_local_user的设置,通常我们倾向于:全局禁止跳出主目录,使用chroot_list添加例外!即:使用Case 1的设置!
    匿名用户默认的root是/var/ftp

    增加用户组和用户

    groupadd ftpuser
    mkdir /home/remote1
    useradd -g ftpuser remote1
    passwd remote1
    # 输入新密码
    
    vim /etc/passwd
    remote1:x:1001:1001::/home/remote1:/sbin/nologin
    vi /etc/shells
    #在最末尾添加一行
    /sbin/nologin
    
    chown -R remote1:ftpuser /home/remote1
    chmod 700 /home/remote1
    

    重启vsftpd服务

    service vsftpd restart
    

    查看服务状态

    service vsftpd status
    

    查看端口监听状态:

    netstat -nap |grep LISTEN
    

    vsftpd监听21端口

    FTP客户端

    Mac下ftp客户端可以使用FileZilla: 下载链接

    相关文章

      网友评论

          本文标题:Debian下安装FTP服务vsftpd

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