在防火墙配置策略当中有SNAT以及DNAT之分,两者各有区别,今天先来说明一下SNAT。
多应用在公司只有一个外网IP,那么整个公司的内网,该怎么上网呢?
要想都能够访问外网,就可以通过防火墙规则将它们出去时的源地址修改成唯一的公网IP,然后与外网对接,数据返回之后,它再交给内网(局域网)PC机。
现在可以通过简单的实验来做个验证。
主机A:模拟内网主机 eth0 192.168.66.10
主机B:模拟网关服务器 eth0 192.168.66.20
eth1 200.200.200.10
eth1 200.200.200.10
主机C:模拟外网Web站点 eth0 200.200.200.20
条件
:
1, 内网各主机将设置正确的IP地址/子网掩码,并设置网关服务器的内网IP为默认网关地址。(可由DHCP服务器分发)
route add default gw 192.168.66.20
2, 网关服务器支持IP路由转发,并编写SNAT转换规则。
vim /etc/sysctl.conf 其中的net.ipv4.ip_forward = 1 #开启转发 sysctl -p #加载一下
#iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -o eth1 -j SNAT --to-source 200.200.200.10
解释这条规则如下:
#在防火墙的nat表当中的POSTROUTING链上添加(-A)一条规则,规则是从(-s)66网段过来的请求,出去(-o OPUTPUT)的时候都走eth1(外网网卡),做的动作(-j)是转换它的源地址(SNAT)为200.200.200.10
查看一下这条规则
3, 外网服务器,安装apache,写一个测试网页!
yum -y install httpd echo “11111” > /var/www/html/index.html service httpd start
测试
:
直接在内网主机输入curl 200.200.200.20,如果访问到,则说明成功。
插曲
:
上边是针对企业中常应用的,但在家庭当中,很少有固定地址,一般都是动态地址,也就是说,出去的跳板是变动的,这样刚才所设置的规则就不行了,不过现在可以通过一个叫做MASQUERADE—-地址伪装来解决。
按刚才的环境不变,清空刚才的的防火墙规则。重新添加。
iptables -F -t nat iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -o eth1 -j MASQUERADE
ok,现在,可以模拟改变外网IP
ifconfig eth1 200.200.200.200 netmask 255.255.255.0
测试
:
直接在内网主机输入curl 200.200.200.20,如果访问到,则说明成功。

扫码订阅本站,第一时间获得更新
微信扫描二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~