丢弃ftp后iptables经历

我不能拒绝访问FTP的IP地址。

首先,我需要拒绝一切,所以我喜欢这个:

#iptables -F #iptables -P INPUT DROP #iptables -P OUTPUT DROP #iptables -P FORWARD DROP 

然后我打开FTP:

 #modprobe ip_conntrack_ftp #iptables -A INPUT -p TCP -i eth0 --dport 21 -m state --state NEW -j ACCEPT #iptables -A INPUT -p ALL -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #iptables -A OUTPUT -p ALL -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT 

以上的作品,但我都尝试了这一个:

 #modprobe ip_conntrack #modprobe ip_conntrack_ftp #iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 192.168.5.110 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -A OUTPUT -p tcp -s 192.168.5.110 --sport 21 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT #iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 192.168.5.110 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT #iptables -A OUTPUT -p tcp -s 192.168.5.110 --sport 1024:65535 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT #iptables -A OUTPUT -p tcp -s 192.168.5.110 --sport 20 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT #iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 20 -m state --state ESTABLISHED -j ACCEPT 

现在我需要拒绝一个IP,以便一台计算机无法访问FTP,比如说192.168.5.9:

 #iptables -A INPUT -s 192.168.5.9 -d 192.168.5.110 -p tcp -m tcp --dport 21 -j DROP 

我也试过这个

 #iptables -A INPUT -p tcp -s 192.168.5.9 --dport 21 -j DROP 

它在iptables -L中说,它被丢弃,但是当我使用fillezilla它通过。 我已经下了港口20,21,22。

那么为什么当规则应该放弃的时候连接是被允许的呢?

这里要实现的重要一点是单个表中的防火墙是按顺序处理的。 只要find一个匹配,处理就会停止,并采取行动。

所以你可能需要做的就是把你的FTP从这个IP地址放在通用的规则,允许FTP。 -A 规则附加到链中。 你可能想要的是-I将规则插入链中。 默认情况下,当您使用-I ,规则会插入到链的顶部,但您也可以传递一个数字,使其位于指定规则的数字之前。