zoukankan      html  css  js  c++  java
  • linux 下搭建vsftpd

    近来一直研究如何在linux下搭建ftp服务器,在搭建过程中走了很多弯路,一直迟迟不能搭建成功,终于通过网友提供的方法,搭建成功

    现在讲搭建过程分享一下

    第一步:首先判断是否已安装vsftpd,  执行命令:

    rpm -qa | grep vsftpd  

    已安装返回vsftpd版本号,未安装没有提示。

    第二步:安装vsftpd 

    命令:yum -y install vsftpd

    第三步:安装vsftpd后,开始搭建vsftpd

    1.首先创建ftp文件夹根目录,位置任意,我创建在/home/下创建ftproot文件夹。在ftproot文件夹下可以创建多个用户对应自己的根目录文件夹

    mkdir -p /home/ftproot/ftptest

    2.创建用户

    创建用户时要并且指定其目录为用户目录中创建的 /home/ftproot/ftptest 

    useradd -d /home/ftproot/ftptest -g ftp -s /sbin/nologin ftptest

    -g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)
    -s /sbin/nologin 表示这个用户不能用来登录secureCRT这样的客户端,这种不能登陆的用户又叫做虚拟用户

    3:设置目录权限

    把目录/home/ftproot/ftptest的拥有者设置为ftptest,后期可以通过vsftpd.conf的配置文件直接对应到此文件夹下

    chown -R ftptest /home/ftproot/ftptest

    使ftptest用户拥有这个目录的读写权限

    chmod -R 775 /home/ftproot/ftptest

    4:设置密码

    passwd ftptest 

    输入两次密码,密码设置成功

    第四步:配置vsftpd.conf文件

    vi /etc/vsftpd/vsftpd.conf

    修改配置文件如下:

    anonymous_enable=NO   禁止匿名用户登录

    chroot_list_enable=YES  去掉#注释

    # (default follows)

    chroot_list_file=/etc/vsftpd/chroot_list  去掉#注释

    注:
    chroot_list_enable=YES: 表示对用户访问进行限制
    chroot_list_file=/etc/vsftpd/chroot_list 表示对chroot_list里面指定的用户进行限制 

    创建的ftptest用户所拥有的目录是 /home/ftproot/ftptest,如果不做限制,那么使用ftptest登陆之后可以切换到其他敏感目录去,比如切换到/usr目录去,这样就存在巨大的安全隐患。 为了规避这个隐患,需要限制ftptest用户只能通过ftp访问到 /home/ftproot/ftptest 目录以及子目录。

    vsftpd.conf配置文件增加如下几行:

    allow_writeable_chroot=YES  打开用户上传文件的的读写权限(必须)

    以下三行新增配置,我本人测试后,不添加三行,也不影响用户文件的上传,,姑且保留,如有哪位网友知道原因,可以给我留言

    pasv_enable=YES

    pasv_min_port=3000

    pasv_max_port=30010

    这表示使用被动模式,用于传输数据的端口分配从30000-30010之间。

     配置用户列表

    在/etc/vsftpd/下新增文件chroot_list ,此文件和上面的路径对应

    命令:vi /etc/vsftpd/chroot_list

    插入用户:ftptest,如果有其他用户可以在此文件中添加,新添加的用户访问根目录同上面的第二步

    保存文件退出。

    五:用户鉴权

    因为用户 ftptest 是 nologin的,所以存在鉴权的问题。 如果鉴权问题不解决,就是永不停息的 530错误。。。
    解决办法有如下两种:

    1:方式一: pam.d/vsftpd 文件

    vi /etc/pam.d/vsftpd

    注释掉/etc/pam.d/vsftpd文件里这一行:#auth required pam_shells.so
    这样不去鉴权,从而允许 ftptest 这种 nologin用户登录 ftp 服务器.

    2:方式二:shells 文件

    vi /etc/shells

    在/etc/shells文件里面增加一行:/sbin/nologin
    这样允许不能登录系统的用户通过鉴权

    六:重启服务器

    service vsftpd restart

    到此vsftpd服务器搭建完成,可以通过上面创建的用户进行测试

    总结:最好将selinux和防火墙都关闭,要不开发的开端口的还需要在防火墙上做规则,关闭后,就不需要做啥规则了。

    关闭selinux方法,参考https://www.cnblogs.com/liuzgg/p/11656532.html

    关闭防火墙方法:systemctl stop firewalld

    在连接过程中,有时报530 login incorrect 错误,看看

    vi /etc/pam.d/vsftpd 文件是否已注释掉鉴权。

    参考:https://blog.csdn.net/zwd926/article/details/89884089

  • 相关阅读:
    HDU 5528 Count a * b 欧拉函数
    HDU 5534 Partial Tree 完全背包
    HDU 5536 Chip Factory Trie
    HDU 5510 Bazinga KMP
    HDU 4821 String 字符串哈希
    HDU 4814 Golden Radio Base 模拟
    LA 6538 Dinner Coming Soon DP
    HDU 4781 Assignment For Princess 构造
    LA 7056 Colorful Toy Polya定理
    LA 6540 Fibonacci Tree
  • 原文地址:https://www.cnblogs.com/xuanqust/p/13502417.html
Copyright © 2011-2022 走看看