当前位置: 首页 > news >正文

iptables之iptables表、链、规则 、匹配模式、扩展模块、连接追踪模块(一)

一、iptables的链

1.请求到达本机: PREROUTING --> INPUT --> Local Process (本机)
2.请求经过本机: PREROUTING --> FORWARD --> POSTROUTING
3.请求从本机发出:local Process(本机) --> OUTPUT --> POSTROUTING

在这里插入图片描述

二、iptables的表

2.1表的功能

平常主要用的是filter表和nat表filter: 过滤,网络安全;nat: 路由;地址转换;

在这里插入图片描述

2.2 表与链的关系

简单解释:
注意图中的向下箭头,这是访问顺序1.请求到达本机: PREROUTING --> INPUT --> Local Process (本机)
2.请求经过本机: PREROUTING --> FORWARD --> POSTROUTING
3.请求从本机发出:local Process(本机) --> OUTPUT --> POSTROUTING

在这里插入图片描述

2.3 问题

问题1:来自`10.0.0.1`的地址,访问本机的`web`服务请求不允许,应该在哪个表的哪个链上设定规则?
答:filter表中的INPUT链上设定规则。问题2:所有由本机发往`10.0.0.0/24`网段的`TCP`服务都不允许?
答:filter表中的OUTPUT链上设定规则。问题3:所有来自己本地内部网络的主机,向互联网发送`web`服务器请求都允许?
答:filter表中的FORWARD链设定规则。
c  -->  iptables  --> s

三、iptables规则的增、删、改、查、存

在这里插入图片描述

iptables [-t 表名] 选项 [链名] [规则] [动作]

在这里插入图片描述

3.1 iptables操作举例

默认不同-t指定表,则默认为filter表。

1.如何查看
-L:查看 -n:不解析 -v 详细 --line-numbers 编号

iptables -L -n -v --line-numbers

2.如何添加规则: 禁止10.0.0.10 ping 10.0.0.200
-I:插入Insert

iptables -t filter -I INPUT -p icmp -j REJECT
iptables -L -n随后ping 10.0.0.200看效果 , REJECT还会有反馈内容。 如果是DROP则,没有反馈内容

3.如何修改规则:
-R:修改 需要指定规则的编号

iptables -t filter -R INPUT 1 -p icmp -j DROP

4.如何清空计数器:

iptables -Z

5.备份规则;

iptables-save > /etc/iptables.rule

6.清空规则:

iptables -F    #等价于 iptables -t filter -F
iptables -t nat -F

7.恢复规则:

iptables-restore < /etc/iptables.rule

8.永久生效:

将 iptables-restore < /etc/iptables.rule 加入开机自启动文件 /etc/rc.local

四、iptables匹配模式与案例

4.1 iptables匹配参数

在这里插入图片描述

4.2 示例问题

1 、 仅允许10.0.0.1 访问 10.0.0.200 服务器的80端口、其他地址全部拒绝。
filter 表;
INPUT;

iptables -t filter -I INPUT -p tcp -s 10.0.0.10 -d 10.0.0.200 --dport 80 -j DROP#INPUT链默认是接受  policy ACCEPT 。 当走完Input链下的所有规则,一旦符合则不会往下走,如果都不符合的,则走默认规则 policy ACCEPT。

在这里插入图片描述

2 、 仅允许10.0.0.1 访问 10.0.0.200 服务器的22端口、其他地址全部拒绝。

iptables -t filter -I INPUT -s 10.0.0.1 -d 10.0.0.200 -p tcp --dport 22 -j ACCEPT
iptables -t filter -A INPUT -d 10.0.0.200 -p tcp --dport 22 -j DROP

在这里插入图片描述

3 、所有来访问本机的协议,属于TCP协议的我们通通都放行;

iptables -t filter -I INPUT -p tcp -j ACCEPT
iptables -t filter -A INPUT -j DROP#测试方法: 时间同步chrony有走udp协议 、 ping走icmp协议

在这里插入图片描述

4、凡是由本机发出的TCP协议报文,都允许出去,其他协议不行;

iptables -t filter -I OUTPUT -p tcp -j ACCEPT
iptables -t filter -A OUTPUT -j DROP

5、禁止其他主机从eth0像本机发送ping请求

iptables -t filter -I INPUT -i eth0 -p icmp -j DROP

在这里插入图片描述

6、允许从本机发送ping请求,其他任何协议都不允许; 【执行完后 ssh会掉线】【注意!】

iptables -t filter -I OUTPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -j DROP

五、Iptables扩展匹配与案例

5.1 Iptables扩展模块-multiport

multiport模块可以添加多个不连续的端口;
示例 :10.0.0.10 访问本机20、21、80、443允许通过;

iptables -I INPUT -s 10.0.0.10 -d 10.0.0.200 -p tcp -m multiport --dport 20:22,80,443,873 -j ACCEPT

在这里插入图片描述

5.2 lptables扩展模块-iprange

iprange模块可以指定”一段连续的IP地址范围";用于匹配报文的源地址或者目标地址,iprange扩展模块中有两个扩展匹配条件可以使用。

示例:10.0.0.5-10.0.0.10地址段访问ping本机,则丢弃;

iptables -t filter -I INPUT -p icmp -m iprange --src-range 10.0.0.5-10.0.0.10 --dst-range 10.0.0.200 -j DROP

在这里插入图片描述

5.3 Iptables扩展模块string

●string模块,可以指定要匹配的字符串,如果报文中包含对应的字符串,则符合匹配条件。
。–algo {bm|kmp}:字符匹配的查询算法;
。[!] --string pattern: 字符匹配的字符串;

情景准备:

yum install httpd -y
echo "hello" > /var/www/html/index.html
echo " video " > /var/www/html/test.html
systemctl start httpd

情景1示例:应用返回的报文中包含字符"video",我们就丢弃当前报文,其余正常通过。

#OUTPUT链
iptables -t filter -I OUTPUT -p tcp -m string --algo kmp --string "video" -j DROP

在这里插入图片描述
在这里插入图片描述

情景2 任意时间段都拒绝,用户请求iptables节点,如果请求中包含 “jd.oldxu.net” 则拒绝;

iptables -t filter -F
iptables -t filter -I INPUT -p tcp -m string --algo kmp --string "jd.oldxu.net" -j DROP

在这里插入图片描述

5.4 lptables扩展模块-time

time模块,可以根据时间段区匹配报文,如果报文到达的时间在指定的时间范围内,则符合匹配条件。
。–timestart hh:mm[:ss]:开始时间
。–timestop hh:mm[:ss]: 结束时间
。[!] --monthdays day[, day…]:指定-一个月的某- 天
。[!] --weekdays day[, day…]: 指定周一-到周天
。–kerneltz:使用内核时区而不是UTC时间 (所以要减8小时)

示例1:拒绝每天8:30~12:30 (00: 3004:30)、13:3018:30 (05:30~10:30), 任何主机发送icmp协
议;

#utc时间,比北京时间快8小时,所以要减8小时。
iptables -t filter -I INPUT -p icmp -m time --timestart 00:30 --timestop 04:30 -j DROP
iptables -t filter -I INPUT-p icmp -m time --timestart 05:30 --timestop 10:30 -j DROP

限制用户在上班时间段访问jd、qq等资源,其他时间可以正常放行:
time和string一起用: (路由器)
限制早上:8:00 ~ 12:00 (00:00-04:00)
限制下午:14:00 ~ 18:00 (06:00-10:00)

#utc时间,比北京时间快8小时,所以要减8小时。
#网络策略   FORWARD链
#上午
iptables -t filter -I FORWARD -p tcp -m string --string "qq" --algo kmp -m time --timestart 00:00 --timestop 04:00 -j DROP
iptables -t filter -I FORWARD -p tcp -m string --string "tb" --algo kmp -m time --timestart 00:00 --timestop 04:00 -j DROP#下午
iptables -t filter -I FORWARD -p tcp -m string --string "qq" --algo kmp -m time --timestart 06:00 --timestop 10:00 -j DROP
iptables -t filter -I FORWARD -p tcp -m string --string "tb" --algo kmp -m time --timestart 06:00 --timestop 10:00 -j DROP
#utc时间,比北京时间快8小时,所以要减8小时。
#主机策略   INPUT链
#上午
iptables -t filter -I  INPUT -p tcp -m string --string "qq" --algo kmp -m time --timestart 00:00 --timestop 10:00 -j DROP
iptables -t filter -I  INPUT -p tcp -m string --string "tb" --algo kmp -m time --timestart 00:00 --timestop 04:00 -j DROP#下午:                 
iptables -t filter -I  INPUT -p tcp -m string --string "qq" --algo kmp -m time --timestart 06:00 --timestop 10:00 -j DROP
iptables -t filter -I  INPUT -p tcp -m string --string "tb" --algo kmp -m time --timestart 06:00 --timestop 10:00 -j DROP

5.5 Iptables扩展模块icmp

5.6 Iptables扩展模块connlimit

5.7 Iptables扩展模块limit

5.8 Iptables扩展模块tcp-flags

六、iptables连接追踪模块案例

相关概念:
在这里插入图片描述
比如记录这些:
在这里插入图片描述

conntrack:
查看链接追踪详情: /proc/net/nf_conntrack
调整链接追踪大小: echo "100000" > /proc/sys/net/nf_conntrack_max

应用场景:

正常情况下服务器的80端口不会主动连接其他服务器,如果出现了80端口连接其他服务器,那么说明出现了
异常行为,或者可以理解为中了木马程序病毒。反弹端口型木马
如果关闭80端口的响应报文,就会造成请求进来无法响应;如果开放80端口则又会出现异常行为。
所以我们需要对80端口做连接追踪限制,凡事从80端口出去的就必须是对某个请求的响应,也就是说通过80
端口出去的状态必须是ESTABLISHED,不能是NEW
1、允许接收远程主机像本机发送的SSH与HTTP请求(NEW、 ESTABLISHED)
2、同时也仅允许本机像其他主机回应SSH以及HTTP响应(ESTABLISHED)
3、但不允许本机通过22、80端口主动向外发起连接。#INPUT链
iptables -t filter -I INPUT -p tcp -m multiport --dport 80,22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -p tcp -m multiport --dport 80,22 -j DROP#OUTPUT链
iptables -t filter -I OUTPUT -p tcp -m multiport --sport 22,80 -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m multiport --sport 22,80 -j DROP

在这里插入图片描述

相关文章:

iptables之iptables表、链、规则 、匹配模式、扩展模块、连接追踪模块(一)

一、iptables的链 1.请求到达本机&#xff1a; PREROUTING --> INPUT --> Local Process &#xff08;本机&#xff09; 2.请求经过本机&#xff1a; PREROUTING --> FORWARD --> POSTROUTING 3.请求从本机发出&#xff1a;local Process&#xff08;本机&#xf…...

Mac 卸载appium

安装了最新版的appium 2.0.1,使用中各种问题&#xff0c;卡顿....,最终决定回退的。记录下卸载的过程 1.打开终端应用程序 2.卸载全局安装的 Appium 运行以下命令以卸载全局安装的 Appium&#xff1a; npm uninstall -g appium 出现报错&#xff1a;Error: EACCES: permiss…...

数据结构----哈夫曼树

这里写目录标题 基本概念引子基本概念各种路径长度各种带权路径长度结点的带权路径长度树的带权路径长度哈夫曼树 哈夫曼树的构造理论基础构造思想总结 哈夫曼树的实现哈夫曼编码前缀编码哈夫曼编码的思想案例代码实现 编码与解码 基本概念 引子 哈夫曼树就是寻找构造最优二叉…...

Spring之Aop切面---日志收集(环绕处理、前置处理方式)--使用/教程/实例

Spring之Aop切面---日志收集&#xff08;环绕处理、前置处理方式&#xff09;--使用/教程/实例 简介系统登录日志类LoginLogEntity .java 一、环绕处理方式1、自定义注解类LoginLogAop.class2、切面处理类LogoutLogAspect.java 二、前置处理方式&#xff1a;1、自定义注解类Log…...

UE4/UE5 照明构建失败 “Lightmass crashed”解决“数组索引越界”

在构建全局光照时,经常会出现“Lightmass crashed”的错误,导致光照构建失败。本文将分析这一问题的原因,并给出解决建议。 UE4 版本4.26 报错如下&#xff1a; <None> Lightmass crashed: Assertion failed: (Index > 0) & (Index < ArrayNum) [File:d:\bu…...

并发编程系列-Semaphore

Semaphore&#xff0c;如今通常被翻译为"信号量"&#xff0c;过去也曾被翻译为"信号灯"&#xff0c;因为类似于现实生活中的红绿灯&#xff0c;车辆是否能通行取决于是否是绿灯。同样&#xff0c;在编程世界中&#xff0c;线程是否能执行取决于信号量是否允…...

3年 Android 开发的面试心经(后悔当初没有拿 N+1)

作者&#xff1a;勇闯天涯 当某人顺利通过大厂面试时&#xff0c;总会有人认为这是运气比较好罢了&#xff0c;但他们不曾得知对方之前受过多少苦和委屈&#xff0c;又付出了多少努力一步步去突破这些困境。正是因为他们的努力付出&#xff0c;在合适的时间与地点&#xff0c;用…...

【c语言】 -- 指针进阶

&#x1f4d5;博主介绍&#xff1a;目前大一正在学习c语言&#xff0c;数据结构&#xff0c;计算机网络。 c语言学习&#xff0c;是为了更好的学习其他的编程语言&#xff0c;C语言是母体语言&#xff0c;是人机交互接近底层的桥梁。 本章来学习指针进阶。 让我们开启c语言学习…...

软件压力测试对软件产品起到什么作用?

一、软件压力测试是什么? 软件压力测试是一种通过模拟正常使用环境中可能出现的大量用户和大数据量的情况&#xff0c;来评估软件系统在压力下的稳定性和性能表现的测试方法。在软件开发过程中&#xff0c;经常会遇到一些性能瓶颈和稳定性问题&#xff0c;而软件压力测试的作…...

Stephen Wolfram:那么…ChatGPT 在做什么,为什么它有效呢?

So … What Is ChatGPT Doing, and Why Does It Work? 那么…ChatGPT在做什么&#xff0c;为什么它有效呢&#xff1f; The basic concept of ChatGPT is at some level rather simple. Start from a huge sample of human-created text from the web, books, etc. Then train…...

机器学习基础(五)

决策树 决策树是一种预测模型,它代表着对象属属性与对象值之间的一种映射关系。树中的每个节点代表一个对象,分叉路径(或者叫树枝)则代表一个属性值。 决策树常用方法: 分类树分析,是一种监督学习,用于预计结果可能为离散类型。 回归树分析,用于预计结果为实数。 CART,…...

阿里云服务器安装WordPress网站教程基于CentOS系统

阿里云百科分享使用阿里云服务器安装WordPress博客网站教程&#xff0c;WordPress是使用PHP语言开发的博客平台&#xff0c;在支持PHP和MySQL数据库的服务器上&#xff0c;您可以用WordPress架设自己的网站&#xff0c;也可以用作内容管理系统&#xff08;CMS&#xff09;。本教…...

【100天精通python】Day37:GUI界面编程_PyQT从入门到实战(上)

目录 专栏导读 1 PyQt6 简介&#xff1a; 1.1 安装 PyQt6 和相关工具&#xff1a; 1.2 PyQt6 基础知识&#xff1a; 1.2.1 Qt 的基本概念和组件&#xff1a; 1.2.2 创建和使用 Qt 窗口、标签、按钮等基本组件 1.2.3 布局管理器&#xff1a;垂直布局、水平布局、网格布局…...

数据结构—散列表的查找

7.4散列表的查找 7.4.1散列表的基本概念 基本思想&#xff1a;记录的存储位置域关键字之间存在对应关系 ​ 对应关系——hash函数 ​ Loc&#xff08;i&#xff09; H&#xff08;keyi&#xff09; 如何查找&#xff1a; 根据散列函数 H(key) k 查找key9&#xff0c;则访…...

Expo项目 使用Native base UI库

装包&#xff1a; yarn add native-base expo install react-native-svg12.1.1 Index.js: import React from react import { View, Text } from react-native import useList from ./useList import { NativeBaseProvider, Button, Box } from native-base import styles f…...

74、75、76——tomcat项目实战

tomcat项目实战 tomcat 依赖 java运行环境,必须要有jre , 选择 jdk1.8 JvmPertest 千万不能用 kyj易捷支付 项目机器 选择 一台机器 ,安装jdk1.8的机器下载tomcat的包 上传到机器,解压tomcattomcat文件 bin文件夹: 启动文件 堆栈配置文件 catalina.sh JAVA_OPTS="-Xm…...

jmeter errstr :“unsupported field type for multipart.FileHeader“

在使用jmeter测试接口的时候&#xff0c;提示errstr :"unsupported field type for multipart.FileHeader"如图所示 这是因为我们 在HTTP信息头管理加content-type参数有问题 直接在HTTP请求中&#xff0c;勾选&#xff1a; use multipart/form-data for POST【中文…...

C#调用C++ DLL传参byte[]数组字节值大于127时会变为0x3f的问题解决

最近做了一个网络编程的DLL给C#调用&#xff0c;DLL中封装了一个TCP Client的函数接口&#xff0c;如下所示 //C TCP报文发送接口 int TcpClient_send(unsigned char* buffSend, unsigned int nLen) {unsigned char buff[1024];int len StringToHex(buffSend, buff);int nRet…...

【vue3+xlxs+xlsx-style-vite】vue3项目中使用xlsx插件实现Excel表格的导出和解析,已实现

在vue3项目中使用xlsx插件实现Excel表格的导出和解析 1、xlsx插件包官方 xlsx插件包官方 2、FileReader官方文档&#xff1a;FileReader官方文档 安装xlsx和xlsx-style-vite、file-saver npm install xlsx npm install xlsx-style-vite npm install file-saverpackage.json中查…...

Doris2.0时代的一些机遇和挑战!

300万字&#xff01;全网最全大数据学习面试社区等你来&#xff01; 上个周五的时候&#xff0c;Doris官宣了2.0版本&#xff0c;除了在性能上的大幅提升&#xff0c;还有一些特性需要大家特别关注。 根据官网的描述&#xff0c;Doris在下面领域都有了长足进步&#xff1a; 日志…...

Office RibbonX Editor:让Office界面定制变得像搭积木一样简单

Office RibbonX Editor&#xff1a;让Office界面定制变得像搭积木一样简单 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbon…...

力扣HOT100(30)两两交换链表中的节点

链表的交换要注意 “链表不断链”。前驱和后继都要连着迭代法&#xff08;必学死磕&#xff01;O (n) 时间&#xff0c;O (1) 空间&#xff09;1. 为什么必须用虚拟头节点&#xff1f;因为交换后链表的头节点会变&#xff01; 比如示例 1 中&#xff0c;原来的头是 1&#xff0…...

2026年,揭秘那些真正安全的原生态食材厂家你不可不知的秘密

随着人们生活水平的提升以及对健康的日益重视&#xff0c;选择真正安全的原生态食材已经成为许多人购买食物的标准。但市场的繁杂使得甄别真正安全的食材厂家变得愈加困难。今天&#xff0c;我将通过几个关键角度&#xff0c;为大家揭秘那些真正安全的原生态食材厂家的秘密&…...

【紧急预警】92%的DeepSeek测试用例生成失败源于这4个隐性配置缺陷——资深SDET连夜整理修复清单

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;DeepSeek测试用例生成的现状与危机本质 当前&#xff0c;DeepSeek系列大模型&#xff08;如DeepSeek-Coder、DeepSeek-VL&#xff09;在代码生成与理解任务中展现出强大能力&#xff0c;但其测试用例自动生成…...

Vue2-Verify:解决前端验证码安全性与用户体验平衡问题的技术方案实现

Vue2-Verify&#xff1a;解决前端验证码安全性与用户体验平衡问题的技术方案实现 【免费下载链接】vue2-verify vue的验证码插件 项目地址: https://gitcode.com/gh_mirrors/vu/vue2-verify 在当今Web应用开发中&#xff0c;验证码作为防止自动化攻击的关键安全组件&…...

基于KS距离度量交通流分布偏移:提升DRL交通信号控制鲁棒性的工程实践

1. 项目概述与核心挑战在智能交通系统&#xff08;ITS&#xff09;领域&#xff0c;基于深度强化学习&#xff08;DRL&#xff09;的交通信号控制&#xff08;Traffic Signal Control&#xff09;正从研究走向实际部署。作为一名长期关注AI落地应用的从业者&#xff0c;我见过太…...

PrediPrune:机器学习驱动的编译器超级优化候选剪枝策略

1. 项目概述与核心挑战在编译器优化的世界里&#xff0c;我们总在追求极致的性能。传统的编译器优化器&#xff0c;比如LLVM的Pass&#xff0c;依赖于一系列预定义的、经过验证的转换规则。它们很高效&#xff0c;但想象力也受限于这些规则。超级优化器&#xff08;Superoptimi…...

Actor Framework里的“多米诺骨牌”:一个错误如何让整个嵌套操作者链崩溃?

Actor Framework中的“多米诺效应”&#xff1a;如何避免嵌套操作者链的崩溃 在分布式系统设计中&#xff0c;Actor模型因其天然的并发处理能力而备受青睐。LabVIEW的Actor Framework(AF)通过操作者(actor)的嵌套结构&#xff0c;为复杂系统提供了模块化解决方案。然而&#x…...

第5章 薪资重构——AI时代的程序员价值重估

第5章 薪资重构——AI时代的程序员价值重估 核心问题:AI时代,程序员的薪资会发生怎样的变化?哪些人在涨薪?哪些人在降薪? 5.1 问题定义:薪资分化的真相是什么? 5.1.1 一个令人震惊的数据 2026年第一季度,一个对比让整个技术圈哗然: 同一家公司内部: - 一个AI方向…...

从B站缓存困境到MP4自由:m4s-converter完整解决方案

从B站缓存困境到MP4自由&#xff1a;m4s-converter完整解决方案 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 当B站视频突然下架&#xff0c;那…...