gpt4 book ai didi

linux - 主动\被动模式下 FTP 服务器的适当 iptables 规则

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:12 24 4
gpt4 key购买 nike

我在 CentOS6 上安装了 ProFTPD 服务器。如果我创建 ftp 本地主机,我可以正确连接,但如果我从外部尝试,我会收到消息“没有主机路由”。但是有一条通往主机的路由,因为我是通过 SSH 连接的。

我尝试添加以下 iptable 规则:

iptables -A INPUT  -p tcp -m tcp --dport 21 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 21"
iptables -A OUTPUT -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 21"

iptables -A INPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Allow ftp connections on port 20"
iptables -A OUTPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 20"

iptables -A INPUT -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow passive inbound connections"
iptables -A OUTPUT -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Allow passive inbound connections"

并重新启动了 proftpd 和 iptables 服务。我该怎么做才能解决此问题?

最佳答案

为了允许 FTP,您需要在服务器上设置以下规则:

  1. 允许客户端发起的控制连接到端口21,如下:

    iptables -A INPUT  -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 21"
    iptables -A OUTPUT -p tcp -m tcp --sport 21 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 21"
  2. 对于主动模式,允许服务器从端口 20 发起的数据连接,如下所示:

    iptables -A OUTPUT -p tcp -m tcp --sport 20 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 20"
    iptables -A INPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 20"
  3. 对于被动模式,允许客户端在非特权端口上发起的数据连接:

    iptables -A INPUT -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -m comment --comment "Allow passive inbound connections"
    iptables -A OUTPUT -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow passive inbound connections"

普通的 conntrack 模块应该在事件模式下建立 RELATED 数据连接时正确跟踪,但是您可能需要加载 nf_conntrack_ftp在被动模式下建立此类连接时正确跟踪的模块:

  • 检查它是否加载了 lsmod | grep nf_conntrack_ftp.
  • 使用 modprobe nf_conntrack_ftp 加载它。

或者,您可以将 RELATED 状态替换为 NEW 状态,这不太安全,但肯定可以完成工作。

This link简要总结了上述规则的基本原理。

关于linux - 主动\被动模式下 FTP 服务器的适当 iptables 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26659223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com