WEB开发网
开发学院网络安全防火墙 NetFilter/iptables防火墙设置(上) 阅读

NetFilter/iptables防火墙设置(上)

 2007-02-23 12:39:38 来源:WEB开发网   
核心提示: 如果我们不相信防火墙,那么我们就不应当把它当防火墙用,NetFilter/iptables防火墙设置(上)(4),防火墙应当能够访问其他网络,首先我们将处理虚拟网段(lo)接口,否则内网就收不到公网返回的数据包,用iptables很容易就可以进行地址转换,只要有允许所有输入输出的数据就行了

如果我们不相信防火墙,那么我们就不应当把它当防火墙用。防火墙应当能够访问其他网络。

首先我们将处理虚拟网段(lo)接口。只要有允许所有输入输出的数据就行了:

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

这些规则很简单,我们可以看到第一句接受过滤表中输入链的数据,到达lo接口的数据由该表处理。第二句接受过滤表中输出链的数据,从lo接口输出的数据由该表处理。

同样的,我们希望允许防火墙与内网的主机相通:

iptables -A INPUT -i $IF_PRV -s $NET_PRV -j ACCEPT
iptables -A OUTPUT -o $IF_PRV -d $NET_PRV -j ACCEPT

第一句使防火墙接受内网接口进入的源自内网的数据流。第二句使防火墙允许内网接口输出的目的地在内网的数据流。

我们不能对公网接口用同样的规则,因为那样会允许所有数据流连接到防火墙。另一方面,我们希望防火墙能够不受限制地访问公网:

iptables -A OUTPUT -o $IF_PUB -j ACCEPT
iptables -A INPUT -i $IF_PUB -m state --state ESTABLISHED,RELATED -j
ACCEPT

以上两句允许防火墙通过公网接口发送数据流到任何地方,但它只限接受已经存在的连接或者与之相关的输入数据流。因此该句允许防火墙与一些公网主机连接,还有允许那些连接中的输入数据流,但是不允许从公网连接到防火墙。

注意区分公网和内网的接口规则。我们假设内网上所有的机器都可信赖,并且公网上的所有主机都不可信。

内网路由

内网是非公开路由的IP网络。这就要求内网得有个带公网IP地址的路由器来做地址转换,否则内网就收不到公网返回的数据包。用iptables很容易就可以进行地址转换。需要转换的地址是会话的“源”,因此该模块叫做源NAT(SNAT):

上一页  1 2 3 4 5 6 7 8  下一页

Tags:NetFilter iptables 防火墙

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