Answers:
以下是一些示例规则。将它们保存到/etc/iptables.rules
# Generated by iptables-save v1.3.6 on Wed Oct 24 17:07:29 2007
*filter
:INPUT ACCEPT [89458:132056082]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [263904:15667452]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j DROP
COMMIT
# Completed on Wed Oct 24 17:07:29 2007
在/ etc / network / interfaces的末尾添加此行
pre-up iptables-restore < /etc/iptables.rules
我们使用许多iptables规则,因此为了简化管理,我们执行以下操作:
我不知道这是否是执行此操作的最佳方法,但对我们来说效果很好。
的确,这取决于环境和平台,但根据平台,我看到了两种不错的方法:
RHEL / CentOS:将所有规则存储在一个/ etc / sysconfig / iptables文件中,该文件由iptables启动脚本读取。
Debian / Ubuntu:将所有规则存储在/etc/iptables.d/目录中的特定于服务的单独文件中。例如,/ etc / iptables.d / port_http,/ etc / iptables.d / port_dns,其中port_service映射到/ etc / services中的服务名称。
无论哪种情况,一个或多个文件都由诸如Chef或Puppet之类的配置工具管理,并由“主”启动脚本读取以在启动时运行的iptables。
除了iptables-save
(和iptables-restore
)之外,使用专用程序还可以更好地处理复杂的防火墙方案。例如,我们使用了shorewall
“使iptables变得简单”来配置iptables。
也可以使用更简单的工具,例如firestarter和kmyfirewall。
这取决于您使用的分发。某些发行版,尤其是基于Red Hat发行版的发行版,会自动保留iptables规则,但会在其自己的特殊目录中。我最熟悉RHEL,可以在/ etc / sysconfig / iptables中找到iptables规则。刚开始熟悉iptables规则语法可能会很棘手,但是一旦掌握了它,就很容易。
netfilter网站上有很多关于iptables的文档,包括一些介绍。如果您愿意阅读,可以在这里找到很多很好的信息:http : //www.netfilter.org/documentation/
我将firehol与我开发的用于管理配置文件的Web界面结合使用。
我真的很喜欢firehol,它提供了比直接使用iptables更简单的语法。