第二章 iptables防火墙SNAT与DNAT
文章目录
- 第二章 iptables防火墙SNAT与DNAT
- 1 SNAT
- 1.1 SNAT原理与应用
- 1.2 SNAT工作原理
- 1.3 SNAT转换前提条件
- 2 SNAT示例
- 2.1 网关[服务器配置](https://so.csdn.net/so/search?q=服务器配置&spm=1001.2101.3001.7020)
- 2.1.1 网关服务器配置网卡
- 2.1.2 开启SNAT命令
- 2.2 内网服务器端配置
- 2.3 外网服务器端配置
- 2.4 网卡服务器端添加规则
- 2.5 SNAT 测试
- 3 DNAT
- 3.1 网卡服务器端添加规则
- 3.2 DNAT 测试
- MASQUERADE的含义
1 SNAT
1.1 SNAT原理与应用
NAT 应用环境:局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由) SNAT原理:源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映谢
1.2 SNAT工作原理
数据包从内网发送到公网时,SNAT会把数据包的源IP由私网IP转换成公网IP
当响应的数据包从公网发送到内网时,会把数据包的目的IP由公网IP转换为私网IP
1.3 SNAT转换前提条件
1.局域网各主机已正确设置IP地址、子网掩码、默认网关地址
2.Linux网关开启IP路由转发
linxu系统本身是没有转发功能只有路由发送数据
2 SNAT示例
2.1 网关服务器配置
2.1.1 网关服务器配置网卡
*添加一个网卡并设置为仅主机模式*
*新加网卡为ens36*
*配置ens36网卡*
*重启网卡服务并进行联通测试*
2.1.2 开启SNAT命令
vim /etc/ sysctl. conf
net. ipv4.ip_ forward=1 #将此行写入配置文件sysctl -p #读取修改后的配置
2.2 内网服务器端配置
*网卡配置*
*重启网卡服务并进行联通测试*
启动httpd服务
*编写httpd html*
2.3 外网服务器端配置
*网络连接改为仅主机*
*临时修改ip地址*
2.4 网卡服务器端添加规则
*先清除所有规则*
*在nat表中添加SNAT规则*
2.5 SNAT 测试
*内网ping外网端*
*查看访问日志*
3 DNAT
DNAT原理与应用: DNAT应用环境:在Internet中发布位于局域网内的服务器 DNAT原理:目的地址转换,根据指定条件修改数据包的目的IP地址,保证了内网服务器的安全,通常被叫做目的映谢。 DNAT转换前提条件: 1.局域网的服务器能够访问Internet 2.网关的外网地址有正确的DNS解析记录 3. Linux网关开启IP路由转发
继上面SNAT的操作后…
3.1 网卡服务器端添加规则
*先清除所有规则*
*在nat表中添加DNAT规则*
3.2 DNAT 测试
*查看访问日志*
MASQUERADE的含义
MASQUERADE,地址伪装,算是snat中的一种特例,可以实现自动化的snat。
在iptables中有着和SNAT相近的效果,但也有一些区别。
SNAT的使用方法,即可以NAT成一个地址,也可以NAT成多个地址,但是,对于SNAT,不管是几个地址,必须明确的指定要SNAT的ip,举例如下:
1、如下命令表示把所有20.5.0.0网段的数据包snat成192.168.111.3的ip然后发出去:
iptables -t nat -A POSTROUTING -s 20.5.0.0/255.255.255.0 -o eth0 -j snat --to-source 192.168.111.3
2、如下命令表示把所有20.5.0.0网段的数据包snat成192.168.111.3/192.168.111.4/192.168.111.5等几个ip然后发出去
iptables -t nat -A POSTROUTING -s 20.5.0.0/255.255.255.0 -o eth0 -j snat --to-source 192.168.111.3-192.168.111.5
但是,假如当前系统用的是动态拨号方式,这个时候如果按照现在的方式来配置iptables就会出现问题了,因为每次拨号后,服务器地址都会变化,而iptables规则内的ip是不会随着自动变化的,每次地址变化后都必须手工修改一次iptables,把规则里边的固定ip改成新的ip,这样是非常麻烦的。MASQUERADE主要解决的就是这种问题,因为它可以自动获取当前ip地址来做NAT。
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE
固定ip改成新的ip,这样是非常麻烦的。MASQUERADE主要解决的就是这种问题,因为它可以自动获取当前ip地址来做NAT。
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE
这样的话不管现在eth0的出口获得了怎样的动态ip,MASQUERADE会自动读取eth0现在的ip地址然后做snat出去,实现了动态snat地址转换。