zoukankan      html  css  js  c++  java
  • linux中搭建公网ftp服务器

    Linux搭建ftp服务器汇总整理

    推荐一款ftp客户端工具:iis7服务器管理工具
    IIs7服务器管理工具可以批量管理ftp站点,同时具备定时上传下载的功能。
    作为服务器集成管理器,它最优秀的功能就是批量管理windows与linux系统服务器、vps。能极大的提高站长及服务器运维人员工作效率。同时iis7服务器管理工具还是vnc客户端,服务器真正实现了一站式管理,可谓是非常方便。
    下载地址:http://yczm.iis7.com/?tscc
    使用截图如下:


    一、检查linux中是否已经安装vsftpd服务端软件

    rpm -qa |grep vsftpd

    二、卸载linux中的vsftpd服务端软件

    rpm -e vsftpd安装版本号

    三、安装linux中的vsftpd服务端

    yum install vsftpd -y

    四、安装linu中的ftp客户端

    yum install ftp

    五、启动停止重启vsftpd服务端

    启动:service vsftpd start

    关闭:service vsftpd stop

    重启:service vsftpd restart

    六、设置开机自启

    chkconfig vsftpd on

    七、配置vsftpd服务端模式

    1、主动模式:(公司内网使用可以选择此模式)

    # vi /etc/vsftpd/vsftpd.conf

    port_enable=YES

    connect_from_port_20=YES

    2、被动模式:(需要映射到公网的就选择此模式,想对安全)

    # vi /etc/vsftpd/vsftpd.conf
    connect_from_port_20=NO

    pasv_enable=YES(被动模式开启)
    pasv_min_port=3010(最小端口)
    pasv_max_port=3015(最大端口)

    pasv_address=公网IP地址(非常重要这个)

    说明:最小端口、最大端口范围最好是5-10端口就行,方便公网开通对应端口,端口数量太少,可能会导致有时候能连接上,有时候连接不上。

    八、ftp服务器主动、被动模式区别

    1、主动模式(PORT):

      原理:

     FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上), 发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端 开放的端口连接,发送数据。

      要点:

    传送数据时是“服务器”连接到“客户端”的端口;

    需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难;

    2、被动模式(PASV):

      原理:

    FTP 客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输。

      要点:

    传送数据是“客户端”连接到“服务器”的端口;

    只需要服务器端开放端口给客户端连接就行;

    3、如何选择ftp模式:

    如果只是公司内部、局域网使用ftp,可以用主动模式,但是ftp客户端防火墙最好关掉或者开放ftp需要的数据端口范围,不存在安全问题也。如果是公网ftp就用被动模式,可以自定义端口,更加安全。

    想要安全、连接方便就用被动模式。

    九、ftp服务器中三种用户模式

    1、匿名用户:

    anonymous账号,不用输入密码就能够进入ftp服务器。

    此用户模式非常不安全,一般不采用。如果需要详情见网上连接:https://www.cnblogs.com/revo/p/7444897.html

    2、本地用户:

    首先在linux中需要创建用户,然后将创建的用户添加到ftp服务器的白名单中,然后该用户才可以登录ftp服务器。

    默认用户可以登录ftp,也可以通过sftp登录上去查看其它资源,可以让用户只登录ftp,不能通过sftp方式登录服务器。

    此用户模式比匿名想对安全,需要限定ftp用户不能通过sftp方式访问22端口的服务器资源就更加安全了。

    3、虚拟用户:

    就是不需要创建linux中实际账号,只需要配置虚拟用户、生成数据文件配置就行,详情见网上连接:https://www.cnblogs.com/revo/p/7444897.html

    4、禁止ftp用户ssh登录(安全问题可以解决)

      禁止ftp用户ssh登录:

      查看/etc/shells文件,找到nologin的路径

     

      执行命令:

    usermod -s /sbin/nologin 用户名称

      解除ftp用户ssh登录禁止:

      查看/etc/shells文件,找到bash的路径

     

      执行命令:

    usermod -s /bin/bash 用户名称

    十、修改vsftpd配置文件

    1、匿名登录:

    允许:anonymous_enable=YES

    不允许:anonymous_enable=NO

    2、是否只显示用户路径:

    用户只看到自己路径:chroot_local_user=YES

    用户可查看其它路径:chroot_local_user=NO

    3、是否添加可查看其它目录用户名单:

    不添加可查看其它目录名单:chroot_list_enable=NO

    添加可以查看其它目录名单:

    chroot_list_enable=YES

    chroot_list_file=/etc/vsftpd/chroot_list(用户名单文件)

    4、只允许名单内用户登录:

    userlist_enable=NO

    5、被动模式添加配置信息:

    connect_from_port_20=NO

    pasv_enable=YES
    pasv_min_port=3010(最小端口)
    pasv_max_port=3015(最大端口)

    pasv_address=公网IP地址(非常重要这个)

    6、添加可登录用户白名单:

    user_list文件中添加用户名,一行一个(此方式最方便,直接配置允许登录的用户账号名称即可)

    7、添加可查看其它目录用户名单:

    chroot_list文件中添加用户名,一行一个,如果没有自己创建文件

    8、权限配置:

     local_umask=022(暂时不清楚为什么)

    anon_umask=077(暂时不清楚为什么)

    十一、修改linux的防火墙端口

    vim /etc/sysconfig/iptables

    添加一行,修改需要开通的端口号:

    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

    如果是ftp是被动模式,还需要开通最小到最大端口的访问:

    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3010:3015 -j ACCEPT(例如:最小为3010,最大为3015端口)

    重启服务

    service iptables restart

    十二、互联网端口映射配置

    1、ftp连接端口配置:

    一般默认的就是21端口

    2、ftp数据端口配置:

    就是自己指定的最小端口、最大端口范围内,包括最大、最小端口,逐个开通就行。

    十三、ftp服务器增加新用户步骤

    1、创建用户并指定默认路径:

    useradd -d /data/ftpFiles/lsyftp(指定home路径)-m lsyftp(用户名称)

    注意:用户文件夹lsyftp不要自己创建,会自动创建,以免因为文件夹权限问题出现异常。

    2、修改用户密码:

    passwd lsyftp(用户名称)

    3、禁止ftp用户ssh登录:

      查看/etc/shells文件,找到nologin的路径

     

      执行命令:

    usermod -s /sbin/nologin 用户名称

    说明:通过禁止ftp用户进行ssh登录,可以尽量保证安全性;

    4、将新创建用户添加到ftp白名单中

    /etc/vsftpd/user_list文件中添加用户名,一行一个

  • 相关阅读:
    干货分享:如何使用Kubernetes的Ingress API
    十年OpenStack Ussuri最新版发布 主要改进在可靠性、安全性和用例支持等方面
    如何更好地优化容器的创建?这些技巧你务必收藏
    Kubernetes是容器化微服务的圣杯么?
    微服务是否真的需要服务网格?
    ZOOM火速收购加密公司Kaybase 能否补齐安全短板?
    5个实例告诉您:如何实施成功的容器化多云策略
    新基建火了,开源云计算渠道能做什么?
    盘点6个Kubernetes监视工具
    掌握这10种方法帮你快速在Linux上分析二进制文件
  • 原文地址:https://www.cnblogs.com/lsy-blogs/p/10170662.html
Copyright © 2011-2022 走看看