WEB开发网
开发学院网络安全防火墙 使用IPtables搭建防火墙的规则 阅读

使用IPtables搭建防火墙的规则

 2006-04-03 12:38:01 来源:WEB开发网   
核心提示: # iptables -t nat -P POSTROUTING DROP下面的例子是为了拨号连接设置的,它可以动态地分配IP地址:# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE规则的保存使用脚本更改规则的问题是:改动每个规则都

# iptables -t nat -P POSTROUTING DROP

下面的例子是为了拨号连接设置的,它可以动态地分配IP地址:

# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

规则的保存

使用脚本更改规则的问题是:改动每个规则都要调用命令iptables,而每一次调用iptables,它首先要把netfilter内核空间中的整个规则集都提取出来,然后再插入或附加,或做其他的改动,最后,再把新的规则集从它的内存空间插入到内核空间中,这显然会花费很多时间。

为了解决这个问题,可以使用命令iptables-save和restore 。iptables-save用来把规则集保存到一个特殊格式的文本文件里,而iptables-restore则用来把这个文件重新装入到内核空间中。

这两个命令最好的地方在于一次调用就可以装载和保存规则集,而不像脚本中每个规则都要调用一次iptables。

iptables-save运行一次就可以把整个规则集从内核里提取出来,并保存到文件里,而iptables-restore每次装入一个规则表。换句话说,对于一个很大的规则集,如果用脚本来设置,那这些规则就会反复地被卸载、安装很多次,而我们现在可以把整个规则集一次就保存下来,安装时则是一次一个表,这可是节省了大量的时间。所以,一旦测试结果令你满意,你就可以将它们保存为脚本:

# iptables-save > iptables-script

现在,信息包过滤表中的所有规则都被保存在文件iptables-script中。无论何时再次引导系统,都可以使用 iptables-restore 命令将规则集从该脚本文件恢复到信息包过滤表,恢复指令如下所示:

# iptables-restore iptables-script

如果您愿意在每次引导系统时自动恢复该规则集,则可以将上面指定的这条命令放到任何一个初始化shell脚本中。

事实上,大部分发行版都为用户提供了一个可以自动加载的文件,让用户在其中编辑规则集,并且大部分发行版都会有一个已经预先配置好的防火墙。不同的发行版的配置文件位置不尽相同,我们可以使用命令locate iptables来找到配置文件。对于Red Hat或者 Fedora Core而言,这个配置文件位于/etc/sysconfig/iptables。该文件初始的内容如下:

1 # Firewall configuration

2 *filter

3 :INPUT <target> [0:0]

4 :FORWARD <target> [0:0]

5 :OUTPUT <target> [0:0]

6

7 # your rules here

8

9 COMMIT

建议将其基本框架改成以下内容:

1 *filter

2 :INPUT DROP [0:0]

3 :FORWARD DROP [0:0]

4 :OUTPUT ACCEPT [0:0]

5

6 # allow local loopback connections

7 -A INPUT -i lo -j ACCEPT

8

9 # drop INVALID connections

10 -A INPUT  -m state --state INVALID -j DROP

11 -A OUTPUT -m state --state INVALID -j DROP

12 -A FORWARD -m state --state INVALID -j DROP

13

14 # allow all established and related

15 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

16

17 # add anymore rules here

18

19 COMMIT

上一页  1 2 3 4 5 

Tags:使用 IPtables 搭建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接