iptables之SNAT与DNAT

目录

一、SNAT策略及应用

1、SNAT策略概述

1.2、开启SNAT命令

1.3、SNAT案例

配置网关服务器的相关配置

配置外网web服务器相关配置

配置内网服务器相关配置 

 配置网关服务器的iptables规则

 配置虚拟机win10设置

 二、DNAT原理与应用

2.1、DNAT 应用环境

2.2、DNAT转换

        配置内网web服务器

        配置网关服务器

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

         四、tcpdump—Linux抓包

五、总结


一、SNAT策略及应用

1、SNAT策略概述

SNAT应用环境

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

SNAT策略的原理

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

SNAT转换前提条件

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

Linux网关开启IP路由转发

1.2、开启SNAT命令

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

临时开启

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				#读取修改后的配置

SNAT转换1:固定的公网IP地址

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

SNAT转换2:非固定的公网IP地址(共享动态IP地址)

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

1.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

配置网关服务器的相关配置

关闭firewalld防火墙并设置自关闭 

 安装iptables防火墙软件包,并设置iptables开机自启

添加两快网卡,并设置

 复制网卡信息并修改ens37网卡

#切换至网卡配置文件所在目录
[root@localhost network-scripts]#cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]#cp ifcfg-ens33 ifcfg-ens37

 修改ens33网卡

 重启网卡,并查看IP是否修改成功

配置外网web服务器相关配置

查看httpd服务软件包是否开启

 开启httpd服务,并查看状态

修改enss网卡模式为仅主机模式

修改ens33网卡

 重启服务,并查看是否设置成功

配置内网服务器相关配置 

修改网卡模式为仅主机模式

 修改IP地址

 开启SNAT

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

 配置网关服务器的iptables规则

 查看网关服务器的iptables规则并清除

iptables -nL			#查看规则
iptables -nL -t nat		#查看规则
iptables -F				#清除iptables的规则
iptables -F -t nat		#清除iptables的规则

 配置虚拟机win10设置

 验证结果

 二、DNAT原理与应用

2.1、DNAT 应用环境

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

DNAT原理

修改数据包的目的地址

DNAT转换前提条件

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

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

Linux网关开启IP路由转发

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

2.2、DNAT转换

把从ens33进来的要访问web服务的数据包目的地址转换为 192.168.80.11
 
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

如图:

修改window的网络配置

配置内网web服务器

修改IP地址,并查看是否设置成功 

配置网关服务器

设置DNAT转换

验证结果

 临时修改目标端口

#发布局域网内部的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 ens33
 
注意:使用DNAT时,同时还有配合SNAT使用,才能实现响应数据包的正确返回

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

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

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

四、tcpdump—Linux抓包

tcp∶ ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型

-i ens33 ∶只抓经过接口ens33的包

-t ∶不显示时间戳

-s 0 ∶ 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包

-c 100 ∶只抓取100个数据包

dst port ! 22 ∶不抓取目标端口是22的数据包

src net 192.168.1.0/24 ∶数据包的源网络地址为192.168.1.0/24。Net:网段,host:主机

-w ./target.cap ∶ 保存成cap文件,方便用ethereal (即wireshark)分析

五、总结

本篇内容主要描述了SNAT和DNAT的原理以及实验案例,SNAT是源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映射。DNAT是修改数据包的目的地址,通常被叫做目的映射。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值