我有很多的规则,我的iptables设置(路由,SSH密码等)我也拿起了IP列表禁止从这里http://blacklist.linuxadmin.org现在它变得非常复杂。
我的/etc/sysconfig/iptables真的很长。 有没有办法通过包含来自外部文件的规则来pipe理规则?
例如:
#include "pre_routing_rules" #include "ssh_bans"
这将包括在文件“pre_routing_rules”和“ssh_bans”中添加的规则。这样我就可以轻松地pipe理我的规则,而无需在cat /etc/sysconfig/iptables 。
尝试iptables的ipsets 。 ipset是分开configuration的,如果你有足够的ip地址进行pipe理,这些ipset也会更快。
iptables规则可以像这样引用ipset:
iptables -A FORWARD -m set –set阻止列表src,dst -j DROP
一个简单的解决scheme是为每个部分使用多个bash脚本,如:
iptables-routing.sh iptables-ssh-bans.sh iptables-blacklist.sh
并从主脚本运行这些文件。
iptables不直接读取文件,这是由一个名为iptables-restore的程序完成的。 这通常是从你的一个init脚本调用的。
你可以添加额外的input文件到你的iptables-restore行。 你必须find你的系统上这行是在哪里,但是在我的Debain框中,它在/etc/init.d/nat
该行目前读取像这样:
/sbin/iptables-restore < /etc/network/iptables
也许它可以改变成这样的东西:
cat /etc/network/iptables \ /etc/network/pre_routing_tables \ /etc/network/ssh_bans | /sbin/iptables-restore
我倾向于使用许多iptables防火墙脚本/工具之一,如Firestarter或Shorewall,它们带有许多文件,按目的分开,添加有趣的规则以防止某些types的伪造数据包,并且它们通常工作好。
我不知道你正在运行哪个发行版,因为我的文件没有你所指的文件 – 但是通常包含iptables规则的文件只是shell脚本 – 所以你应该能够通过一个行来做你想要的如 :
。 的/ etc / SYSCONFIG / pre_routing_rules
或者像在你参考的iptables文件的顶部。