use*_*351 4 linux ftp iptables centos6 proftpd
我在 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"
Run Code Online (Sandbox Code Playgroud)
并重新启动 proftpd 和 iptables 服务。我可以做什么来解决这个问题?
为了允许 FTP,您需要在服务器上遵循以下规则:
允许客户端向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"
Run Code Online (Sandbox Code Playgroud)对于主动模式,允许服务器从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"
Run Code Online (Sandbox Code Playgroud)对于被动模式,允许客户端在非特权端口上发起数据连接:
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"
Run Code Online (Sandbox Code Playgroud)普通conntrack模块应该正确跟踪何时RELATED在主动模式下建立数据连接,但是您可能需要加载模块nf_conntrack_ftp以正确跟踪何时在被动模式下建立此类连接:
lsmod | grep nf_conntrack_ftp.modprobe nf_conntrack_ftp。或者,您可以将RELATEDstate 替换为NEWstate,虽然安全性较差,但肯定可以完成工作。
此链接提供了上述规则的基本原理的简明摘要。
| 归档时间: |
|
| 查看次数: |
8634 次 |
| 最近记录: |