一、故障描述

由于开发提出需求,为他们搭建内部Linux习下ftp服务器,搭建好后,提交给他们,测试可以正常使用。后来过了一段时间后,有一天无法登陆了。于是去ftp主机上检查问题,ftp的配置文件没有改动,端口监听也正常。telnet也可以通。但是用网页,或者winscp 访问就是无法连接。后来谷歌后,发现ftp的iptables 规则比其它应用不太像,有点特别。需要特别的修改下防火墙。(询问后,得知之前其它运维同事加固过该机器的防火墙....)

二、解决方式

1.在原有的防火墙规则中加入以下规则。

-A INPUT -p tcp -s 192.168.30.0/24 -p tcp -m state NEW --dport 21 -j ACCEPT-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

2.加入规则,重启后,虽然能登陆了,但是使用ftp工具时一直报这个错误。无法列出目录。

图1.

图2.

3.后来在iptables 的配置文件中,加入一个模块后,就可以了。可以使用以下命令去添加,永久生效。如下:

sed -i '$ a IPTABLES_MODULES="ip_conntrack_ftp"' /etc/sysconfig/iptables-config

之后重启iptables,即可将该ftp跟踪模块加载到内核中。ip_conntrack_ftp模块是专用于跟踪ftp连接的。

三、原因分析

1.涉及到了主动和被动模式

主动模式: client 打开一个随机端口 port1 去连接 server的 21 号端口,与server的默认21号端口建立连接后。这个时候,client会再打开一个随机端口 port 2等待服务器来连接。服务器收到用户端的命令后,就使用20专用数据传输端口去连接client随机开放的port 2端口。

(注:如果客户端开了防火墙,可能会阻塞ftp 服务器20端口与port 2 之间的连接,这个时候,被动模式就出现了。)

如下图:

注:图片来源于文末的参考资料

被动模式:client使用一个随机端口 去连接ftp server 的21 端口,并发出PASV的要求。 server 去回应 client,并告知clinet : 我已经将本机的 port 3 打开。你来连接吧。之后 client 就会收到 server 发送的 服务器ip+port3的 数据包。 client 就会在本机上打开一个随机的端口 port 4 ,用 port 4去连接服务器上的 port3 端口。这样client 和server 就建立了数据传输的连接。

如下图:

注:图片来源于文末的参考资料

2. 期间我通过使用tcpdump 的分析,也更加的对以上的知识原理进行了进一步的实践和学习。

更多iptables相关教程见以下内容:

四、主动&被动学习验证

1.环境介绍:  client 端: 192.168.30.58

server端:   192.168.30.203

2.主动模式验证:

server 端运行tcpdump 监听:

!!!纠正一个错误:上图中的标注客户端将本机的随机开放的端口发送给服务器内容的那一条,实际上不是在这里发送的,而是在 第一次 ftp-data(20)端口 与 端口49404连接的往上数第四条,是在那儿发送的随机端口。

客户端登陆执行的命令:

可能大家会对上述中的client后续随机打开的端口计算方法有点疑问,一开始我也是,后来查了一下,解释如下:

PORT 命令 用于打开端口的命令。格式为 PORT a,b,c,d,e,f。其中 a,b,c,d 为点分十进制形式的 IP 地址;e,f 表示端口号,为 2 个 10 进制数字,用以标识 e×256 + f 运算出来的端口 号。本文章的e,f也就是192,252. 运行上面的公式后,就得到了端口号为49404

3.被动模式验证:

server 端运行tcpdump 监听:

其实我们也可以使用 tcpdump 时,在命令最后加上 -X ,可以详细的看到报文内容。我也是通过这种方式看到在哪一条进行的端口发送的。

客户端登陆执行的命令:

五、总结

1.主动模式:服务器只需要开启21和20 端口,虽然比较安全,但是如果客户端开启了防火墙,那么可能会无法传输数据。

2.被动模式:默认开启一个21端口后,后续服务器会对每个用户的连接请求随机开放一个端口,服务器安全性降低。

3.在iptables 中,我们需要为ftp 加上一个跟踪模块,即:ip_conntrack_ftp

4.尽量避免在公网中使用ftp传输数据,因为用户及密码是明文传输的。

linux ftp服务器防火墙设置,Linux 为FTP 服务器添加iptables规则--案例分析相关推荐

  1. linux无法关闭防火墙设置,Linux关闭防火墙以及设置允许端口

    1) 重启后生效 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后失效 开启: service iptables sta ...

  2. linux 查看本地防火墙设置,Linux防火墙设置命令的几种方法

    iptables防火墙 1.基本操作 # 查看防火墙状态 service iptables status # 停止防火墙 service iptables stop # 启动防火墙 service i ...

  3. linux查看不了防火墙设置,linux怎么样去查看防火墙设置

    我有时候想查看下linux防火墙的设置怎么样,该怎么样查看呢?下面由学习啦小编给你做出详细的linux查看防火墙设置方法介绍!希望对你有帮助! linux查看防火墙设置方法一: 可以使用 servic ...

  4. 阿里云国际版云服务器防火墙设置

    入侵防御页面为您实时展示云防火墙拦截流量的源IP.目的IP.阻断应用.阻断来源和阻断事件详情等信息.本文介绍了入侵防御页面展示的信息和相关操作,下面和87cloud一起来了解阿里云国际版云服务器防火墙 ...

  5. 服务器自定义防火墙,windows服务器防火墙设置自定义规则

    安装完之后管理员还需要去手工的打开或者关闭端口与协议.现在的话,通常情况下只要采用其默认的策略就可以满足常规下的安全需求.下面是学习啦小编收集整理的windows服务器防火墙设置自定义规则,希望对大家 ...

  6. linux ftp服务器防火墙设置,【许望】linux(RHEL) 下 FTP(vsftpd) 服务器的防火墙配置...

    linux(RHEL) 下 FTP(vsftpd) 服务器的防火墙配置 FTP服务器在与客户端通讯的过程中会用到两个端口,一个是控制端口,通常是21/tcp,一个是数据端口,运行在主动模式下的FTP服 ...

  7. iis自带的ftp服务器权限设置方法,IIS ftp 权限控制

    2010-08-10 周海汉 2010.8.10 http://abloz.com linux下用vsftp等程序,可以很方便设置ftp.而sftp则更具有安全性.ubuntu自带sftp浏览下载功能 ...

  8. Linux关闭ufw防火墙,【Linux】- Ubutnu UFW防火墙的简单设置

    ufw是一个主机端的iptables类防火墙配置工具,比较容易上手.一般桌面应用使用ufw已经可以满足要求了. 安装方法 sudo apt-get install ufw 使用方法 1.启用: sud ...

  9. linux还原防火墙设置,Linux防火墙设置

    Linux防火墙操作 1.重启后生效 ​ 开启: chkconfig iptables on ​ 关闭: chkconfig iptables off 2.即时生效 开启: service iptab ...

最新文章

  1. 一篇文章搞懂Filebeat
  2. 虚拟机服务器503解决,(图文)解决重启VCSA 6.0提示:503 Service Unavailable错误
  3. 【学习笔记】《数据挖掘:理论与算法》CH5 支持向量机
  4. 今天微软关闭Silverlight官网,Sivlerlight真得要死了吗?
  5. ArrayList如何对某个对象的日期属性排序?
  6. 从底层重学 Java 之两大浮点类型 GitChat链接
  7. es6 core-decorators.js
  8. arctime工程文件怎么打开_怎么办?Vegas的项目工程文件打不开
  9. 网络拓扑图画图工具_一款功能强大的免费在线作图工具
  10. sourcetree合并分支_不会git命令,没关系啊,还有强大的图形界面工具SourceTree
  11. oracle导出1000万数据,1000万条数据,最好用什么工具做,是sql,还是oracle,抑或vfp?...
  12. css布局-瀑布流的实现
  13. matlab18a安装步骤,MATLAB R2018a图文安装教程
  14. angular-Forms patchValue and setValue
  15. POI Excel列宽设置
  16. 粒子群算法基本原理与编程
  17. 如何调整网站竞价关键词
  18. java logger 乱码_Log4j乱码
  19. java 导出压缩文件,里面文件名字乱码的问题(麒麟系统,linux)
  20. 公司注册的企业邮箱竟然有邮件撤回的功能?!

热门文章

  1. python风格代码荟萃
  2. 全国行政区域数据库(地市数据库)
  3. 2021全球城市500强非洲上榜城市排行榜:南非6个城市上榜,其中2个跻身总榜百强(附年榜TOP35详单)
  4. mysql查询最小时间的一条数据_SQL 获取时间最小的一条数据
  5. 2022春招华为笔试题-(2)
  6. 彻底关闭windows10的更新功能
  7. 防火墙技术原理学习笔记
  8. Tribon与MySQL操作说明
  9. IFIX MBE驱动的深入内幕分析
  10. 基于分位数回归的长短期记忆网络QRLSTM时间序列区间预测。(主要应用于风速,负荷,功率)包含评价指标R2,MAE,MBE,区间覆盖率,区间平均宽度。