Linux系统iptables

目录

一. 防火墙简介

1. 防火墙定义

2. 防火墙分类

①. 网络层防火墙

②. 应用层防火墙

二. iptables

1. iptables定义

2. iptables组成

①. 规则表

②. 规则链

3. iptables格式

①. 管理选项

②. 匹配条件

③. 控制类型

四. 案例说明

1. 查看规则表

2. 增加新规则

3. 替换原有规则

4. 删除原有规则

5. 设置默认策略

6. 通用匹配规则

 ①. 协议匹配

②. 地址匹配

③. 接口匹配

五. 扩展模块

1. 隐含扩展

2. 显示扩展

①. multiport扩展

②. iprange扩展

③. mac地址模块

④. string 字符串模块

⑤. time模块

⑥. connlimit扩展

⑦. state扩展

六. 案例扩展

1. A能ping通B,B不能ping通A

2. 模拟阻止Dos攻击


一. 防火墙简介

1. 防火墙定义

防火墙:就是在Linux下用来进行访问控制功能的。通过自定义防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测、过滤。

2. 防火墙分类

如果按网络协议划分,可分为网络层防火墙、应用层防火墙。

①. 网络层防火墙

网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,目的地址,所用端口号和协议状态等因素,或他们的组合来确定是否允许该数据包通过。

优点:对用户来说透明,处理速度快且易于维护

缺点:无法检查应用层数据,如病毒等

②. 应用层防火墙

应用层防火墙,也称为代理服务器(Proxy Server)

将所有跨越防火墙的网络通信链路分为两段,内外网用户的访问都是通过代理服务器上的“链接”来实现

优点:在应用层对数据进行检查,比较安全

缺点:增加防火墙的负载

注意:现实生产环境中所使用的防火墙一般都是二者结合体

即先检查网络数据,通过之后再送到应用层去检查

二. iptables

1. iptables定义

iptables是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables目录下。

三种报文流向:

流入本机:PREROUTING --> INPUT-->用户空间进程

流出本机:用户空间进程 -->OUTPUT--> POSTROUTING

转发:PREROUTING --> FORWARD --> POSTROUTING

2. iptables组成

①. 规则表

raw表:确认是否对该数据包进行状态跟踪

mangle表:为数据包设置标记

nat表:修改数据包中的源、目IP地址或端口,地址转换

filter表:确认是否放行该数据包,过滤

优先级:raw --> mangle --> nat --> filter

②. 规则链

INPUT:进入到本机的流量

OUTPUT:从本机出去的流量

FORWARD:转发

PREROUTING:路由选择前

POSTROUTING:路由选择后

3. iptables格式

iptables  [-t 表名]  管理选项  [链名]  [匹配条件]  [-j 控制类型]

①. 管理选项

命令说明
-P --policy <链名>定义默认策略
-L --list <链名>查看iptables规则列表
-A --append <链名>在规则列表的最后增加1条规则
-I --insert <链名>在指定的位置插入1条规则
-D --delete <链名>从规则列表中删除1条规则
-R --replace <链名>替换规则列表中的某条规则
-F --flush <链名>删除表中所有规则
-Z --zero <链名>将表中数据包计数器和流量计数器归零
-X --delete-chain <链名>删除自定义链
-v --verbose <链名>与-L他命令一起使用显示更多更详细的信息

②. 匹配条件

命令说明
-i --in-interface 网络接口名>指定数据包从哪个网络接口进入
-o --out-interface 网络接口名>指定数据包从哪个网络接口输出
-p --proto 协议类型指定数据包匹配的协议,如TCP、UDP和ICMP等
-s --source 源地址或子网>指定数据包匹配的源地址
--sport 源端口号>指定数据包匹配的源端口号
--dport 目的端口号>指定数据包匹配的目的端口号
-m --match 匹配的模块指定数据包规则所使用的过滤模块

③. 控制类型

类型说明
ACCEPT运行通过
DROP拒绝通过(收到不回复)
REJECT拒绝通过(收到回复)

四. 案例说明

1. 查看规则表

2. 增加新规则

3. 替换原有规则

4. 删除原有规则

注意:
①. 若规则列表中有多条相同的规则时,按内容匹配只删除的序号最小的一条
②. 按号码匹配删除时,确保规则号码小于等于已有规则数,否则报错
③. 按内容匹配删数时,确保规则存在,否则报错

5. 设置默认策略

注意:

默认规则为允许所有,是黑名单,加入其中的规则才被拒绝。

将ACCEPT改为DROP后,规则为拒绝所有,是白名单,加入其中的规则才被允许。

6. 通用匹配规则

直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件。

 ①. 协议匹配

格式:-p协议名

②. 地址匹配

格式:-s 源地址 、-d目的地址

③. 接口匹配

格式:-i入站网卡、-o出站网卡 

五. 扩展模块

1. 隐含扩展

iptables 在使用-p选项指明了特定的协议时,无需再用 -m 选项指明扩展模块的扩展机制,不需要手动加载扩展模块

要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件。

端口匹配: --sport 源端口、--dport 目的端口

这里的端口可以是个别端口或者范围端口

--tcp-flags ALL ALL  
--tcp_flags ALL NONE
--sport 1000          匹配源端口是1000的数据包
--sport 1000:3000     匹配源端口是1000-3000的数据包
--sport :3000         匹配源端口是3000及以下的数据包
--sport 1000:         匹配源端口是1000及以上的数据包
注意: --sport和--dport 必须配合-p <协议类型>使用
端口可以使用的范围 0-65535

[root@localhost ~]#iptables -A INPUT -p tcp  --sport 10000:30000 -j REJECT 
#10000到30000 全部被拒

TCP标记匹配: --tcp-flags 
TCP标记:SYN,RST,ACK,SYN

[root@localhost ~]#iptables -I INPUT -i ens33 -p tcp --tcp-flags FIN,RST,ACK SYN -j ACCEPT
#丢弃SYN请求包,放行其他包

2. 显示扩展

显示扩展即必须使用-m选项指明要调用的扩展模块名称,需要手动加载扩展模块

①. multiport扩展

以离散方式定义多端口匹配,最多指定15个端口

②. iprange扩展

指明连续的ip地址范围(但一般不是整个网络)

--src-range from[-to]   源IP地址范围
--dst-range from[-to]   目标IP地址范围

③. mac地址模块

mac 模块可以指明源MAC地址,,适用于:PREROUTING, FORWARD,INPUT chains

[root@zabbix-server ~]#ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether ###  00:0c:29:2a:d6:05    ####             
    inet 192.168.91.101/24 brd 192.168.91.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::ce63:27de:ef4d:4f66/64 scope link 
       valid_lft forever preferred_lft forever


[root@localhost ~]#iptables -A INPUT -m mac --mac-source 00:0c:29:2a:d6:05 -j REJECT

④. string 字符串模块

对报文中的应用层数据做字符串模式匹配检测

--algo {bm|kmp} 字符串匹配检测算法
 bm:Boyer-Moore           算法
 kmp:Knuth-Pratt-Morris   算法

--from offset 开始查询的地方
--to offset   结束查询的地方

注意:请求的包不带字符,回复的包带字符,所以要用output

⑤. time模块

根据将报文到达的时间与指定的时间范围进行匹配

⑥. connlimit扩展

根据每客户端IP做并发连接数数量匹配

可防止Dos(Denial of Service,拒绝服务)攻击

--connlimit-upto N #连接的数量小于等于N时匹配
--connlimit-above N #连接的数量大于N时匹配


#模拟攻击
[root@localhost3 ~]# gcc flood_connect.c -o flood
#编译安装 黑客文件
[root@localhost3 ~]# ./flood 192.168.91.100    
#运行黑客脚本

[root@localhost 7-1]#ss 

[root@localhost1 ~]#iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 2 -j REJECT 

⑦. state扩展

  • NEW:新发出请求;连接追踪信息库中不存在此连接的相关信息条目,因此,将其识别为第一次发出的请求

  • ESTABLISHED:NEW状态之后,连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态

  • RELATED:新发起的但与已有连接相关联的连接,如:ftp协议中的数据连接与命令连接之间的关系

  • INVALID:无效的连接,如flag标记不正确

  • UNTRACKED:未进行追踪的连接,如:raw表中关闭追踪

 --state state
 
ipatables  -A INPUT -m state --state   NEW            -j  REJECT
ipatables  -A INPUT  -m state --state  ESTABLISHED    -j   ACCEPT
                  
新用户不可以访问  就用胡可以访问     

六. 案例扩展

1. A能ping通B,B不能ping通A

分析:首先ping命令使用的是icmp协议,进来的请求为8,响应的为0,因此只需要将B的请求做限制即可。

2. 模拟阻止Dos攻击

分析:可以通过连接数判断是否是Dos攻击,因此可以限制连接数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/200936.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

事务基础知识

文章目录 1. 事务的ACID2. 事务隔离级别2.1 数据并发问题2.2 MySQL中的四种隔离级别 1. 事务的ACID 原子性&#xff08;atomicity&#xff09;&#xff1a; 原子性是指事务是一个不可分割的工作单位&#xff0c;要么全部提交&#xff0c;要么全部失败回滚。一致性&#xff08;…

专业的调查问卷平台推荐:提升数据收集与分析效率

无论是学生还是职场人士&#xff0c;想做好一份调查问卷&#xff0c;关键先要确定调查的主题&#xff0c;然后确定调查人群&#xff0c;编辑问题&#xff0c;最后能够尽可能的美化问卷调查的主题。 想要做到这几点&#xff0c;就要要求问卷调查平台: 1、能够帮助你快速制作出一…

初学者如何理解​session、cookie、token的区别与联系?

session、cookie、token。 相信学过接口的朋友都特别熟悉了。 但是对我一个刚接触接口测试的小白来说&#xff0c;属实有点分不清楚。 下文就是我通过查阅各种资料总结出来的一点理解&#xff0c;不准确的地方还请各位指正。 &#xff08;文末送洗浴中心流程指南&#xff09…

面试题:说一下MyBatis动态代理原理?

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.MyBatis简介2.使用步骤2.1、引入依赖2.2、配置文件2.3、接口定义2.4、加载执行 3.原理解析 1.MyBatis简介 MyBatis是一个ORM工具&#xff0c;封装了JDBC的操作&a…

大数据机房迁移该按照什么步骤进行 |数据中心

前言&#xff1a; 机房搬迁不仅仅是把机房的设备迁移到新机房那么简单&#xff0c;而是要求网络系统的迁移和集中存储系统的迁移必须安全平稳&#xff0c;不能过长时间影响生产应用。表面上就是几个IT 民工的搬运&#xff0c;但实际是一项目高度集中的体力与脑力的综合项目。现…

SUKER书客领跑百亿台灯行业发展,用实力树立护眼台灯国货典范

随着近年人们生活水平不断提高&#xff0c;许多人经过疫情后也更加关注生活健康&#xff0c;护眼台灯市场规模也在进一步扩大。因为市场有着广阔的空间&#xff0c;为此吸引了不少企业品牌入局&#xff0c;这也导致行业在近年内野蛮生长&#xff0c;“产品质量不符”、“不符安…

燃料电池汽车市场分析:预计2028年将达到118亿美元

燃料电池汽车( FCV) 是一种用车载燃料电池装置产生的电力作为动力的汽车。车载燃料电池装置所使用的燃料为高纯度氢气或含氢燃料经重整所得到的高含氢重整气。与通常的电动汽车比较, 其动力方面的不同在于FCV 用的电力来自车载燃料电池装置, 电动汽车所用的电力来自由电网充电的…

教你用AI做艺术字,2个月,在小红书接广赚7200元

有段时间没给大家拆账号和完整地上教程了&#xff01;今天就来安排~如何用AI写艺术字&#xff0c;并且在小红薯实现商单BIANXIAN的系统教程.账号很多&#xff0c;我就拿这个AI艺术字搭配治愈系文案来展示下&#xff0c;这个比较有意思&#xff0c;艺术字治愈文案&#xff0c;视…

双指针算法(题目与答案讲解)

文章目录 题目移动零复写零两数之和N数之和(>2个数) 答案讲解移动零复写零两数之和N数之和 题目 力扣 移动零 1、移动零:题目链接 复写零 2、复写零:题目链接 两数之和 3、两数之和题目链接 N数之和(>2个数) 4、N数之和(三个数、四个数) 三个数:题目链接 四个数题目链接…

TDI网络过滤驱动应用(一)

文章目录 TDI网络过滤驱动应用1. 技术概览2. 数据包的抓取3. 应用实例3.1 TrafficShaper(限流)3.2 DnsRedirector(DNS重定向)3.3 TcpRedirector(TCP重定向) 4. 总结与参考 TDI网络过滤驱动应用 在前面的文章中&#xff0c;我们分析了TDI网络过滤驱动的基本开发框架以及TDI网络…

计算机视觉:使用dlib实现人脸检测

1 dlib介绍 Dlib是一个广泛使用的开源库&#xff0c;在计算机视觉和机器学习领域具有重要影响。它是由Davis King在2002年开发&#xff0c;主要用C语言编写&#xff0c;但也提供了Python接口。Dlib结合了高效的算法和易用性&#xff0c;使其成为学术界和工业界的热门选择。 1.…

VR特警野外武装仿真虚拟训练实操教学保证训练效果

特警VR模拟仿真训练软件的优势主要体现在以下几个方面&#xff1a; 真实感和沉浸感&#xff1a;通过VR技术&#xff0c;特警可以在虚拟环境中体验真实的训练场景&#xff0c;如人质解救、反恐行动等。这种真实感和沉浸感可以帮助特警更好地理解和适应实际情况&#xff0c;提高训…

香港人均gdp世界排名,和内地相比怎么样?

香港人均gdp世界排名&#xff0c;和内地相比怎么样&#xff1f; 香港作为世界贸易港口&#xff0c;也是中国最发达的城市之一。其经济相比于北上广深而言&#xff0c;都要发达。香港人均收入世界排名第18&#xff0c;人均收入为4.2万美元&#xff0c;在世界各国人均收入排名中处…

【古月居《ros入门21讲》学习笔记】09_订阅者Subscriber的编程实现

目录 说明&#xff1a; 1. 话题模型 图示 说明 2. 实现过程&#xff08;C&#xff09; 创建订阅者代码&#xff08;C&#xff09; 配置发布者代码编译规则 编译并运行 编译 运行 3. 实现过程&#xff08;Python&#xff09; 创建订阅者代码&#xff08;Python&…

什么是算法?

一、是什么 算法&#xff08;Algorithm&#xff09;是指解题方案的准确而完整的描述&#xff0c;是一系列解决问题的清晰指令&#xff0c;算法代表着用系统的方法描述解决问题的策略机制 也就是说&#xff0c;能够对一定规范的输入&#xff0c;在有限时间内获得所要求的输出 …

【小聆送书第一期】让架构师的成神之路温暖你这个不景气的冬天

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言 书籍一览 ⛳️书籍一⛳️书籍二⛳️书籍三⛳️书籍四⛳️书籍五⛳️书籍六⛳️书…

【广州华锐视点】AI卡通数字人物帮助企业拓展更广阔的市场空间

随着科技的飞速发展&#xff0c;人类对于虚拟世界的探索愈发深入。从最初的文字和图片&#xff0c;到如今的音频、视频&#xff0c;再到未来可能的虚拟现实&#xff0c;我们一直在寻求与虚拟世界更加紧密的联系。在这个过程中&#xff0c;AI卡通数字人物作为一种新兴的角色&…

操作系统 day14(进程同步、进程互斥、互斥的代码实现)

进程同步 概念 进程的异步性体现在&#xff0c;例如&#xff1a;当有I/O操作时&#xff0c;进程需要等待I/O操作&#xff0c;而每个I/O操作又是不同的&#xff0c;所以进程没有一个固定的顺序&#xff0c;固定的时间来执行&#xff0c;而这体现了进程的异步性。 进程互斥 …

数据库管理-第118期 记一次开启附加日志导致的性能问题(202301129)

数据库管理-第118期 记一次开启附加日志导致的性能问题&#xff08;202301129&#xff09; 本周二凌晨&#xff0c;为了配合某国产数据库从Oracle数据库能够实时同步数据&#xff0c;在X9M那套一体机上做了开启附加日志的操作&#xff0c;也正是因为这个操作带来了一些小问题。…

【STM32】OLED显示屏

1 调试方式 1. 串口调试&#xff1a;通过串口通信&#xff0c;将调试信息发送到电脑端&#xff0c;电脑使用串口助手显示调试信息 2. 显示屏调试&#xff1a;直接将显示屏连接到单片机&#xff0c;将调试信息打印在显示屏上 3. Keil调试模式&#xff1a;借助Keil软件的调试模…
最新文章