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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    LeetCode OJ 107. Binary Tree Level Order Traversal II
    LeetCode OJ 116. Populating Next Right Pointers in Each Node
    LeetCode OJ 108. Convert Sorted Array to Binary Search Tree
    LeetCode OJ 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode OJ 98. Validate Binary Search Tree
    老程序员解Bug的通用套路
    转载 四年努力,梦归阿里,和大家聊聊成长感悟
    转载面试感悟----一名3年工作经验的程序员应该具备的技能
    Web Service和Servlet的区别
    关于spring xml文件中的xmlns,xsi:schemaLocation
  • 原文地址:https://www.cnblogs.com/chismi/p/10024966.html
Copyright © 2011-2022 走看看