首页 > 代码库 > iptables 防火墙之二
iptables 防火墙之二
Iptables防火墙(SNAT/DNAT)
SNAT策略及应用
SNAT源地址转换是linux命令中的一种数据包控制类型,作用是根据指定条件修改数据包的源IP地址。
共享固定IP地址上网
Linux网关服务器,eth0和eth1其中eth0为外网地址X.X.X.X(此处为外网地址) eth1为内网地址192.168.2.1
所有局域网PC机的默认网关为192.168.2.1,且已经设置了正确的DNS服务器。
要求192.168.2.0/24网段的PC机能够通过共享方式正常访问Internet。
打开网关路由转发
修改/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
设置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 防火墙之二