在 ubuntu 上允许通过 IPTables 进行 FTP

在 ubuntu 上允许通过 IPTables 进行 FTP

我的IPTables规则如下:

# Generated by iptables-save v1.4.4 on Mon Aug 23 18:34:35 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [9356:4246018]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 6685 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8089 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
-A INPUT -j DROP
COMMIT

这阻止了 FTP,我不确定为什么。FTP 确实在端口 21 上,因为它没有被更改。我正在使用 VSFTPD。当我清除所有 IPTables 规则时,我能够正常使用 FTP。

答案1

您是否加载了 ip_conntrack_ftp 内核模块?

ip_conntrack_ftp 模块“了解” ftp 协议并监视到端口 21 的传入连接,以确定该连接将使用哪个端口传输数据,然后打开该端口。

那么您不需要使用被动语态。

但是如果您想使用被动,那么这与 vsftpd 无关,这是一个客户端选项。

即客户端用户需要设置他的客户端以使用被动模式。

答案2

添加以下几行,然后检查您的系统日志以查看哪些流量被阻止:

-A INPUT -p tcp -m tcp --dport 20 -j LOG
-A INPUT -p tcp -m tcp --dport 21 -j LOG
-A OUTPUT -p tcp -m tcp --sport 20 -j LOG
-A OUTPUT -p tcp -m tcp --sport 21 -j LOG

相关内容