iptables - 多端口规则链退出并拆分为多个单端口链

时间:2014-05-08 16:18:41

标签: linux iptables

标题可能不是很有用(对不起)。这是对我希望实现的目标的更好解释。我是一个相对较新的使用iptables但对这些概念有一个很好的理解。然而,我没有在网上找到一个很好的例子来证明我的要求。

为了进行一些强力入侵缓解,我有一个包含多个端口规则的链(此规则最初被this blog劫持):

-A INPUT -p tcp -m multiport -dports 21,22,110,143 -m state --state new -j INTR_CHECK
-A INTR_CHECK -m recent --set --name INTRS --rsource
-A INTR_CHECK -m recent --update --seconds 600 --hitcount 15 --name INTRS --rsource -j INTRUSION
-A INTR_CHECK -m recent --update --seconds 60 --hitcount 5 --name INTRS --rsource -j INTRUSION
-A INTR_CHECK -j [[break out to new chains vs ACCEPT]?]

我希望看到的是{21,22,110,143}中每个端口的一组链,因为我有(冗长的)已建立的链,允许特定主机/网络使用FTP和SSH。 如果我在每个dport的INTR_CHECK链中放置单行并将它们路由到现有链,它是否可以通过?例如,如果我将其附加到上述规则:

-A INTR_CHECK (-m state --state NEW) -p tcp -m tcp -dport  22 -j SSHD_IN
-A INTR_CHECK (-m state --state NEW) -p tcp -m tcp -dport  21 -j FTP_IN
-A INTR_CHECK (-m state --state NEW) -p tcp -m tcp -dport 110 -j POP3_IN
-A INTR_CHECK (-m state --state NEW) -p tcp -m tcp -dport 143 -j IMAP_IN

我也想知道是否需要仅将状态指示为NEW数据包,因为RELATED和ESTABLISHED在常用规则中被一揽子接受

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

非常感谢任何指导或经验教训。感谢。

1 个答案:

答案 0 :(得分:0)

我能够使用我的问题中假设解决方案中的想法来解决这个问题。分享为信息。

-A INTR_CHECK -p tcp -m tcp --dport 22 -j SSHD_IN
-A INTR_CHECK -p tcp --syn --dport 25 -j SMTP_IN

#further down
-A SSHD_IN -s 1.2.3.0/24 -j ACCEPT
#other SSHD rules

#further still
-A SMTP_IN -p tcp --syn -m limit --limit 1/s --limit-burst 4 -j ACCEPT
-A SMTP_IN -p tcp --syn -j DROP