zoukankan      html  css  js  c++  java
  • Centos7.4 搭建FTP服务器以及遇到的坑

    1:安装vsftpd

    yum install vsftpd -y


    2:启动vsftpd

    systemctl start vsftpd

    加入开机启动

    systemctl enable vsftpd


     启动后可以看到系统监听21端口

    netstat -nltp | grep 21


    3:vsftpd的文件说明

    vsftpd.conf: 主要配置文件

    ftpusers:配置禁止访问ftp服务器的用户列表

    user_list:配置用户访问控制

    4:配置阻止匿名用户访问和切换根目录

    vi /etc/vsftpd/vsftpd.conf


    找到以下两处并按下面的样子修改

    # 禁用匿名用户
    anonymous_enable=NO
    # 禁止切换根目录
    chroot_local_user=YES
    
    #开启以下配置
    
    chroot_local_user=YES
    chroot_list_enable=YES
    # (default follows)
    chroot_list_file=/etc/vsftpd/chroot_list     #如果没有此文件则创建此文件,不需要添加内容


    文件末尾添加

    allow_writeable_chroot=YES 

    不添加此项,连接ftp服务器的时候会报500 OOR。。。。

    5:创建ftp用户

    useradd ftpuser


     为用户设置密码

    echo "ftpuser123" | passwd ftpuser --stdin


    6:限制上步创建的用户只能通过ftp访问

    usermod -s /sbin/nologin ftpuser


    7:为用户分配主目录

    用以下命令创建,但是该目录不能上传文件

    mkdir -p /home/ftp/pub 


    创建欢迎文件

    echo "Welcome to use FTP service." > /home/ftp/welcome.txt


    设置访问权限

    chmod a-w /home/ftp && chmod 777 -R /home/ftp/pub


    设置为用户主目录

    usermod -d /home/ftp ftpuser


    8:保存后重启vsftpd

    systemctl restart vsftpd


    9:配置防火墙

    在防火墙的配置文件中开启21端口,并重启防火墙

    firewall-cmd --add-port=21/tcp --permanent


    上述步骤即可完成vsftpd搭建,但是客户端只能通过主动模式访问vsftpd,例如使用filezilla需要将传输模式的默认模式改为主动模式才能访问ftp服务器,如果发现可以正常登陆但是无法将目录列出来,就是这个原因.如果需要直接可以访问的话,需要将ftp服务器开启被动模式

    1:修改配置文件

    vi /etc/vsftpd/vsftpd.conf
    

     
    2:在末尾添加

    pasv_enable=YES
    pasv_min_port=30000
    pasv_max_port=31000
    


    3:重启vsftpd并将上述的30000端口至31000端口开启,

    iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 30000:31000 -j ACCEPT
    

     
      备注:过程虽然不难,但遇到的坑比较多,按照很多网上的文章进行配置,最后都是各种错误,刚开始是无法连接,发现没有给用户设置主目录,

    当找到问题后修改,可以连接上但是发现权限不够(忘记给目录赋值权限),而且竟然发现创建的用户可以直接通过ssh连接到服务器,这样子就

    失去了我想要的,安全性也大大降低了,总之问题很多,最头疼的还是提示已经登陆但是无法将目录展示出来,经过自己分析日志发现是模式不对,

    希望大家可以借鉴参考,尽量少入点坑
    ---------------------
    作者:bpandaw
    来源:CSDN
    原文:https://blog.csdn.net/bpandaw/article/details/78061964
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    jquery 实现跨域的简单小例子;
    jquery 实现文字轮播滚动
    js jquery 上传文件格式大小判断简单总结
    js 文本编辑插件 wangEditor 的使用教程和总结
    vue项目结构介绍
    bootstrap select下拉框模糊搜索和动态绑定数据解决方法
    bootstrap实现下拉框select option 美爆了
    jquery 获得select下拉框选择中的属性值
    Nginx + uWSGI 配置django---终极版
    django全文检索
  • 原文地址:https://www.cnblogs.com/chismi/p/10024966.html
Copyright © 2011-2022 走看看