iptables之SNAT与DNAT

目录

一. SNAT策略及应用

1. SNAT

1.1 SNAT应用环境

1.2 SNAT策略的原理

1.3 SNAT转换前提条件

2. 开启SNAT命令

2.1 临时开启

2.2 永久开启

2.3 SNAT转换1

2.4 SNAT转换2

3. SNAT案例

二. DNAT原理与应用

1. DNAT

1.1. DNAT 应用环境

1.2 DNAT原理

1.3 DNAT转换前提条件

2. 开启DNAT命令

3. DNAT转换

4. 临时修改目标端口

5. DNAT案例

5.1 修改win10网络配置

5.2 修改主机2的网卡并重启

5.3  修改主机2的网络配置

5.4 设置DNAT转换​编辑

 5.5 验证结果

三. 防火墙规则的备份和还原

1. 导出(备份)所有表的规则

2. 导入(还原)规则


一. SNAT策略及应用

1. SNAT

1.1 SNAT应用环境

局域网主机共享单个公网IP地址接入Internet(私有IP不能在Internet中正常路由)

1.2 SNAT策略的原理

源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映射

1.3 SNAT转换前提条件

局域网各主机已正确设置IP地址、子网掩码、默认路由发送数据

Linux网关开启IP路由转发

2. 开启SNAT命令

Linux系统本身是没有转发功能,只有路由发送数据

2.1 临时开启

echo 1 >/proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip forward=1

2.2 永久开启

vim /etc/ sysctl. conf
net. ipv4.ip_ forward = 1				#将此行写入配置文件
 
sysctl -P				#读取修改后的配置

2.3 SNAT转换1

#配置SNAT策略,实现snat功能,将所有192.168.119.0这个网段的ip的源ip改为10.0.0.1
iptables -t nat -A POSTROUTING -s 192.168.119.0/24 -o ens33 -j SNAT --to 10.0.0.1
                                    可换成单独IP   出站 外网网卡            外网IP
或
iptables -t nat -A POSTROUTING -s 192.168.119.0/24 -o ens33 -j SNAT --to-source 10.0.0.1-10.0.0.10
                                     内网IP   出站 外网网卡         

2.4 SNAT转换2

iptables -t nat -A POSTROUTING -s 192.168.119.0/24 -o ens33 -j MASQUERADE

3. SNAT案例

实验需求:

配置SNAT(源地址转换)能够实现外网客户端机器访问内网区域web服务

服务环境说明:

内网客户端:用于访问外网服务器。IP:192.168.100.120

外网服务器:提供httpd服务 IP:10.0.0.12 开启httpd、服务关闭防火墙和selinux

网关服务器:用一台虚拟机开启核心转发功能来模拟,用于实现SNAT功能

VMware的虚拟网络编辑器中Vmnet1模式网段:192.168.100.0,Vmnet3模式网段:12.0.0.0

1. 给两台服务器安装httpd以及iptables服务并启动

 2. 打开虚拟机,点击虚拟机设置,添加一张网卡ens37,网络适配器改成自定义(VMnet1),网络适配器2改成(VMnet3)

 3. 打开虚拟网络编辑器,查看VMnet1和VMnet3的网段。设置ens33的网段为192.168.100.0,ens37的网段为10.0.0.0.

4. 修改两张网卡信息并重启

5. 永久开启IP路由转发,开启SNAT

6. SNAT转换,固定的公网IP地址

7. 修改主机2的网卡并重启

8. 修改主机2网络适配器选择VMnet3,选择10.0.0.0网段

10. 验证结果

二. DNAT原理与应用

1. DNAT

1.1. DNAT 应用环境

在Internet中发布位于局域网内的服务器

1.2 DNAT原理

修改数据包的目的地址

1.3 DNAT转换前提条件

局域网的服务器能够访问Internet

网关的外网地址有正确的DNS解析记录

Linux网关开启IP路由转发

2. 开启DNAT命令

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

3. DNAT转换

把从ens33进来的要访问web服务的数据包目的地址转换为 192.168.119.10
 
iptables -t nat -A PREROUTING -i ens37 -d 10.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.119.130
或者
iptables -t nat -A PREROUTING -i ens37 -d 10.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.119.130

iptables -t nat -A PREROUTING -i ens37 -p tcp --dport 80 -j DNAT --to 192.168.119.10-192.168.119.20

4. 临时修改目标端口

#发布局域网内部的OpenSSH服务器,外网主机需使用250端口进行连接
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 250 -j DNAT --to 192.168.119.50:22
 
#在外网环境中使用SSH测试
ssh -p 250 root@12.0.0.1
yum -y install net-tools 若没有 ifconfig 命令可提前使用 yum 进行安装
ifconfig ens33
 
注意:使用DNAT时,同时还有配合SNAT使用,才能实现响应数据包的正确返回

5. DNAT案例

5.1 修改win10网络配置

5.2 修改主机2的网卡并重启

5.3  修改主机2的网络配置

5.4 设置DNAT转换

 5.5 验证结果

三. 防火墙规则的备份和还原

1. 导出(备份)所有表的规则

#导出(备份)所有表的规则
[root@ly ~]# iptables-save > /opt/iptables.txt
[root@ly ~]# cat /opt/iptables.txt 

2. 导入(还原)规则

iptables-restore < /opt/iptables.txt备份好的文件进行还原
 
将iptables规则文件保存在 /etc/sysconfig/iptables 中,iptables服务启动时会自动还原规则
 
iptables-save > /etc/sysconfig/iptables
 
systemctl stop iptables停止iptables服务会清空掉所有表的规则
 
systemctl start iptables启动iptables服务会自动还原/etc/sysconfig/iptables 中的规则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值