【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这种方式可以直接分析最底层的封包表头数据 阅读详情

相关推荐

Squareline Studio + LVGL实战:从Figma设计到MCU屏幕的UI开发一条龙(避坑中文显示)

本文详细介绍了使用Squareline Studio和LVGL实现从Figma设计到MCU屏幕UI开发的全流程,重点解决中文显示等常见问题。通过设计工具链搭建、设计稿转换、LVGL工程集成及性能优化等步骤,帮助开发者高效完成嵌入式GUI开发,提升开发效率。

weixin_29246195的博客 583

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

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

ArduPilot 的 RTOS 选择:为何 ChibiOS 成为现代飞控的首选

本文深入探讨了ArduPilot选择ChibiOS作为现代飞控首选RTOS的原因。通过对比FreeRTOS和NuttX,ChibiOS凭借其50ns中断响应、1.2μs上下文切换时间和高效的资源管理脱颖而出,特别适合处理无人机飞控中的高频传感器融合和实时控制任务。文章还详细分析了ChibiOS在STM32硬件上的优化实践及其在无人机开发中的显著优势。

weixin_29161719的博客 567

openwrt作旁路由配置教程

openwrt作旁路由配置教程

Zola的博客 4448

RNA-Seq数据分析实战:从FastQC到STAR比对的完整流程(附避坑指南)

本文提供了RNA-Seq数据分析从FastQC质控到STAR比对的完整实战流程与避坑指南。详细解读了FastQC/MultiQC报告的关键指标,并重点阐述了STAR比对工具的核心参数设置、索引构建及性能优化策略,旨在帮助用户获得准确可靠的比对结果,为下游基因表达分析奠定坚实基础。

weixin_29290259的博客 92

WorkBuddy Skill赋能HYSYS与Comsol:AI工作台下的仿真自动化实践

AI Agent正将工业软件自动化带向新高度。在工程仿真领域,流程模拟与多物理场分析常因重复性操作而效率低下,Aspen HYSYS的批量工况调整、Comsol的参数扫描与网格重构均属此类。WorkBuddy这类AI工作台通过Skill将软件二次开发能力封装为可插拔技能包,利用HYSYS的COM/OLE接口和Comsol的Java API,实现自然语言指令到自动化执行的转变。其技术价值在于降低自动化门槛、沉淀工程经验,并支持日志审计与异常重试。在实际应用中,无论化工流程的灵敏度分析,还是激光焊接、移动网格等

weixin_29055699的博客 296

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

DeepSeek 框架和技术栈分析

DeepSeek 诞生于对更高效、更强大的深度学习计算和模型训练的追求。随着深度学习模型的规模不断增大,如大型语言模型(LLMs)和复杂的视觉模型,传统的框架在处理这些大规模模型时面临着性能瓶颈和资源利用效率低下的问题。DeepSeek 旨在解决这些问题,通过优化框架设计和采用先进的技术栈,实现更高效的模型训练和推理,同时降低计算成本。

yournameplease的专栏 1511

总算解决了路由器上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

IMEI引起的无法驻网问题

问题不复杂,场景很简单,如上图,UE在进行LTE attach过程时,在送完NAS security mode complete后,就立刻收到了网络attach reject 带cause 6 Illegal ME,根据协议描述这个cause 代表ME不被网络可接受,例如ME在禁止名单或者黑名单中就会有这种cause。然而前方在报这个问题的时候,也是知道SIM卡和手机IMEI在运营商那边没能成功绑定,然后才报的问题,要查看手机是不是有问题...... 告诉前方原因后,还认为是手机问题,告知要继续查。

asd199086的博客 1426

在 SAP BTP 中通过 MTA 自动创建 Service Broker 的原理与实战

本文探讨了如何在SAP BTP的Cloud Foundry环境中通过MTA部署自动创建和注册Service Broker。传统手动注册方式存在依赖管理员、环境一致性差等问题。通过MTA部署可实现自动化Broker注册,利用占位符生成安全凭证,并确保平台端与应用端认证一致。文章详细解析了关键配置参数,包括create-service-broker标志、Broker名称、认证凭据和访问URL的设置方法。这种基础设施即代码(IaC)方式能提升DevOps实践水平,使服务注册成为应用部署流水线的有机组成部分。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 200

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

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

focus_lyh的博客 481

触摸芯片RM1015B基本使用方法

RM1015B触摸芯片使用指南:该芯片采用4通道设计(实际使用3通道),通过I2C接口通信(设备地址0x2B)。硬件设计需注意中断/复位引脚复用,需上拉处理。软件配置包括初始化、中断处理和定时器扫描,通过设置各通道阈值(0-300W)调节灵敏度,值越小越灵敏。调试时可调用rm1015B_debug_func()输出波形数据。典型应用场景包括接近检测和手势识别,中断触发后需在8ms内响应。特别注意不同通道的寄存器映射关系及校准流程,确保检测准确性。

云淡风轻 176

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

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

ss810540895的博客 535

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

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

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

TDXYBS的博客 1691

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

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

180

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、付费专栏及课程。

余额充值