一、SNAT(源地址)转换
下面两图表示未作SNAT和做了SNAT的情况
SNAT的配置和前提条件:
打开IPV4 的转发功能
把net.IPV4.ip_forward 改成1,表示开启IPV4转发
使配置生效。
在某些情况下,网关的外网IP地址可能并不是固定的,例如使用ADSL宽带接入时。那么在这种网络环境下,应该如何设置SNAT策略呢?针对这种需求,iptables提供了一个名为MASQUERADE(伪装)的数据包控制类型,MASQUERADE 相当于SNAT的一个特例,同样用来修改(伪装)数据包源IP地址,只不过它能够自动获取外网接口的IP地址,而无需使用 ' —to-source ' 指定固定的IP地址。
SNAT实验:
实现内容:准备两台虚拟机,一台centos1 一台centos2,centos1两张网卡,一张桥接到本机,一张为vmnet12,centos 2的网卡也设置成vmnet12 ,假设vmnet12 设公网,桥接的网络是内网;假设内网是192.168.8.0/24网段,公网是192.168.40.0/24,我们要在真实机访问centos2的httpd服务
(注意清空filter表,因为SNAT和DNAT走forward,直接拒绝额)
第一步:配置centos1 的两张网卡:eth0和eht1,和centos2的网卡
cnetos1 双网卡设置
centos 2 的网卡配置
第二步:开启IPV4 数据包转发
修改vim /etc/sysctl.conf 文件 把net.IPV4.ip_forward 改成1
设置重启后配置任然生效
第三步:开启cnetos 1的防火墙,查看nat表,配置SNAT策略(注意清空filter表,因为转发默认是拦截的):
清空filter 表
查看 nat 表的配置
配置SNAT
第四步查看是否成功:
实体机访问httpd服务器成功
实体机ping httpd服务器
2.目的地址转换(DNAT)
当内部需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布。
DNAT实验:
实现内容:准备两台虚拟机,一台centos1 一台centos2,centos1两张网卡,一张桥接到本机,一张为vmnet12,centos 2的网卡也设置成vmnet12 ,假设vmnet12设内网,桥接的网络是公网;假设公网是192.168.8.0/24网段,内网是192.168.40.0/24,我们要在公网访问内网的服务器
(注意清空filter表,因为SNAT和DNAT走forward,直接拒绝额)
第一步:配置centos1 的两张网卡:eth0和eht1,和centos2的网卡
cnet0s1 双网卡设置
centos 2 的网卡配置
第二步:开启IPV4 数据包转发
修改vim /etc/sysctl.conf 文件 把net.IPV4.ip_forward 改成1
设置重启后配置任然生效
第三步:开启cnetos 1的防火墙,查看nat表,配置SNAT策略(注意清空filter表,因为转发默认是拦截的):
清空filter 表
查看 nat 表的配置
配置DNAT
·SNAT策略只能用在nat表的POSTROUTING链;
·SNAT将内部地址的私有IP转换为公网的公有IP;
·SNAT用于内部共享IP访问外部。
·DNAT策略只能用在nat表的PREROUTING链;
·DNAT主要用于内部服务对外发布;
一张图让你理解DNAT和SNAT
3.防火墙规则备份
4.防火墙还原
iptables-restore < /iptables.txt