首页 > 代码库 > iptables 防火墙之二

iptables 防火墙之二

Iptables防火墙(SNAT/DNAT

SNAT策略及应用

SNAT源地址转换是linux命令中的一种数据包控制类型,作用是根据指定条件修改数据包的源IP地址。

共享固定IP地址上网

Linux网关服务器,eth0eth1其中eth0为外网地址X.X.X.X(此处为外网地址) eth1为内网地址192.168.2.1

所有局域网PC机的默认网关为192.168.2.1,且已经设置了正确的DNS服务器。

要求192.168.2.0/24网段的PC机能够通过共享方式正常访问Internet

  1. 打开网关路由转发

修改/etc/sysct1.conf,把net.ipv4.ip_forward = 0 改为1如下

[root@bogon ~]# vim/etc/sysctl.conf

net.ipv4.ip_forward = 1

[root@bogon ~]# sysctl -p   #读取修改后的配置

临时开启路由转发的方法:[root@localhost ~]# echo 1 >/proc/sys/net/ipv4/ip_forward或者[root@localhost ~]# sysctl -wnet.ipv4.ip_forward=1

net.ipv4.ip_forward = 1

  1. 设置SNAT策略

[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -oeth0 -j SNAT --to-source X.X.X.X

完成,测试就好了。

 当使用共享动态IP地址上网的时候网关的IP地址可能并不是固定的,例如使用ADSL拨号宽带接入时,在这种情况下iptables提供了MASQUERADE(伪装)的数据包控制类型,是SNAT的一个特例,设置时只需要去掉SNAT策略中的“--to-source IP”改用“-j MASQUERADE”

[root@localhost ~]# iptables -t nat -APOSTROUTING -s 192.168.2.0/24 -o ppp0 -j MASQUERADE

DNAT策略及应用

DNAT,目标地址转换,其作用是根据指定条件修改数据包的目标IP地址、目标端口。

SNAT用来修改源IP地址,而DNAT用来修改目标IP地址,目标端口,SNAT只能用在nat表的POSTROUTING链,而DNAT只能用在nat表的PREROUTING链和OUTPUT链(或被其调用的链)中。

发布企业内部的web服务器

1.公司注册域名www.XXXX.com.IP地址为X.X.X.X(外网IP

2.公司网站服务器位于局域网内,IP地址为192.168.2.5

3.要求在internet中通过域名访问公司网站

操作如下

a) 打开网关路由(不在复述SNAT有提到)

b) 设置DNAT

[root@localhost ~]# iptables -t nat -A PREROUTING -i eth0 -d X.X.X.X -ptcp --dport 80 -j DNAT --to-destination 192.168.2.5

测试。


本文出自 “瘾” 博客,谢绝转载!

iptables 防火墙之二