分类: LINUX
2009-02-11 20:44:55
FORWARD 链配置同INPUT OUTPUT 只有当作为路由器时才需要配置
eg
[root@happyboy root]# iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
[root@happyboy root]# iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
同时还需要修改下面文件值为1,来打开内核转发文件。
[root@happyboy root]# more /proc/sys/net/ipv4/ip_forward
0
以上修改为1在机器重启后会还原为0 需要手动修改配置文件
[root@happyboy root]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0
修改这行的值为1。
当然也可以限定端口和做日志记录
因为上述配置中本机没有合法的公网IP,所以还是无法实现内网用户通过iptables来连接到外网,这里需要通过iptables的NAT功能来实现,这时需要在网卡上再配置个亿 合法的公
网IP,具体通过iptables的nat表实现。
[root@happyboy root]# iptables -t nat -L -n //查看nat表。
通常NAT在prerouting和postrouting两个节点进行,output中不常用
两种不同的地址转换:源地址转换和目标地址转换。
源地址转换SNAT:目标不是自己的数据包,经过FORWARD之后将源地址翻译为其他主机,如图所示:转换点只能发生在POSTROUTING,
目标地址转换(DNAT):当一个数据包进入FORWARD之前在PREROUTING时转换其源地址,如下图所示。
SNAT的应用
服务器上的两个网卡分别连接到两个不同的网段,其中计算机10.0.0.241的网关设置为10.0.0.254
# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 192.168.0.254
这样服务器就配置成为了一个路由器,可以作为拨号网关使用(原理:当192.168.0.1回应数据包时服务器会自动将转换还原,将数据包发送给发出方)。通常连接互联网的IP是动态
变化的,可以用“伪装”形式来实现
# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
DNAT应用
DNAT通常用来保护内部服务器192.168.0.1,让所有的访问基于网关
# iptables -t nat -A PREROUTING -d 10.0.0.254 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1
即将所有对网关10.0.0.254的80端口的访问的目标地址翻译为192.168.0.1