概述
目录
一、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是修改数据包的目的地址,通常被叫做目的映射。
最后
以上就是哭泣小霸王为你收集整理的iptables之SNAT与DNAT四、tcpdump—Linux抓包的全部内容,希望文章能够帮你解决iptables之SNAT与DNAT四、tcpdump—Linux抓包所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复