【Iptables】13 Iptables动作总结之二(进阶)

运维进阶——iptables详解 iptables 先将双网卡的desktop的firewalld关闭,并锁定 [root@dektop ~]# systemctl stop firewalld [root@dektop ~]# systemctl mask firewalld ln -s '/dev/null' '/etc/systemd/system/firewalld.service' [root@dektop ~]# ... 阅读详情

特别说明:此系列博文根据 朱双印博客-iptables系列博文,个人实践后总结,此为个人笔记精简版,更通俗易懂请参考 朱双印博客-iptables系列博文 原文内容,诸君必能有所收获

13 Iptables动作总结之二(进阶)

我们之前已经了解了ACCEPT、DROP、REJECT、LOG,另外还有一些动作虽然不常用,但是也可能会用到的,分别是SNAT、DNAT、MASQUERADE、REDIRECT

首先来了解下NAT,NAT即Network Address Translation的缩写,译为"网络地址转换",如名,NAT的作用就是用来做网络地址转换的,通常会被集成到路由器,防火墙,或者独立的NAT设备中,简单理解它就是修改报文IP地址来达到报文被发送到修改后的IP处

学习动作之前,我们可以看一下常见的一些场景

如内部网络存在一些主机,它们各自有自己的IP地址,当内部网络的主机访问其他网络的主机时,会暴露自己的IP地址,如果需要隐藏这些内部网络的主机,可以做些什么达到目的呢

这个时候就会用到NAT了,当内部网络的主机与外界通信,报文会经过路由器或者防火墙;当报文经过时,将源IP地址改为路由器或者防火墙的地址,这样,其他外部主机收到报文会认为是路由器或者防火墙这个IP发出的,隐藏IP地址的目的也就可以达到了;通常,路由器等拥有NAT功能的设备,会维护一张NAT表,表中记录了报文是从哪个内部主机的哪个进程的,当报文经过路由器,路由器会将报文的内容主机的源IP替换为路由器IP,将源端口映射为某个端口,NAT表会把这种对应关系记下来
在这里插入图片描述
当响应的报文被送回来后,路由器会按照NAT表的记录,将目标地址IP和端口改回去,这样,报文又会被送到内部网络的主机上

这就是用到了NAT的功能,准确一点,应该是用到了NAPT功能,NAPT是NAT的一种,全称为Network Address Port Translation,该功能在映射报文IP地址的同时还会映射相应的端口号

内部网络的报文发送出去,报文的源IP会被修改,也就是源地址转换:Source Network Address Translation,缩写为SNAT;当外部网络响应发送报文回来时,报文的目标地址会被修改,也就是目标地址转换:Destination network Address Translation,缩写为DNAT

NAT不仅能帮我们隐藏网络内部主机的IP地址,还能够让局域网内的主机共用一个能连接外部网络的主机IP,让私网能够访问外部网络,具体就是利用SNAT与DNAT把内部网络IP地址和端口映射为可以访问外部网络的主机IP和端口;

环境准备

验证SNAT和DNAT动作的环境和验证iptables作为网络防火墙的配置相同,只不过此时我们把内外网比作我们常见的公网和私网
在这里插入图片描述
主机A:作为模拟公网的主机

主机B:作为模拟网络防火墙的主机,既能和公网主机通信,又能与私网主机通信

主机C:作为模拟的私网主机

同样的,需要开启主机B的核心转发功能,现在我们来看看动作SNAT吧

动作:SNAT

现在我们让主机B扮演有NAT功能的设备,配置iptables规则的SNAT动作去完成内网主机访问外网并隐藏IP

我们在主机B上配置规则如下

iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j SNAT --to-source 192.168.200.221
在这里插入图片描述
上述规则中,我们表示将来自172.16.0.0网段的报文,将源地址改为可以访问外网的IP地址192.168.200.221

使用了 -t nat 选项,指定nat表,因为主要是nat表进行的地址转换

使用 -A POSTROUTING 表示将规则放到POSTROUTING链的末尾,这样每一条在之前经过规则匹配后的报文经过这个规则再经过修改源地址IP和映射端口后就会被发送出去

使用 -j SNAT 指定了SNAT动作,即源地址端口转换

使用了 --to-source 选项,这是SNAT动作的常用选项,用于指定SNAT需要将报文的源IP修改成哪个IP地址

现在我们配置了一条SNAT的规则,并没有配置DNAT规则,是不是会导致回来的报文无法被修改为源IP地址啊,我们可以试一试
在这里插入图片描述
可以看到,内部网络的主机C是能够访问到外网的,我们并没有配置DNAT规则,看来是iptables自动给我们把响应的报文目标地址修改成了我们内部主机的IP地址;这就是内部网络主机通过恭喜可以访问外网的IP来实现访问外网的案例,同时外部网络的主机一直认为是主机B在和它们进行通信交互,达到了隐藏IP的效果,而且我们只用了一条规则,DNAT的功能由iptables自己完成了

这里还有一个需要注意的是,内外部主机C和A能通信,主要是因为主机B的转发作用,主机C能ping通主机A,是因为有一条SNAT规则所在,但是主机A却不能ping通主机C,因为至始至终都是主机B在和主机A通信;主机C能收到 主机A的响应不过是主机B收到报文后,iptables做出的自动DNAT

动作:DNAT

有动作SNAT的使用,也少不了DNAT的使用;SNAT主要用于内部访问外部网络,而DNAT则主要用于外部网络访问内部网络;

如我们内部网络有一系列的服务需要开放给外部网络的人员使用,但是我们的服务却只能内部网络访问,这时我们就需要用到DNAT,将访问某一台可以访问外网的主机IP修改为内部服务主机的IP,这样来实现外部网络访问内部网络的服务,首先,我们在主机B中清除原有规则并添加规则如下

iptables -t nat -I PREROUTING -d 192.168.200.221 -p icmp -j DNAT --to-destination 172.16.220.129

上述规则中,我们指定了nat表的PREROUTING链,然后 -d 选项指定了目标地址,-j DNAT --to-destination 选项表示将符合条件的报文进行DNAT,如果服务具有端口,可在IP后跟冒号与端口号,如172.16.220.129:80 表示将主机B的80端口映射到内网主机的80端口上,当然,如果在匹配条件处指明了其他端口,则是将该端口映射为内部网络的80端口,如 192.168.200.221 -p tcp --dport 801 -j DNAT --to-destination 172.16.220.129:80 表示将主机B上的801端口映射到内部网络主机的80端口

我们试一下看能否访问内部网络,ping 192.168.200.221 ,ping主机B,如果规则没有问题,我们连接的其实是内部网络的主机C,如果不能连通,可能需要添加一条SNAT规则,和之前的一样
在这里插入图片描述
为了验证ping 192.168.200.221这台主机,即主机B后,实际连接的主机C,我们需要在主机C上添加规则如下

iptables -I INPUT -s 192.168.200.115 -p icmp -j LOG

这条规则表示只有是主机A的ping报文,就把它记录下来,默认记录文件是/var/log/message

现在,通过主机Aping主机B,查看是否连通
在这里插入图片描述
看能通信,现在查看主机C的/var/log/message文件,看看是否有来自主机A的ping报文信息
在这里插入图片描述
可以看到,主机C收到了来自外网主机A的ping报文,和我们发送的总共4条报文一样,收到了4条报文

同样的,我们也可以映射端口,做法与SNAT一样

动作:MASQUERADE

我们了解了SNAT与DNAT之后,我们再来看看类似的动作MASQUEREADE,类似于动态的SNAT

我们常常会遇到动态分配IP的问题,如果作为防火墙的主机IP都是动态分配的,那么可能会出现之前的规则因为网络IP地址的变化而变得没有作用,我们就必须重新定义规则,这样是很麻烦的,而且也不能解决我们的实际问题;这个时候我们可以使用MASQUERADE动作,这个动作会动态的将源地址转换为可用的IP地址,即不指定转换为某个固定的IP,而是动态的将报文的源地址修改为指定网卡上可用的IP地址

iptables -t nat -I POSTROUTING -s 172.16.0.0/16 -o eht0 -j MASQUERADE

上述规则,我们指定经过网卡eht0的报文在经过POSTROUTING链时,会自动将报文的源地址修改为网卡eth0上的可用IP地址,即实现了动态更改源IP地址,不再担心主机B因为动态分发IP而导致规则不能使用了,如果没有动态的SNAT需求,我们选择SNAT,因为会更加高效

动作:REDIRECT

使用动作REDIRECT可以实现本机端口的映射,即可以把本机的801端口映射到80端口上

iptables -t nat -A PREROUTING -p tcp --dport 801 -j REDIRECT --to-ports 80

上述规则中,我们使用动作REDIRECT和其选项 --to-ports 将本机端口801映射到80端口,当801接收到的报文,会被重定向到本机的80端口

需要注意的是,REDIRECT动作只能定义在PREROUTING链或者OUTPUT链中,其余的链不行
【Iptables】iptables目录

Linux iptables用法与NAT Linux iptables用法与NAT 参考链接:https://www.cnblogs.com/whych/p/9147900.html 1.相关概念 2.iptables相关用法 3.NAT(DNAT与SNAT) 相关概念 防火墙除了软件及硬件的分类,也可对数据封包的取得方式来分类,可分为代理服务器(Proxy)及封包过滤机制(IP Filter)。 代理服务是一种网络服务,通常就架设在路由上面,可完整的掌控局域网的对外连接。 IP Filter这种方式可以直接分析最底层的封包表头数据 阅读详情

相关推荐

告别激活烦恼:Lattice Diamond 3.13 永久免费License申请与配置全攻略(Windows 64位)

本文详细介绍了Lattice Diamond 3.13永久免费License的申请与配置全流程,特别针对Windows 64位系统用户。从官网导航的隐藏路径到Host ID的获取方式,再到License文件的高级处理技巧和环境变量的深度配置,提供了全面的安装教程和疑难问题解决方案,帮助开发者彻底告别激活烦恼。

weixin_28736335的博客 423

iptables 企业级防火墙配置(四表五链)

# iptables 的主要作用是:    通过四表五链过滤数据包起到防御功能,同时也具有路由功能,即沟通不同网段和转发数据包即共享上网等等。iptables 不仅功能十分的强大,且使用非常的灵活,可以对流入和流出的数据包进行很精细的控制。同时它的数据包转发的效率也非常高,据悉在一台普通硬件设备上配置 iptables转发功能,在同时提供几百人共享上网环境下,好不逊色企业级专业路由器的转发效率。    所以 iptables(CentOS 7.x 之后叫做 firewalld)是一款与生俱来的、功能强大同时适应性强的 Linux 操作系统自带的一款优秀软件。    故理解iptables工作机理,学会配置iptables参数,对应 Linux 架构和运维人员就是一件一劳永逸重要工作。    本视频详细的论述了iptables 企业级防火墙从原理到配置,最后落实到实战部署的详尽过程。

【理解机器学习算法】之Clustering算法(Agglomerative Clustering)

是一种层次聚类算法,通过逐步合并或“聚集”它们来构建嵌套聚类。这种方法采用自底向上的方式构建聚类层次:它从将每个数据点作为单个聚类开始,然后迭代合并最接近的聚类对,直到所有数据点合并为一个聚类,或直到达到指定的聚类数量。优点:- 聚合聚类在距离和连接准则的选择上具有多样性,使其适用于各种数据集。- 它产生了一个层次结构,这对于不同规模的聚类数据结构是有信息量的。-缺点:- 对于大数据集来说,它可能计算成本高,因为它需要在每次迭代中计算和更新所有聚类对之间的距离。

Hyman Qiu 2688

openwrt作旁路由配置教程

openwrt作旁路由配置教程

Zola的博客 4448

手把手教你用U盘制作Win11启动盘:从PE工具到系统安装全流程

本文提供了一份详尽的Windows 11启动盘制作与系统安装全流程指南。从选择合适的U盘和PE工具开始,重点讲解了如何正确制作包含EFI引导分区的启动盘,并详细演示了在PE环境下进行GPT分区、使用CGI工具安装系统镜像,以及首次启动后的关键设置步骤,帮助用户轻松完成从零到一的系统安装。

weixin_28475533的博客 1286

SpringBoot项目实战:5分钟搞定豆包大模型API接入(附完整代码)

本文详细介绍了如何在SpringBoot项目中快速集成豆包大模型API,仅需5分钟即可完成。从环境准备、依赖配置到核心服务封装和控制器层实现,提供了完整的代码示例和实战技巧,帮助开发者高效接入大模型能力,提升智能客服等应用的开发效率。

weixin_30566063的博客 439

iptables 常用处理动作

在iptables中,-j 参数用来指定要进行的处理动作,常用的处理动作包括:ACCEPT、REJECT、DROP、REDIRECT、MASQUERADE、LOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、MARK。 分别说明如下: ACCEPT将数据包放行,进行完此处理动作后,将不再比对其它规则,直接跳往下一个规则链。 REJECT拦阻该数据包,并传送数据包通知对方,可以传送的数据包有几个选择:ICMP port-unreachable、ICMP echo-reply 或是tc..

weixin_39833509的博客 1230

如何解决ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE.

解决ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE

2742

总算解决了路由器上iptables的nat问题

简单的说需要几个指令 iptables -I FORWARD -i br-lan -j ACCEPT 这条指令让路由器接受局域网的转发请求 iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE iptables -t nat -I POSTROUTING -o wan -j MASQUERADE 这两条指令指定了NAT映射,自动将内网I...

weixin_34216196的博客 1826

Abaqus 单元与全局刚度矩阵导出实战指南:从INP修改到结果解析

本文提供了Abaqus中导出单元刚度矩阵和全局刚度矩阵的完整实战指南。通过详细步骤讲解INP文件修改、关键指令插入及结果文件解析,帮助工程师、研究人员和二次开发者深入理解有限元软件内核,实现理论验证、二次开发与深度问题调试。

k8s6orchestrator的博客 898

手把手教你学Simulink--移动机器人多轮协同场景实例:基于Simulink的双轮差速PMSM轮毂电机协同驱动仿真

本文介绍了基于Simulink的双轮差速PMSM轮毂电机协同驱动仿真系统。针对移动机器人存在的电机参数不一致、负载分配不均等问题,提出主从同步+力矩补偿的协同控制策略。通过搭建包含运动学模型、PMSM电机模型和矢量控制器的仿真系统,实现了速度同步误差<0.005m/s、轨迹跟踪误差<0.8cm、能耗降低12.5%的优化效果。文章详细阐述了建模步骤、核心算法实现和性能验证,为移动机器人动力系统设计提供了实用参考方案。

MHD0815的博客 131

iptables详解【13】: 动作总结之二

在本博客中,从理论到实践,系统的介绍了iptables,如果你想要从头开始了解iptables,可以查看iptables文章列表,直达链接如下 iptables零基础快速入门系列 概述 阅读这篇文章需要站在前文的基础上,如果你在阅读时遇到障碍,请参考之前的文章。 前文中,我们已经了解了如下动作 ACCEPT、DROP、REJECT、LOG 今天,我们来认识几个新动作,它们是: SNAT、DNAT、MASQUERADE、REDIRECT 在认识它们之前,我们先来聊聊NAT,如果你对NAT的相关概念已经滚瓜烂熟

focus_lyh的博客 481

Cilium动手实验室: 精通之旅---5.Mutual Authentication with Cilium

在Cilium 入门实验室中,您将在受《星球大战》启发的场景中实施高级第 3-7 层网络策略。在实验结束时,您将实施强大的网络策略,并通过微分段保护 Empire 免受来自叛乱的攻击。在本实验中,您将重新部署《星球大战》演示应用程序,但除了网络策略之外,您还将了解如何在工作负载之间实施相互身份验证。

Q先生 1397

iptables详解(13):iptables动作总结之二

阅读这篇文章需要站在前文的基础上,如果你在阅读时遇到障碍,请参考之前的文章。前文中,我们已经了解了如下动作今天,我们来认识几个新动作,它们是:在认识它们之前,我们先来聊聊NAT,如果你对NAT的相关概念已经滚瓜烂熟,可以跳过如下场景描述。NAT是Network Address Translation的缩写,译为”网络地址转换”,NAT说白了就是修改报文的IP地址,NAT功能通常会被集成到路由器、防火墙、或独立的NAT设备中。为什么要修改报文的IP地址呢?

ss810540895的博客 535

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【Iptables】12 Iptables动作总结之一(基础)

12 Iptables动作总结之一(基础) 此前我们已经接触过动作了,如REJECT,DROP,ACCEPT;但是我们却没说其他的动作,并且动作其实还分基础动作和扩展动作的,基础动作包括DROP,ACCEPT;其余的便是扩展动作,但是扩展动作使用时不用指定,这与之前的匹配条件使用扩展模块不同,如我们使用REJECT动作就直接使用就好了 虽说直接使用就好了,但是扩展动作却是有一些常用的选项的,我们先...

TDXYBS的博客 1691

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

iptables系列13:iptables动作总结之二

http://www.zsythink.net/archives/1764

180

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

iptables防火墙的配置和基本使用

一、iptables常见概念 1、iptables概述 netfilter/iptables:IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成。 netfilter/iptables 关系: netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。 iptable...

菜鸟、上路 1万+

iptables安装配置及使用方法

文章目录一、iptables常见概念1、iptables概述2、iptables三张表介绍3、iptables五链4、表、链、规则处理的顺序二、iptables的安装和相关配置文件1、安装2、配置文件的位置3.启动服务,并设置开机自启动三、实战:iptables使用方法1、iptables命令的语法格式2、iptables命令使用方法3、匹配条件4、动作(处理方式)5、附加模块6、所有规则设定完后,默认是可以直接使用,但是不是永久使用,重启电脑后自动丢失 一、iptables常见概念 1、iptables概

mjp18118881138 7744

iptables转发基础

iptables [-t TABLE] COMMAND CHAIN [num] 匹配条件 -j 处理动作要使用iptables的NAT功能,我们首先需要启用网卡的IP转发功能如果想要永久生效,我们要编辑文件,设置,然后用sysctl -p命令使配置文件生效。我们使用**-t nat**参数指明使用nat表,因为iptables默认使用filter表。nat表同filter表一样有三条缺省的”链”(chains):POSTROUTING:定义进行源地址转换规则,重写数据包的源IP地址。

2301_77110605的博客 1121

iptables

最近配了iptables,码一下 iptables是用来设置、维护和检查Linux内核的IP包过滤规则的。具体的还是找度娘[https://baike.baidu.com/item/IPTABLES/9139339?fr=aladdin],这里就不再赘述。 1.查看iptables状态 1.#iptables -n -L 当显示下边信息时iptables未开启 Chain INPUT (polic...

帕布里克沃德曼的博客 201

iptables详解(14):iptables小结之常用套路

不知不觉,已经总结了13篇IPTABLES文章,这些文章中有一些需要注意的地方。 此处,我们对前文中的一些注意点进行总结,我们可以理解为对"常用套路"的总结。 记住这些套路,能让我们事半功倍。 阅读这篇文章之前,请确定你已经阅读了之前的文章,否则你有可能会不理解为什么要这样做。 1、规则的顺序非常重要。 如果报文已经被前面的规则匹配到,IPTABLES则会对报文执行对应的动作,通常是ACCEPT或者REJECT,报文被放行或拒绝以后,即使后面的规则也能匹配到刚才放行或拒绝的报文,也没有机会再对

yetugeng的专栏 716
上一篇: 【Iptables】12 Iptables动作总结之一(基础)
下一篇: 【Iptables】iptables目录
TDXYBS
博客等级 码龄8年 11粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值