如何使用CSF添加自定义的iptables规则
时间:2019-05-19 01:25:24 来源:igfitidea点击:
**CSF (ConfigServer Firewall)**是一个基于iptables的防火墙,提供了更容易实现 iptables规则的方法。
有时我们需要添加一些特定的规则(例如,iptables规则没有被CSF覆盖)来添加到CSF中。
如果我们直接从shell使用iptables命令添加这些规则,它们将在下一次重新启动CSF时被删除。
在Linux上安装CSF防火墙之后,本文将了解如何使用CSF添加定制的iptables规则。
CSF提供了在CSF规则设置之前或之后执行的 pre和 post脚本。
例如,我们想要打开端口 3306(默认MySQL)到特定的ip。
我们可以在pre脚本或post脚本中添加以下规则:
csfpre.sh在csf配置iptables之前运行外部命令
csfpost.sh在csf配置iptables之后运行外部命令
在CSF规则之前
创建文件/etc/csf/csfpre.sh并添加iptables规则,我们希望在CSF应用自己的规则之前执行这些规则。
iptables -I INPUT -s 1.2.3.4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
在CSF规则之后
创建文件/etc/csf/csfpost.sh并添加iptables规则,在CSF将其自己的规则添加到防火墙之后应用这些规则。
iptables -I INPUT -s 1.2.3.4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
重启CSF
要重新启动CSF,只需输入下面的命令并查看结果。
CSF会产生大量输出,因此我们可能无法在一个脚本中看到完整的输出,因此还需要添加 more命令来查看页面上的结果。
csf -r | more
下面是输出的一部分内容:
... ... Deleting chain 'LOCALOUTPUT' Deleting chain 'LOGDROPIN' Deleting chain 'LOGDROPOUT' Running /etc/csf/csfpre.sh DROP tcp opt -- in * out * 0.0.0.0/0 -> 0.0.0.0/0 tcp dpt:67 DROP udp opt -- in * out * 0.0.0.0/0 -> 0.0.0.0/0 udp dpt:67 ... ... ... ACCEPT tcp opt -- in * out !lo 0.0.0.0/0 -> 8.8.8.8 tcp dpt:53 LOCALOUTPUT all opt -- in * out !lo 0.0.0.0/0 -> 0.0.0.0/0 LOCALINPUT all opt -- in !lo out * 0.0.0.0/0 -> 0.0.0.0/0 LOCALOUTPUT all opt in * out !lo ::/0 -> ::/0 LOCALINPUT all opt in !lo out * ::/0 -> ::/0 Running /etc/csf/csfpost.sh