使用SNATDNAT策略实现网关应用

实验环境:

某公司使用双网卡linux主机作为网关服务器,其中网卡eth1连接局域网,网卡eth0通过光纤接入internet,由于只注册了一个公网IP地址,要求合理配置网关策略,使用局域网内的PC可以通过共享的方式访问internet,并在internet中发布位于内网的网站服务器,作为公司电子商务的平台,如图所示。

拓扑:

clip_image002

需求描述:

? 使用局域网段192.168.100.0/24的PC以共享接入的方式访问internet

? 发布公司的网站服务器,当从internet中访问http://192.168.10.106时,实际上由主机192.168.100.152提供网页内容

? 允许从internet远程登录网站服务器,访问地址为192.168.1.106,端口为2222

实验步骤

1. 准备实验环境

1)正确配置各主机的网络参数(IP地址,子网掩码)

参考拓扑

2)网段192.168.100.0/24中的主机将默认网关设置192.168.100.151

clip_image003

3)在网站服务器192.168.100.152上添加测试帐号wzadm,去掉默认网关设置

clip_image005

clip_image007

2. 配置linux网关服务器

1)打开路由转发功能

clip_image009

2)添加SNAT策略,使局域网段192.168.100.0/24能够共享上网

clip_image011

3)添加DNAT策略,使用公网地址192.168.1.106,端口80,发布内网主机192.168.100.152中的web服务

clip_image013

4)添加DNAT策略,使用公网地址192.168.1.106,端口2222,发布内网主机192.168.100.152中的OpenSSH服务

clip_image015

clip_image017

3. 验证测试结果

1)在网站服务器192.168.100.152中,能够访问http://192.168.1.105,并且在查看主机192.168.1.105的web访问日志是,所记录的客户端IP地址是192.168.1.106

clip_image019

clip_image021

2)在internet测试机192.168.1.105中,能够访问http://192.168.1.106,浏览器中显示的是网站服务器192.168.100.152中的网页

clip_image023

3)在internet测试机192.168.1.105中,能够通过192.168.1.106的2222端口进行SSH远程登录,以网站服务器192.168.100.152中的wzadm用户进行验证,登录后查看当前的IP地址应该是192.168.100.152

clip_image025

总结:

1. SNAT策略仅在nat表的POSTROUTING链使用,可以修改数据包的源地址,如实现局域网共享上网

2. 当网关使用非固定的公网IP地址时,SNAT可以替换为地址伪装策略MASQUERADE

3. DNAT策略仅在nat表的PREROUTING、OUTPUT链使用,可以修改数据包的目的地址和目标端口,如在internet中发布企业内部网络中的应用服务器

4. Linux防火墙脚本通常由变量定义,模块加载,/proc调整,具体的规则设置等部分构成