ftp tls 防火墙 :(

Jud*_*ing 2 firewall iptables ftp tls

启用防火墙后,我的 FTP 无法正常工作。过去我一直为我设置 iptables,我昨天大致学会了如何设置,但我错过了这需要的规则。这是我的 iptables.rules

# 由 iptables-save v1.4.4 在 2010 年 11 月 16 日星期二 23:23:50 生成
*筛选
:前向接受[0:0]
:输入接受[0:0]
:输出接受[0:0]

-A 输入 -i lo -j 接受
-A INPUT -m state -i eth0 --state RELATED,ESTABLISHED -j ACCEPT
-A 输入 -p tcp -m tcp --dport 20:21 -j 接受
-A 输入 -p tcp -m tcp --dport 989:990 -j 接受
-A 输入 -p tcp -m tcp -i eth0 --dport 22 -j 接受
-A 输入 -p tcp -m tcp -i eth0 --dport 80 -j 接受
-A 输入 -p tcp -m tcp -i eth0 --dport 443 -j 接受
-A 输入 -p tcp -m tcp -i eth0 --dport 10000 -j 接受
-A 输入 -p icmp -i eth0 -j 接受
-A INPUT -j REJECT --reject-with icmp-port-unreachable


犯罪
# 于 2010 年 11 月 16 日星期二 23:23:50 完成
# 由 iptables-save v1.4.4 在 2010 年 11 月 16 日星期二 23:23:50 生成
*破坏
:PREROUTING 接受 [95811:65665815]
:输入接受[92355:65212126]
:前向接受[0:0]
:输出接受[55795:22371752]
:POSTROUTING 接受 [55795:22371752]
犯罪
# 于 2010 年 11 月 16 日星期二 23:23:50 完成
# 由 iptables-save v1.4.4 在 2010 年 11 月 16 日星期二 23:23:50 生成
*nat
:路由前接受 [5132:543438]
:POSTROUTING 接受 [953:67517]
:输出接受[953:67517]
犯罪
# 于 2010 年 11 月 16 日星期二 23:23:50 完成

所以总结一下,我的 FTP 将连接但不显示启用防火墙的任何文件。禁用防火墙后,一切都很完美。

编辑:我让它与防火墙一起使用的唯一其他方法是禁用 ipv6,禁用 TLS 并向防火墙添加规则以允许从我的家庭网络连接(服务器在其他地方)

Der*_*rfK 7

在被动模式下,当客户端想要从服务器获取文件或向服务器发送文件时,FTP 服务器会随机选择一个端口并将该端口发送给 FTP 客户端。

当您不使用加密时,正确配置的防火墙(使用ip_conntrack_ftp辅助内核模块,这可能是非 TLS 连接所缺少的)会“侦听”连接并将这些连接标记为RELATED. 通过加密,防火墙无法侦听。

对此的快速而肮脏的解决方案是将 FTP 服务器配置为为被动连接选择一小部分端口,然后允许访问所有这些端口。例如,在vsftpd

pasv_min_port=12000
pasv_max_port=12049
Run Code Online (Sandbox Code Playgroud)

然后在 iptables 中:

iptables -A INPUT -p tcp -m tcp -i eth0 --dport 12000:12049 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

允许任何人访问这些端口打开了一个可能的漏洞:如果有人一遍又一遍地扫描它们,他们可能会很幸运并且能够“击败”真正的用户到数据端口并获取文件。理想情况下,您的 FTP 服务器会检查并确保连接来自与原始连接相同的位置,但多亏了诸如“FXP”之类的东西(通过说服一个服务器与另一台服务器建立主动连接,将文件从一台服务器传输到另一台服务器)被动数据端口)一些服务器默认不检查连接。您应该检查您的配置文件,看看是否有禁用 FXP 的选项,然后使用它。(vsftpd 称之为“混杂”,默认情况下是禁用的。)