Shell脚本攻略:Linux防火墙

news2024/11/26 21:44:02

目录

一、理论

1.安全技术

2.防火墙

         3.通信五元素和四元素

二、实验

1.iptables基本操作

2.扩展匹配


一、理论

1.安全技术

(1)安全技术

①入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署(默默的看着你)方式。

②入侵防御系统(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式。

③防火墙( FireWall ):隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中。
(2)防火墙分类

①按保护范围划分

主机防火墙:服务范围为当前一台主机。

网络防火墙:服务范围为防火墙一侧的局域网。

②按实现方式划分

硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,华为、深信服等。

软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront。

③按网络协议划分

包过滤防火墙:只对osi模型下四层生效,速度快拆包少。

网络层防火墙:OSI模型下四层,又称为包过滤防火墙。

应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层。

2.防火墙

(1)iptables

netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

 iptables的表、链结构

 规则表—(容纳)—规则链—(容纳)—防火墙规则

①四表

规则表之间的优先顺序:
Raw——mangle——nat——filter

规则表:

1)filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包 内核模块:iptables_filter.
2)Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
3) Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle
4) Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw
 

表1 四表

功能
secure表用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现。
raw表关闭启用的连接跟踪机制,加快封包穿越防火墙速度。
mangel表修改数据标记位规则表。
nat表地址转换规则表。
filter表过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表为filter表。

②五链

表2 五链

功能
INPUT链处理入站数据包。
OUTPUT链处理出站数据包。
FORWARD链转发数据包。
PREROUTING链处理路由选择前数据包。
POSTROUTING链处理路由选择后数据包。

 ③ 匹配流程

流程表、链
入站

                   PREROUTING→INPUT

(nat)          (filter)  

出站

OUT→POSTROUTING

(filter)          (nat)  

转发

PREROUTING→FORWARD→POSTROUTING

(nat)                 (filter)                     (nat)  

(2)黑白名单

      ① 黑名单:默认全部允许通过,添加谁才不允许谁通过。

      ② 白名单:默认全部不允许通过,添加谁允许谁通过。

(3)iptables基本语法

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

(4)iptales选项

管理选项

表3 iptables选项

选项功能
-A在链的末尾追加一条规则。
-I在链的行首插入一条新的规则,若-I 后加数字表示在第几条前插入新规则。
-D 删除规则。
 -P修改默认链的默认规则,默认都是ACCEPT,使用格式:iptables -P 修改的链     修改的默认规则。
-F清空防火墙规则,默认情况filter表,加-t 表名可以情况其他表。
-R 替换某条规则,-R  +要替换的规则编号。
-L 以列表查看iptables,使用组合时必须在最后一位。
-N添加自定义规则链。
-X   删除自定义规则链。

匹配条件

条件功能
-p 指定服务名称,TCP、ICMP等。
-n数字化显示规则表,多用于和-n  -L选项配合看表。
 -v   显示规则表的详细信息。
--line--numbers--line--numbers

(5)控制类型

控制类型需要使用 -j 跳转到某类型处理数据包。

①ACCEPT:允许通过

②REJECT :拒绝通过

③DROP:丢弃,会接受但是将数据包丢弃不处理6、隐藏扩展模块

④SNAT:源地址转换  (内→外)

⑤DNAT:目的地址转换   (外→内)

(6)隐藏扩展模块
iptables在使用-p 指定协议时,若指明特定协议后就无须再使用-m指明扩展模块的扩展机制,例如若已经指明是 -p  tcp 协议则使用--dport及--sport等tcp模块内容时即可省略-m tcp。

①TCP模块

--sport  指明源端口,使用格式: --sport  端口或 端口1:端口2(端口1到端口2的连续端口范围指定)。

--dport  指明目的端口,使用格式: --dport  端口或 端口1:端口2(端口1到端口2的连续端口范围指定)。

②ICMP模块

--icmp-type  指定icmp的type值制定规则。type值:Echo- Request" (代码为8)、表示请求 "Echo- Reply" (代码为0)表示回复 、"Dest ination-Unreachable" (代码为3)表示目标不可达。

(7)显示扩展模块

扩展模块使用格式:  -m  {模块名}   [选项]

①multiport模块

--sports 端口1,端口2 ,等 使用,隔开最多指定15个不连续端口。

--dports 端口1,端口2 ,等 使用,隔开最多指定15个不连续端口。

② iprange模块

iprange模块可以指定连续的(一般不是整个网络)ip地址范围。

--src-range 源地址范围或 目的地址范围。

③mac地址模块

指明源MAC地址,适用INPUT链,PREOUTING,POSTROUTING链。

--mac-source    源mac地址,只能指定源mac地址。

④string字符串模块

可以使用string模块指定字符串范围。

--from offset 字符串开始查询的地方。

--to offset     字符串结束查询的地方  。

⑤connlimit模块

据每客户端IP做并发连接数数量匹配,可防止Dos(Denial of Service,拒绝服务)攻击。

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

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

⑥stat模块

stat模块可以根据连接状态控制数据包。

NEW:新发出的请求;第一次发出的请求。

ESTABLISHED:new之后的正常连接状态。

⑦控制流量模块

limit控制流量模块,可以控制通过的包数以及每分钟或每小时通过的包数。

--limit     10/minute(1分钟之内只允许10个包通过)

--limit-burs    数字    例如: --limit-burst 5(允许通过前5个包,5个包不受影响)
(8)iptables规则保存

将写好的规则导入一个文件中  iptables-save >文件名。

永久保存保存规则的文件重新写入   iptables-restore <保存规则的文件名。

(9)自定义链使用
①自定义链添加:iptables -N web(链名) 创建链

②自定义链改名:iptabels -E web(原来名称) (新名称) 自定义链改名

③创建自定义链规则:iptables -t filter -I web -p icmp -j REJECT 创建自定义规则,iptables的链中添加一条对应到自定义链中才能生效

④iptabales创建对应链规则然后跳转自定义链web:iptables -t filter -I INPUT -p icmp -j web

⑤删除自定义规则链:先删除iptables INPUT链中的对应关系,然后删除自定义链中的规则。
 

3.通信五元素和四元素

(1)五元素

         源IP和目标IP、源端口和目标端口、协议

(2)四元素

      源IP和目标IP、源端口和目标端口

4.总结

(1)管理

增、删、改、查

(2)匹配

ip地址、协议、端口

(3)控制

允许、拒绝、丢弃

二、实验

1.iptables基本操作

(1)详细查看(默认filter表)

清空规则

(2)添加规则

禁止所有地址ping主机

(3)设置允许(不生效),一旦匹配立即终止

查询

(4)带编号查询

(5)重新加入ACCEPT

显示PING通

(6)拒绝单个IP

(7)禁止IP出口

(8)允许出口

(9)指定端口 协议在前,端口在后

(10)删除指定协议

(11)删除指定序号

(12)修改链

(13)清空防火墙规则

(14)拒绝指定网段的端口,80端口协议为tcp

2.扩展匹配

(1)隐藏扩展匹配

拒绝多端口(小端口在前,大端口在后)

(2)显示扩展匹配 (端口无顺序限制)

拒绝对地址池访问

指定MAC地址

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

游戏外包开发技术难点分析

游戏开发涉及多个领域的技术&#xff0c;因此在开发过程中可能会遇到很多技术难点。今天和大家分享一些常见的游戏开发技术难点&#xff0c;希望对大家开发游戏有一定帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 图形渲染…

「料见」vol25.回顾 | PKU-Beaver开源项目团队:一起来聊首个可复现的RLHF基准

为了解决复现RLHF技术和基于RLHF技术的大预言模型的不安全问题&#xff0c;北京大学团队开源了名为PKU-Beaver&#xff08;海狸&#xff09;开源项目。 第25期料见闭门分享会&#xff0c;我“门”非常开心邀请到PKU-Beaver开源项目团队成员——北京大学人工智能研究院助理教授…

欧美同学会第三届“双创”大赛——空天装备产业赛区(浙江诸暨)正式启动,开启报名通道

6月8日&#xff0c;欧美同学会第三届“双创”大赛——空天装备产业赛区&#xff08;浙江诸暨&#xff09;启动仪式暨北京推介会圆满举行。活动由欧美同学会&#xff08;中国留学人员联谊会&#xff09;主办&#xff0c;中共浙江省委统战部支持&#xff0c;浙江省欧美同学会、中…

国内比较火的报表工具测评——Smartbi电子表格软件和Finereport

最近在学习BI软件&#xff0c;因为最近工作中需要开发报表&#xff0c;因此选用了国内市场比较热门的报表工具——Finereport和Spreadsheet进行学习。 BI软件经常会定期发布新的版本&#xff0c;增加新的功能模块&#xff0c;或者对现有功能进行增强&#xff0c;提升运行效率。…

解决pip install -r requirements.txt 超时

解决方案&#xff1a; pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com测试验证

让你的AndroidUI更亮眼:Jetpack Compose中的可视状态

让你的Android UI更亮眼&#xff1a;Jetpack Compose中的可视状态 任何设计系统的重要责任是清晰地表明哪些组件可以与之交互&#xff0c;哪些不行&#xff0c;并让用户知道交互已发生。本博客文章将解释如何监听Jetpack Compose中的用户交互&#xff0c;并创建可重用的视觉指…

关于接口的安全性测试,这几点你必须掌握!

01、接口防刷 1.为什么会有人要刷接口&#xff1f; 牟利&#xff1a;黄牛在 12306 网上抢票再倒卖。 恶意攻击竞争对手&#xff1a;如短信接口被请求一次&#xff0c;会触发几分钱的运营商费用&#xff0c;当量级大了也很可观。 压测&#xff1a;用apache bench 做压力测试。…

高性能计算与AI融合成为刚需|什么是高性能计算?应用领域有哪些?与人工智能的关系梳理

本文一部分转载自杨净 整理自 MEET2023量子位 算力的需求&#xff0c;远比以往来得更为猛烈。甚至有人直呼&#xff1a;得算力者得未来。 元宇宙、AIGC、AI for Science的涌现&#xff0c;又给高性能计算&#xff08;HPC&#xff09;平添了好几把火。 在诸多挑战与机遇共存交…

大数据治理入门系列:数据管理

在如今的大数据时代&#xff0c;每天都会产生大量的新数据&#xff0c;已有数据可能也会频繁更新或转换。因此&#xff0c;需要对数据进行治理和管理&#xff0c;以便高效地开展数据分析、获取数据洞见、挖掘数据价值。否则&#xff0c;杂乱无章的数据只会白白浪费存储空间&…

python基础----10-----python操作mysql

一 前言 对于SQL章节前言->SQL_DQL_排序分页的课程&#xff0c;这里不做记录&#xff0c;因为都是讲MYSQL本身的内容&#xff0c;与python无关。 当然&#xff0c;接下来的课需要用到mysql&#xff0c;所以大家需要自行下载&#xff0c;这并不难。 二 python操作MYSQL基础…

当BPM遇上低代码 “自定义”提升业务管理效率

业务流程管理&#xff08;BPM&#xff09;的历史可以追溯到科学管理和质量管理的发展&#xff0c;并逐步演变为一个更加系统化和综合的管理方法。它在现代组织中起到了优化业务流程、提高效率和质量、增强灵活性和创新能力的重要作用。 从20世纪初的科学管理理论中&#xff0c…

【Linux】什么是进程(process)?

目录 进程与程序概念描述进程-PCBWindows进程与Linux进程Linux进程操作子进程父进程创建进程(初识-fork) 进程与程序概念 在Linux系统中&#xff0c;触发任何一个事件时&#xff0c;系统都会将它定义成为一个进程&#xff0c;并且给予这个进程一个ID&#xff0c;成为PID&#x…

Apikit 自学日记:如何安装 Apikit

Apikit 有三种客户端&#xff0c;你可以依据自己的情况选择。三种客户端的数据是共用的&#xff0c;因此你可以随时切换不同的客户端。 肯定会有和我一样的小白&#xff0c;第一次听说 Apikit这个工具&#xff0c;那么我今天和大家一起学习下这个工具如何安装。 我们推荐使用新…

校招失败后,在小公司熬了 2 年终于进了华为,这次真是竭尽全力了····

其实两年前校招的时候就往华为投了一次简历&#xff0c;结果很明显凉了&#xff0c;随后这个理想就被暂时放下了&#xff0c;但是这个种子一直埋在心里这两年除了工作以外&#xff0c;也会坚持写博客&#xff0c;也因此结识了很多优秀的小伙伴&#xff0c;从他们身上学到了特别…

Angular实现用ng-class和ng-style控制数组最后一个数据为红色

首先我们来看class方案实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>…

Python模块的安装

1.用pip命令安装模块 pip是python官方的编程环境提供的一个命令&#xff0c;主要功能就是安装和卸载第三方模块。 用pip命令安装模块的方法最简单也最常用&#xff0c;这种默认将模块安装在python安装目录中的“site-packages"文件下。 1.1 pip命令安装模块的具体方法 …

MySQL的索引为什么要下推?

文章目录 一、回表操作 二、主键索引 三、非主键索引 四、低版本操作 五、高版本操作 六、总结 一、回表操作 对于数据库来说&#xff0c;只要涉及到索引&#xff0c;必然绕不过去回表操作。当然这也是我们今天所讲的内容的前提基础。说到回表&#xff0c;我们需要从索引…

HarmonyOS学习路之开发篇—Java UI框架(DirectionalLayout)

DirectionalLayout DirectionalLayout是Java UI中的一种重要组件布局&#xff0c;用于将一组组件(Component)按照水平或者垂直方向排布&#xff0c;能够方便地对齐布局内的组件。该布局和其他布局的组合&#xff0c;可以实现更加丰富的布局方式。 DirectionalLayout示意图 支持…

微信小程序实现瀑布流布局效果

一、效果 二、内容 1、xml代码 <!-- 列表 --><view class"list_title">推荐</view><view class"waterfall"><block wx:for"{{list}}" wx:key"index" wx:for-index"id" wx:for-item"itemNam…

cmd进入mysql及常用的mysql操作

cmd进入mysql操作 winR&#xff0c;输入cmd&#xff0c;打开cmd窗口&#xff0c;进入到 mysql bin目录的路径下 第一步&#xff1a;启动mysql服务&#xff0c;可以通过“net start myql”命令实现&#xff1b; 第二步&#xff1a;先使用DOS命令进入mysql的安装目录下的bin目…