linux服务器安装vsftpd

一、配置服务器yum源

二、通过yum命令安装vsftpd

    yum -y install vsftpd

三、设置vsftpd为开机自启
    
    systemctl start vsftpd // 启动服务

    systemctl enable vsftpd  // 开机自启

    systemctl status vsftpd  // 启动状态

四、配置系统本地用户登录ftp

    1、创建本地登录用户

        useradd testuser      // 添加用户

        passwd testuser      // 天机密码
    
    2、创建ftp文件存放根目录
    
        /home/testuser/ftpfiles

    3、修改vsftpd本地配置文件

        vsftpd配置文件在/etc/vsftpd目录下,修改前备份原始配置文件

            cd /etc/vsftpd

        具体配置如下(其它配置使用默认配置):
        
            local_enable=YES               开启本地用户登录

            local_root= /home/testuser/ftpfiles        ftp用户访问根目录
            
            write_enable=YES               全局写权限配置

            userlist_enable=YES    开启用户访问列表

            userlist_deny=NO               只有列表文件里的用户可以访问ftp    

            userlist_file=/etc/vsftpd/allow_user   自定义用户访问白名单
            
         local_root:设置本地用户登录ftp根目录的参数,缺省值为登录用户的家目录,自定义设置时候注意登录用户对自定义目录的操作权限。

        /etc/ftpusers是限制本地用户访问的黑名单(root用户默认禁止登录ftp)

    4、新增编辑白名单文件,设置允许访问ftp的系统用户

        vi  /etc/vsftpd/allow_user
        testuser

    5、创建ftp用户只能访问 /home/testuser目录及其子目录(限制ftp用户越狱)

        在安装vsftpd后不做配置的话,系统用户是可以向上切换到其他目录的。
        在配置文件中,添加如下选项,使得ftp用户只能访问自己的家目录:
        因此local_root的配置值,可以是 /home/testuser的子目录 /home/testuser/ftpfiles,这样用户登录后,自动定位到/home/testuser/ftpfiles,同时不能越级访问。
        
        vim /etc/vsftpd/vsftpd.conf

        
        chroot_local_user=YES
        chroot_list_enable=NO
        allow_writeable_chroot=YES

        chroot_local_user是否将所有用户限制在主目录
        chroot_list_enable是否启动限制用户(特例)的名单
        
        
        如果要有几个用户特例,使test3用户能切换任意目录:

        chroot_local_user=YES
        chroot_list_enable=YES
        allow_writeable_chroot=YES
        chroot_list_file=/etc/vsftpd/chroot_list
        
        vi /etc/vsftpd/chroot_list
        test3

        以上达到了限制ftp目录,但是ftp用户通过ssh登录,还能访问指定以外的目录,因此可以考虑加ssh登录黑名单,或使用ftp虚拟用户。

    
五、使用testuser用户登录ftp测试(所有功能都可)

    1、打开windows的命令窗口,输入命令  ftp xxx.xxx.xxx.xxx   连接ftp,然后输入用户名和密码登录

    2、在windows文件地址栏输入 ftp://xxx.xxx.xxx.xxx/    连接ftp,然后输入用户名和密码登录

六、禁止系统本地用户ssh登录,ftp用户设置成禁止ssh登录

    以禁用 lfeng 用户为例,具体步骤如下:打开配置文件 /etc/ssh/sshd_config,
    
    vim /etc/ssh/sshd_config
    
    只拒绝指定用户进行登录

    在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,格式如下:   

    DenyUsers lfeng 

    多用户,用空格分隔

    DenyUsers lfeng lfeng
    
    保存文件修改并退出,重启 ssh 服务,即可禁用lfeng用户通过 ssh 命令登陆。

    systemctl restart sshd    // 重启服务

七、一些常见ftp问题

ftp客户连接常见故障现象
现象0:
> ftp: connect :连接被拒绝
原因: 服务没启动
解决: # chkconfig vsftpd on<Enter>

现象1:
500 OOPS: cannot open user list file
原因: 不存在文件“/etc/vsftpd.user_list”或文件中不存在该帐户
解决: # echo username >> /etc/vsftpd.user_list<Enter>

现象2:
530 Permission denied.
Login failed.
原因: “/etc/vsftpd.user_list”文件中不存在当前登陆用户
解决: # echo username >> /etc/vsftpd.user_list<Enter>

现象3:
500 OOPS: cannot open chroot() user list file
Login failed.
原因: 不存在文件“/etc/vsftpd.chroot_list”
解决: # echo username >> /etc/vsftpd.chroot_list<Enter>

现象4:
500 OOPS: missing value in config file
Connection closed by remote host.
原因: “=”等号前值有问题,或只有一个空格
解决: 修正相应的值即可,可能过 diff 来比较查找

现象5:
500 OOPS: bad bool value in config file
Connection closed by remote host.
原因: “=”等号后值有问题
解决: 将“=”等号后值确认修改

现象6:
500 OOPS: unrecognised variable in config file
Connection closed by remote host.
原因: 参数前有空格
解决: 将参数前空格删除

现象7、
确认存在“local_enable=YES”,但本地用户无法登陆
原因: 验证参数被误删除
解决: 添加“pam_service_name=vsftpd”

现象8、
500 OOPS: chdir
500 OOPS: child died
Connection closed by remote host.
原因: 用户主目录没有权限或没有主目录
解决: 正确设置用户主目录权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值