SNAT:局域网共享一个公网IP接入lnternel,好处如下
1、保护内网用户安全,因为公网地址总有一些人恶意扫描,而内网地址在公网没有路由所以无法被扫描,能被扫描的只有防火墙这一台,这样就减少了被***的可能。
2、Ipv4地址匮乏,很多公司只有一个ipv4地址,但是却有几百个用户需要上网,这个时候就需要使用SNAT。
3、省钱,公网地址付费,使用SNAT只需要一个公网ip就可以满足几百人同时上网。
DNAT:向internel发布内网服务器
在内网中有服务器,如果想让公网用户访问有有两种方法。
环境拓扑图:
环境说明:
系统环境
主机名
地址配置
功能描述
WEB服务器
Centos6.664位
WEB
公网:eth01.1.1.1
提供web页面,供用户访问
iptables防火墙
iptables
内网:eth0172.16.4.1
外网:eth11.1.1.2
当有用户访问公网时,修改用户请求数据报的源地址为防火墙公网地址,实现SNAT功能。
内网用户
LAN
内网:172.16.4.100
网关:172.16.4.1
测试客户端,用来访问外网web服务器
前提条件:
1、配置好ip地址,内网用户需要配置网关指向防火墙,保证防火墙可以ping通内网和外网。
2、配置iptables开启路由转发功能,外网配置好web,保证内网可以访问。
开启路由转发功能,实现内外网互相访问
[root@iptables~]#vim/etc/sysctl.confnet.ipv4.ip_forward=1[root@iptables~]#sysctl-pnet.ipv4.ip_forward=1设置完成之后内网主机就可以ping通外网WEB服务器了
[root@LAN~]#ping1.1.1.1PING1.1.1.1(1.1.1.1)56(84)bytesofdata.64bytesfrom1.1.1.1:icmp_seq=1ttl=63time=1.77ms64bytesfrom1.1.1.1:icmp_seq=2ttl=63time=0.837ms公网web服务器配置测试页并启动服务
iptables-tnat-APOSTROUTING-s172.16.0.0/16-oeth1-jSNAT--to-source1.1.1.2内网访问公网web服务器
设置完成SNAT之后最好可以设置一下IPTABLES规则保证防火墙安全。
IPTABLES主机防火墙规则设置
iptables-AINPUT-s172.16.4.10-ptcp--dport22-jACCEPTiptables-AOUTPUT-mstate--stateESTABLISHED,RELATED-jACCEPTiptables-PINPUTDROPiptables-POUTPUTDROPIPTABLES网络型防火墙转发规则设置;如果是生产环境,可以不用配置,因为公网地址无法访问私网地址,这里配置主要是为了更接近生产环境
iptables-AFORWARD-d172.16.0.0/16-mstate--stateESTABLISHED,RELATED-jACCEPTiptables-AFORWARD-s172.16.0.0/16-jACCEPTiptables-PFORWARDDROP配置完成之后内网可以访问外网,但是外网已经无法访问内网了
动态地址上网说明:
在某些情况下,网关的外网ip地址可能并不固定,如ADSL宽带接入时。为了解决这种问题,IPTABLES提供了一个名为MASQUERADE的数据报控制类型,MASQUERAD同样用来修改源ip地址,只不过他能够自动获取外网ip地址。
iptables-tnat-APOSTROUTING-s172.16.0.0/16-oppp0-jMASQUERADEDNAT实现环境拓扑图:
内网:eth0:172.16.4.100
提供web页面供用户访问
当用户请求公网地址的80端口时将请求转发给,内网服务器,实现DNAT功能
外网用户
WAN
外网:eth0:1.1.1.1
测试客户端,用来访问内网服务器
配置过程:
iptables-tnat-APREROUTING-d1.1.1.2-ptcp--dport80-jDNAT--to-destination172.16.4.100