iptables之SNAT与DNAT
iptables之SNAT与DNAT
- 前言
- 一、SNAT策略及应用
- (1)SNAT策略概述
- ①SNAT应用环境
- ②SNAT的策略原理
- ③SNAT转换前提条件
- (2)开启SNAT命令
- (3)SNAT案例
- 二、DANT原理与应用
- (1)DNAT概述
- ①DNAT应用环境
- ②DNAT原理
- ③DNAT转换前提条件
- (2)开启DNAT命令
- (3)DNAT转化
- (4)临时修改目标端口
- DNAT案例
- 三、防火墙规则的备份与还原
- (1)导出(备份)所有表的规则
- (2)导入(还原)规则
- 四、tcpdump——Linux抓包
- 总结
前言
在Centos中,7以上的版本默认防火墙都已经是firewalld了,但是iptables由于其独特的便捷性,依旧被大多数人使用,所以学会在其之上建立的SNAT与DNAT部署策略也就很有必要了。
一、SNAT策略及应用
(1)SNAT策略概述
①SNAT应用环境
局域网主机共享单个公网IP地址接入Internet(私有IP不能在Internet中正常路由)
②SNAT的策略原理
源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映射。
③SNAT转换前提条件
局域网各主机已正确设置IP地址、子网掩码、默认路由发送数据
Linux网关开启IP路由转发
(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
(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
下载安装iptables服务并启动,且将web服务器安装httpdfuw并开启
[root@youzi ~]# yum install httpd -y
[root@youzi ~]# yum install iptables-services -y
[root@youzi ~]# systemctl start httpd
[root@youzi ~]# systemctl start iptables打开虚拟机,配置两张新网卡
[root@wei ~]# cd /etc/sysconfig/network-scripts/
[root@wei network-scripts]# cp ifcfg-ens33 ifcfg-ens33
[root@wei network-scripts]# cp ifcfg-ens33 ifcfg-ens37 #配置网卡
- 查看网卡
- 配置SNAT服务
[root@wei network-scripts]# sysctl -w net.ipv4.ip_forward=1
或永久修改
[root@wei /]# iptables -t nat -F
[root@wei /]# iptables -t nat -vnL
[root@wei /]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to 10.0.0.1 #配置SNAT策略
[root@wei /]# iptables -t nat -vnL
修改网卡客户端
配置web端网卡
[root@youzi ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #配置服务端网卡
查看网卡
[root@youzi ~]# systemctl restart network
[root@youzi ~]# ifconfig
- 测试结果
二、DANT原理与应用
(1)DNAT概述
①DNAT应用环境
在Internet中发布位于局域网内的服务器
②DNAT原理
修改数据包的目的地址
③DNAT转换前提条件
局域网的服务器能够访问Internet
网关的外网地址有正确的DNS解析记录
Linux网关开启IP路由转发
(2)开启DNAT命令
打开DNAT
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
(3)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.118iptables -t nat -A PREROUTING -i ens37 -p tcp --dport 80 -j DNAT --to 192.168.100.13-192.168.100.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.80.11:22#在外网环境中使用SSH测试
ssh -p 250 root@12.0.0.1
yum -y install net-tools 若没有 ifconfig 命令可提前使用 yum 进行安装
ifconfig ens33
注意:使用DNAT时,同时还有配合SNAT使用,才能实现响应数据包的正确返回
DNAT案例
我们在SNAT的基础上继续部署,将客户端与web服务端的网卡调换
- 修改客户端网络配置
- 修改web端网卡配置
[root@youzi ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@youzi ~]# systemctl restart network
[root@youzi ~]# ifconfig #设置网卡
- 配置DNAT转换
[root@wei /]# iptables -t nat -A PREROUTING -i ens33 -d 10.0.0.10 -p tcp --dport 80 -j DNAT --to 192.168.100.120 #配置DNAT策略
[root@wei /]# iptables -t nat -A POSTROUTING -s 192.168.100.120 -o ens33 -j SNAT --to 10.0.0.10
- 测试结果
三、防火墙规则的备份与还原
(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 中的规则
四、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的概念与部署方式
- 防火墙规则的备份与还原
- tcpdump抓包工具
iptables之SNAT与DNAT相关推荐
- linux服务-iptables( snat 和dnat )
iptables snat 和dnat说明 1.dnat是用来做目的网络地址转换的,就是重写包的目的IP地址.比如,你的Web服务器在LAN内部,而且没有可在Internet上使用的真实IP地址,那就 ...
- iptables的SNAT和DNAT应用
首先开启路由转发功能: # vim /etc/sysctl.conf net.ipv4.ip_forward = 1 # sysctl -p (1)SNAT:内网主机 --访问--> 外网服务器 ...
- IPTABLES防火墙SNAT、DNAT网关策略
查看地址:http://www.jiayf.com/pots/912.html pdf资料下载: http://www.feijishu.com/thread-29-1-1.html 转载于:htt ...
- Linux系统的iptables防火墙、SNAT、DNAT原理与设置规则
Linux的iptables防火墙.SNAT.DNAT 一.iptables概述 1.netfilter/iptables关系 2.四表五链 四表 五链 规则表之间的优先顺序 规则链之间的匹配顺序 二 ...
- iptables 防火墙中的SNAT和DNAT
目录 前言 一.SNAT策略 1.1 SNAT应用环境 1.2 SNAT原理 1.3 SNAT转换前提条件 1.4 SNAT转换流程 1.4 SNAT 应用 1.4.1 临时打开 1.4.2 永久打开 ...
- iptables中的snat与dnat配置技术文档
文章目录 一.SNAT实验: 二.DNAT实验 首先需要弄清楚snat与dnat的区别: 从定义来讲它们一个是源地址转换(snat),一个是目的地址转换(dnat).都是地址转换的功能,将私有地址转换 ...
- iptables中SNAT, DNAT, MASQUERADE
文章出处:http://server.zdnet.com.cn/server/2008/0317/772069.shtml iptables中可以灵活的做各种网络地址转换(NAT) 网络地址转换主要有 ...
- CentOS 7 iptables 防火墙 SNAT DNAT 用法
iptables 命令基本参数和用法 iptables[-t 表名]命令选项[链名][条件匹配][-j 目标动作或跳转] 说明: 表名链名:用于指定 iptables 命令所操作的表和链 命令选项:用 ...
- 基于iptables的SNAT+DNAT+docker服务器集群搭建
什么是SNAT? SNAT用于局域网访问互联网,局域网的主机A想访问互联网上的主机C,首先要将数据包发送到防火墙所在的主机B,B收到后修改数据包的源地址为B机的公网IP,然后再发送到互联网. C机收到 ...
最新文章
- ​我国科学家成功研制全球神经元规模最大的类脑计算机
- 基于HTML5实现的(本地存储)多标签页面元素的复制粘贴
- 【Qt开发】【VS开发】【Linux开发】OpenCV、Qt-MinGw、Qt-msvc、VS2010、VS2015、Ubuntu Linux、ARM Linux中几个特别容易混淆的内容...
- 指针系统学习7-返回指针值的函数
- Linux 下的常用工具
- LeetCode 2139. 得到目标值的最少行动次数(贪心)
- 阿里云迁云方式大汇总 1
- 8.8.8.8,Google推出免费DNS解析服务器
- 三季度OPPO 持续热销 R11s将成新爆款
- 【编程珠玑】第六章 程序性能分析
- 【Python】学习笔记2-数据类型:数组、数组循环切片
- 图书馆图书借阅登记微信小程序管理软件系统开发制作
- xis表格怎么打印_《如何通过虚拟打印机将文件打印成excel文档》 表格怎么打印出来...
- 什么是端口映射?如何设置端口映射?
- 查看正在运行docker容器的启动命令
- 机械硬盘显示数据错误循环冗余检查文件如何寻回
- 切西瓜:把一个西瓜切9刀
- Aseprite动画技巧
- linux 误删文件恢复
- 如何用PS制作电子邮票