标题可能不是很有用(对不起)。这是对我希望实现的目标的更好解释。我是一个相对较新的使用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
非常感谢任何指导或经验教训。感谢。
答案 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