我使用 iptables 很多年了,因为它是一种简单直接的解决方案,没有任何魔法。但现在我正在为自己构建一个路由器,我发现 Shorewall 提供了许多有用的功能。
是否可以同时使用 iptables 和 Shorewall?我知道 Shorewall 只是 iptables 的一个前端。但我不知道是否会引起冲突。
另外,我需要阻止大量地址,因此 ipset 是完美的解决方案。同时使用这三个防火墙安全吗?
答案1
如你所说 :
Shorewall 只是 iptables 的一个前端
那么,您认为同时使用这两种方法的充分理由是什么?
此外,ipsets
可以与纯一起使用iptables
,而且Shorewall
还支持ipsets
:http://www.shorewall.net/ipsets.html
所以,我想说:使用iptables
或者 Shorewall
(作为前端)。
两者同时使用是没有意义的。
答案2
Shorewall 和 ipsets 是完全互补的,shorewall 就像上面所说的那样,是一个可以正确管理 iptables 的前端工具。Ipsets 是一个可以更有效地将大量 ips 列入白名单/黑名单的工具,因此它们可以协同工作,而且据我所知,大多数系统管理员都推荐它。
需要考虑的主要问题是,为了让 Shorewall 与 IPSET 一起工作,你的内核需要支持 ipset match(IPSET_MATCH)。要检查您的服务器是否支持它,请运行:
$ shorewall show -f capabilities | grep IPSET_MATCH
你应该看到:
IPSET_MATCH=Yes
为了能够使用带有 ipset 的 shorewall。此支持完全取决于您的内核和操作系统。
我的经验是,为了使其正常工作,我需要将 iptables 和 ipset 包更新到最新版本:
iptables v1.6.0
ipset v6.27, protocol version: 6
因为在该版本中,软件包添加了对 ipset match 的支持。您可以阅读变更日志ipset。但您的内核可能已经支持它。由于此软件包版本不在 Jessie 存储库中(至少目前如此),我需要从测试存储库安装它们,这不是最值得推荐的方法,但它效果很好。