NetFilter/iptables防火墙设置(上)
2007-02-23 12:39:38 来源:WEB开发网核心提示: 你可能很熟悉网址转换(NAT),这就是一种多路ip地址方面的方法,NetFilter/iptables防火墙设置(上)(2),Iptables在一个nat表中有一组链,Prerouting和postrouting链包含了对那些到达和离开主机的数据包进行的操作规则,我们用依次用每个规则检验数
你可能很熟悉网址转换(NAT)。这就是一种多路ip地址方面的方法。Iptables在一个nat表中有一组链。Prerouting和postrouting链包含了对那些到达和离开主机的数据包进行的操作规则,相应地外加一个输出链来对主机自己发出的数据包的操作规则。
还有两个其它的表,mangle和raw,在这里我就不详细讨论了。
我们想要构造的东西
为了满足我自己的需要,我想在家里用Linux和iptables来替代Windows NAT路由器/防火墙。我在内网中有些主机,因此我需要一个NAT路由器来让它们连到网络上。有些主机上运行着服务器,我想对外公开;另外防火墙上运行的一些服务我也想对网络公开。我把这些罗列如下:
开始
我们将用[bash] shell脚本来定义该防火墙。首先我要定义一些会重复使用的东西:
# Private interface
IF_PRV=eth0
IP_PRV=192.168.1.1
NET_PRV=192.168.1.0/24
# Public interface 1
IF_PUB=eth1
IP_PUB=10.0.0.1
NET_PUB=10.0.0.0/24
# Others
ANYWHERE=0.0.0.0/0
这就使我们可以使用多种网络元素的名称,并且能够很方便修改这些东西。每个链都是使用瀑布类型。我们用依次用每个规则检验数据包,根据所有匹配的规则处理该数据包。每个链都有一个最后常用的规则成为“策略”。我们就从限制的策略开始:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
This sets the policy for the three chains in the filter table to drop all packets. Note that the table isn't specified. iptables defaults to the filter table when none is specified.
更多精彩
赞助商链接