SNAT(源地址转换)是Linux防火墙的一种地址转换操作,也是iptables命令中的一种数据包类型,其作用是根据指定条件修改数据包的源IP地址
DNAT(目标地址转换)是Linux防火墙的另一种地址转换操作,同意是iptables命令中的一种数据包类型,其作用是根据指定条件修改数据包的目标IP地址和目标端口
实验环境:一台Linux6.5作为外网web服务器,地址为12.0.0.12
一台Linux6.5作为防火墙和内外网的网关,两个地址分别为192.168.100.1 ; 12.0.0.1
一台widows作为内网客户机,地址为192.168.100.4
1 先对外网的web服务器进行设置,这里需要清空里面的防火墙条目规则,并且要关闭setenforce 0,开启它的网站服务
2 这里在本地自己访问了一下没有发现什么问题
3 接着我们要对作为防火墙的这台服务器进行配置,这里需要添加双网卡,其中一块作为内网的网关,另一块作为外网的网关
4 接着关闭这台服务器的setenforce,同样清空它的防火墙规则条目,同时需要开启它的路由转换功能,因为它作为内外网的网关,如果不开启那两台机器无法
相互访问
5 这里用内网的win7访问外网的网站服务器,可以看见访问成功
6 内网可以访问外网之后我们开始做SNAT地址转换,只需只需上图红框中的命令便可以完成。
该条命令中 -t nat 是指定nat表,需要应用该表中的规则
-A POSTROUTING 是指定该表的规则链
-s 是指定所要转换的源地址
-o 是表示出站网卡,这里我的出站网卡为eth1
-j SNAT 表示执行SNAT的地址转换操作
--to-source 表示转换后的地址
7 这里我再次访问web服务器,可以看到在日志文件中显示访问者的地址为12.0.0.1
8接着再进行DNAT地址转换,执行上图红框中的命令,这条命令与SNAT地址转换的命令大同小异
这里 -A PREROUTING 是需要指定PREROUTING这条规则
-i 表示入站网卡
-p 指定协议
-dport 指定接口
--to-destination 表示转换后的地址
9接着我们开启内网客户机的网站服务,然后用外网的web服务器用转换后的地址进行访问
10 最后用外网的web服务器访问12.0.0.1这个地址,可以看见访问到的是内网的网站。
原文地址:http://blog.51cto.com/13706760/2155018