Cisco路由器上的IP表的ACL规则规则

谈到路由器时,我有比Linux更多的思科背景。 在devise我的防火墙规则时,我已经习惯了in特定的接口上附加ACL。

我想我可以通过让FORWARD链跳转到每个接口的自定义链来模仿IP Tables的这种行为。

例如(默认策略将是DROP):

 iptables -N INET_IN iptables -A FORWARD -i eth0 -j INET_IN iptables -A INET_IN -m tcp -p tcp --dport 80 -d 12.12.12.12 -j ACCEPT 

我可能会最终使用状态检查,但以上是总体思路。

  1. 有没有什么理由可能会导致我麻烦或不工作?
  2. 如果这样做,这是不是这样做,我需要一些再教育?

最终,iptables链devise是个人喜好和function利用的结合。 例如,我和你的方式完全相反。 我喜欢iptables的“比喻”,憎恶思科ACL的比喻。 我喜欢考虑有状态的对话而不是数据包stream。 (如果我不得不在思科PIX或路由器之间进行防火墙function集与iptables之间的select,就pipe理的乐趣而言,我会在任何一天采用iptables …)

“我可能最终使用状态检查…”这个词有点混乱。 Netfilter是一个有状态的数据包filter。 你可以写一个围绕它的“有状态”的规则集,但是这样会产生反作用。 我发现编写基于连接build立的规则比试图编写必要的规则和“镜像”规则来无状态地pipe理stream量更令人愉快。

你想要一个数据包尽可能less的链,尽可能less的规则。 使用-m state --state RELATED,ESTABLISHED -j ACCEPT启动“filter”表链接-m state --state RELATED,ESTABLISHED -j ACCEPT将允许有状态检查引擎通过规则集为已build立的连接推送数据包,而无需遍历整个链。

你提出的与接口相关的链会很好,这是一个相当普遍的做法。 如果你有一套共同的规则需要适用于每一个接口,我会先把它们放在公共链中,然后从那里分支到其他特定于接口或特定于通讯types的链。