iptables防火墙之SNAT、DNAT


一、SNAT原理与应用

1、SNAT原理

修改数据包的源地址

2、SNAT 应用环境

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

3、SNAT转换前提条件

  • 局域网各主机已正确设置IP地址、子网掩码、默认网关地址
  • Linux网关开启IP路由转发
##临时打开
	echo 1 > /proc/sys/net/ipv4/ip_forward
	sysctl -w net.ipv4.ip_forward=1	#两种方法
 
##永久打开
	vim /etc/sysctl.conf
	net.ipv4.ip_forward = 1 	#将此行写入配置文件
	sysctl -p 	#读取修改后的配置

4、SNAT转换

固定公网IP地址

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens37 -j SNAT --to 10.0.0.1
 
ptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens37 -j SNAT --to-source 10.0.0.1-10.0.0.10两种
 
192.168.100.0/24内网ip , -o 出站外网网卡ens37 ,10.0.0.1-10.0.0.10外网ip或地址池

非固定的公网IP地址(可以共享动态IP地址)

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

4、实例操作

1、给服务器安装iptables服务和httpd服务并启动
在这里插入图片描述
在这里插入图片描述

2、将网络连接设定为相应网段的自定义模式
在这里插入图片描述
在这里插入图片描述

3、新建一个网络适配器(定义ens37),并将其修改为指定网段(10.0.0.0)
在这里插入图片描述
4、修改网卡信息并重启
在这里插入图片描述
5、永久开启IP路由转发
在这里插入图片描述
在这里插入图片描述

6、SNAT转换(固定公网IP地址)
在这里插入图片描述

7、修改第二台虚拟机网络配置
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

8、设置Windows的网络配置
在这里插入图片描述

在这里插入图片描述

9、验证
在这里插入图片描述


二、DNAT原理与应用

1、DNAT原理

修改数据包的目标地址

2、DNAT应用环境

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

3、转换前提条件

###打开DNAT
 
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

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

4、案例

1、配置win10的网卡配置
在这里插入图片描述
在这里插入图片描述

2、修改第二台虚拟机的网卡并重启
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、设置DNAT转换
在这里插入图片描述

4、验证
在这里插入图片描述

###临时修改目标端口
#发布局域网内部的OpenSSH服务器,外网主机需使用250端口进行连接
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 250 -j DNAT --to 192.168.80.11:22
 
#在外网环境中使用SSH测试
ssh -p 250 root@12.0.0.1
yum -y install net-tools 	#若没有 ifconfig 命令可提前使用 yum 进行安装
ifconfig 

注:使用DNAT时,同时还有配合SNAT使用,才能实现响应数据包的正确返回


三、防火墙规则备份与还原

##导出(备份)所有表的规则
	iptables-save > /opt/iptables.txt
	
##导入(还原)所有表的规则
	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、付费专栏及课程。

余额充值