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

  • 相关阅读:
    打印杨辉三角C语言小程序
    奇怪的比赛蓝桥杯
    (转)Silverlight CoreCLR结构浅析
    试一试!
    (转)使用自定义行为扩展 WCF
    分组合并的使用
    多进程,多线程(转载)
    在 ASP.NET 网页中不经过回发而实现客户端回调(需要实现ICallbackEventHandler接口)
    读书笔记
    WCF学习笔记3(客户端内部运行机制分析)
  • 原文地址:https://www.cnblogs.com/xuanqust/p/13502417.html
Copyright © 2011-2022 走看看