[Linux] linux防火墙

news2025/1/20 6:01:14

 一、防火墙是什么

防火墙(FireWall):隔离功能,工作在网络或主机的边缘,数据包的匹配规则与由一组功能定义的操作组件处理的规则相匹配,根据特定规则检查网络或主机的入口和出口 当要这样做时,基本上默认情况下执行的是关闭所有通过访问类型的访问,只开放允许访问的策略,外网访问的主机希望位于网络中的 DMZ(非军事区)。

1.1 防火墙的分类

按网络协议划分:

网络层防火墙:OSI模型下四层

应用层防火墙/代理服务器

按保护范围划分:

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

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

按实现方式划分:

硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为, 山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco, Checkpoint, NetScreen

软件防火墙:运行于通用硬件平台之上的防火墙的应用软件

 1.2 Linux防火墙

1.2.1 基本认识

Linux防火墙是由netfilter提供,集成在Linux内核中

1.2.2 防火墙工具

1. firewalld

从CentOS 7 版开始引入了新的前端管理工具

软件包:

firewalld

firewalld-config

管理工具:

firewall-cmd 命令行工具

firewall-config 图形工作

2. iptables

由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告

诉内核如何去处理信息包

3.nftables

nftables 是新的数据包分类框架旨在替代现存的 {ip,ip6,arp,eb}_tables

         简而言之

  • 它在 Linux 内核版本高于 3.13 时可用。
  • 它有一个新的命令行工具 ntf,它的语法与 iptables 不同。
  • 它也包含了一个兼容层,让你在新的 nftables 内核框架之上运行 iptables 命令。
  • 它提供了通用的集合基础允许你建立映射和关联。你可以使用这个新特性把你的规则集分类到多维树中,这大大地减少了找到包最终的行为之前需要检查的规则的数量。
1.2.3 netfilter 的钩子函数

内核中的 Netfilter 会选择五个位置放置五个钩子(hook)函数(INPUT、OUTPUT、FORWARD、 PEROUTING、POSTROUTING),这五个钩子函数暴露给用户,用户可以使用命令工具(iptables) (iptables)编写规则。 iptables 由一个信息过滤器表组成,其中包含控制 IP 数据包处理的规则,规则以链的形式分组。 提示:自 Linux 内核 4.2 版起,Netfilter 在预路由前增加了入口钩子功能。可以使用 这个新的入口钩子早于预路由,基本上取代了 tc 命令(流量控制工具)。 这个新的钩子早于预路由,基本上取代了 tc 命令(流量控制工具)。

四表五链

四表:

RAW表:跟踪数据包

MAGLE表:标记优先级 

NAT表:地址转换

FILTER表:流量过滤,筛选哪些数据包可以通过哪些数据包不可以

五链:

INPUT:进入本机的流量

OUTPUT:出去本机的流量

FORWARD:转发数据包

PREROUTING:路由选择前

POSTROUTING:路由选择后

链的作用是:控制流量的时机

表的作用是:如何控制流量

表中有链,链中有规则

二、iptables

2.1 iptables的组成

iptables 是 Linux 中用于配置和管理防火墙规则的工具。它由一系列表、链和规则组成,以实现网络数据包的过滤和转发。

  1. 表 (Tables):

    • filter 表:默认表,用于过滤数据包。大多数防火墙规则都是在这个表上配置的。
    • nat 表:用于网络地址转换 (NAT)。它用于修改数据包的源或目标地址,通常用于实现网络地址转换。
    • mangle 表:用于修改数据包的特定字段。可以用于修改 TOS (Type of Service) 字段等。
  2. 链 (Chains):

    • INPUT:处理到达本地系统的数据包。
    • OUTPUT:处理从本地系统发出的数据包。
    • FORWARD:处理通过系统的路由功能转发的数据包。
    • PREROUTING:在数据包进入本地系统之前应用的规则(仅适用于 nat 表和 mangle 表)。
    • POSTROUTING:在数据包离开本地系统之前应用的规则(仅适用于 nat 表和 mangle 表)。
  3. 规则 (Rules):

    • iptables 规则是用户定义的规则,用于指定数据包的处理方式。
    • 规则通常包括匹配条件和动作。例如,匹配源 IP 地址并拒绝或允许数据包。
  4. 匹配条件 (Matches):

    iptables 允许您在规则中使用匹配条件,以确定是否应用该规则。常见的匹配条件包括源 IP 地址、目标 IP 地址、端口号等。
  5. 动作 (Targets):

    当规则匹配时,可以指定要执行的动作。常见的动作包括 ACCEPT(接受数据包)、DROP(丢弃数据包)、REJECT(拒绝数据包并发送拒绝通知)等。

 ​​​​​​

2.2 配置操作及语法

iptables防火墙的配置方法:
1、使用iptables命令行。
2、使用firewalld
语法:
iptables [选项] 命令 [链名] 规则规范

选项:用于指定一些额外的配置参数。

命令:表示对 iptables 进行的操作,如 -A(追加规则)、-D(删除规则)、-I(插入规则)等。链名:表示要操作的防火墙链的名称,如 INPUT、OUTPUT、FORWARD 等。

规则规范:定义要添加或操作的规则的规范。

iptables 规则规范:

规则规范由匹配条件和动作两部分组成。

匹配条件:

-p:指定协议,如 tcp、udp、icmp 等。

--sport--dport:指定源端口和目标端口。

-s-d:指定源地址和目标地址。

-i-o:指定进入和离开的网络接口。

动作:

-j:指定动作,如 ACCEPT(允许数据包通过。)、DROP(直接丢弃数据包,不给出任何回 应信息)、REJECT(拒绝数据包通过,必要时会给数据发送端一个响应信息)、LOG(在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则) 等。

常见的 iptables 命令:

指令作用
-A追加
-I插入
-D删除
-P修改默认策略
-F清空策略
-R替换策略

iptables语法总结:

 2.3 添加新的防火墙规则

添加新的防火墙规则时,使用管理选项“-A”、“-I”,前者用来追加规则,后者用来插入规则。

这条规则的含义是:禁止66主机ping通自己

 2.4 查看规则表

格式:
iptables [-t表名] -n -L [链名] |[-- line-numbers]
或
iptables - [vn]L

2.5 删除、清空、替换规则

格式:
删除:iptables -D INPUT 序号 -s -j
清空:iptables -F 
替换:iptables -I INPUT 序号 -s -j

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

2.6 设置默认策略

格式:
iptables [-t表名] -P <链名> <控制类型>

2.7 通用匹配

直接使用,不依赖于其他条件或扩展,如网络协议、IP 地址或网络接口。
协议匹配:-p 协议名称
地址匹配:-s 源地址,-d 目标地址
#IP、网段、域名、NULL(任意地址)。
接口匹配:-i 入站网卡,-o 出站网卡  

白名单的创建

可以ping通真机和自己 

 不可以让其他人png自己

2.8 隐含扩展

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

要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件。
端口匹配: --sport 源端口、--dport 目的端口
#可以是个别端口、端口范围

要求:主机cxk可以ping通cxk2,cxk2不可以ping通cxk

有点不符合要求,可以稍加改进一下,在后面指定ip地址即可 

 2.9 显示 扩展模块

显示扩展即必须使用-m选项指明要调用的扩展模块名称,需要手动加载扩展模块
格式:
[-m matchname [per-match-options]]
2.9.1 multiport扩展

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

[!] --source-ports,--sports port[,port|,port:port]...
#指定多个源端口 逗号隔开
[!] --destination-ports,--dports port[,port|,port:port]...
# 指定多个目标端口 逗号隔开
[!] --ports port[,port|,port:port]...
#多个源或目标端

例子:

 2.9.2 iprange扩展

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

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

例子:

 

2.9.3 time模块

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

--datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]] 日期
--datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]
--timestart hh:mm[:ss]       时间
--timestop hh:mm[:ss]
[!] --monthdays day[,day...]   每个月的几号
[!] --weekdays day[,day...]   星期几,1 – 7 分别表示星期一到星期日
--kerneltz:内核时区(当地时间),不建议使用,CentOS 7版本以上系统默认为 UTC
注意: centos6 不支持kerneltz ,--localtz指定本地时区(默认)

例子:

 按下确认键就失效了,解决办法就是把时间改掉,注意要关掉时间同步,不然一会又失效了

 xshell恢复正常

 2.9.4 connlimit扩展

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

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

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

2.9.5 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

要求:服务器维护,需要禁止新访问,已经在访问的用户无影响

 

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

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

相关文章

机器学习实验四:决策树-隐形眼镜分类(计算信息增益和信息熵以及模型准确率)

决策树-隐形眼镜分类&#xff08;计算信息增益和信息熵以及准确率&#xff09; Title : 使用决策树预测隐形眼镜类型 # Description :隐形眼镜数据是非常著名的数据集 &#xff0c;它包含很多患者眼部状况的观察条件以及医生推荐的隐形眼镜类型 。 # 隐形眼镜类型包括硬材质 、…

MySQL根据binlog恢复数据

简介 本文介绍了使用mysqlbinlog导出数据&#xff0c;根据binlog恢复数据&#xff0c;和导出数据时报需要super权限的解决方法。 环境 MySQL: 5.7.40 说明 MySQL的binlog是数据库服务器在运行过程中产生的日志文件&#xff0c;记录了数据库增删改的操作&#xff0c;可用于恢复和…

YOLOv5独家原创改进:自研独家创新MSAM注意力,通道注意力升级,魔改CBAM

💡💡💡本文自研创新改进:MSAM(CBAM升级版):通道注意力具备多尺度性能,多分支深度卷积更好的提取多尺度特征,最后高效结合空间注意力 1)作为注意力MSAM使用; 推荐指数:五星 MSCA | 亲测在多个数据集能够实现涨点,对标CBAM。 在道路缺陷检测任务中,原始ma…

5.如何利用ORBSLAM3生成可用于机器人/无人机导航的二维/三维栅格地图--以octomap为例

1 octomap的安装及官方文档 这里我们用ROS自带的安装方式即可&#xff1a; sudo apt install ros-melodic-octomap-msgs ros-melodic-octomap-ros ros-melodic- octomap-rviz-plugins ros-melodic-octomap-server 如上图就是安装成功了&#xff1a; 如果安装失败了&#xff0c;…

机器学习——决策树

1.决策树 2.熵&#xff08;不确定程度&#xff09; 3.信息增益 & 信息增益比 3.1 信息增益 & 信息增益比 的 概念 3.2 案例解释说明 &#xff13;.&#xff12;.&#xff11;数据集说明 &#xff13;.&#xff12;.&#xff12;计算 &#xff14;&#xff0e;&#x…

VUE语法-ref和reactive响应式数据引用

1、响应式概述 在vue中定义一个参数&#xff0c;当这个参数在使用中发生了变化&#xff0c;在页面中对这个数据应用的地方都会同步的发生变化&#xff0c;这个就是数据响应式。 2、创建一个非响应式的参数 该程序中采用的是VUE3的用法&#xff1a; 1、在程序中定义了一个局…

【内网安全】搭建网络拓扑,CS内网横向移动实验

文章目录 搭建网络拓扑 ☁环境CS搭建,木马生成上传一句话&#xff0c;获取WebShellCS上线reGeorg搭建代理&#xff0c;访问内网域控IIS提权信息收集横向移动 实验拓扑结构如下&#xff1a; 搭建网络拓扑 ☁ 环境 **攻击者win10地址&#xff1a;**192.168.8.3 dmz win7地址&…

开源免费跨平台数据同步工具-Syncthing

Syncthing是一款开源免费跨平台的文件同步工具&#xff0c;是基于P2P技术实现设备间的文件同步&#xff0c;所以它的同步是去中心化的&#xff0c;即你并不需要一个服务器&#xff0c;故不需要担心这个中心的服务器给你带来的种种限制&#xff0c;而且类似于torrent协议&#x…

视图层、模板(补充)

视图层 响应对象 响应---》本质都是 HttpResponse HttpResponse---》字符串render----》放个模板---》模板渲染是在后端完成 js代码是在客户端浏览器里执行的模板语法是在后端执行的redirect----》重定向 字符串参数不是是空的状态码是 3开头JsonResponse---》json格式数据 …

软著项目推荐 深度学习卷积神经网络的花卉识别

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…

JVM——产生内存溢出原因

目录 1.产生内存溢出原因一 &#xff1a;代码中的内存泄漏1.案例1&#xff1a;equals()和hashCode()导致的内存泄漏问题&#xff1a;**正常情况**&#xff1a;**异常情况&#xff1a;**解决方案&#xff1a; 2.案例2&#xff1a;内部类引用外部类问题&#xff1a;解决方案&…

振南技术干货集:各大平台串口调试软件大赏(2)

注解目录 &#xff08;串口的重要性不言而喻。为什么很多平台把串口称为 tty&#xff0c;比如 Linux、MacOS 等等&#xff0c;振南告诉你。&#xff09; 1、各平台上的串口调试软件 1.1Windows 1.1.1 STCISP &#xff08;感谢 STC 姚老板设计出 STCISP 这个软件。&#xf…

MySQL 中的锁(一)

MySQL 中的锁 按照 MySQL 官方的说法&#xff0c;InnoDB 中锁可以分为&#xff1a; 可见&#xff0c;InnoDB 中锁非常多&#xff0c;总的来说&#xff0c;可以如下分类&#xff1a; 这些锁都是做什么的&#xff1f;具体含义是什么&#xff1f;我们现在来一一学习。 8.1. 解…

Nginx性能调优策略

Nginx是一个高性能的Web服务器和反向代理服务器&#xff0c;常用于处理高并发的请求。以下是一些常见的Nginx性能调优策略&#xff1a; 一、调整worker_processes和worker_connections 在Nginx配置文件中&#xff0c;可以通过worker_processes和worker_connections参数来调整w…

CLIPTokenizer.from_pretrained本地加载

以"openai/clip-vit-large-patch14"为例&#xff0c;原代码为&#xff1a; self.tokenizer CLIPTokenizer.from_pretrained(“openai/clip-vit-large-patch14”) self.transformer CLIPTextModel.from_pretrained(“openai/clip-vit-large-patch14”) 但我连不到外…

ArkTS-取消标题与自定义标题栏

文章目录 取消标头自定义标题栏导入Resources自定义跳转动画关于底部tabBar导航文本输入(TextInput/TextArea)自定义样式添加事件可以是onChange可以是onSubmit List列表组件设置主轴方向 网格布局服务卡片-获取地理位置页面获取地理位置服务卡片获取地理位置 可以先看看&#…

移民同步进行|企业高管自费赴美国奥本大学访学

K经理申请了美国杰出人才移民&#xff0c;已经获批I-140&#xff0c;正在排期中&#xff0c;尚未获得绿卡。为了使孩子同步美国学制&#xff0c;K经理希望先以访问学者身份带孩子出国接受免费公立教育。最终我们落实了奥本大学的职位&#xff0c;申请人及孩子顺利获签出国&…

VSCODE+QEMU+WSL调试RISCV代码(SBI、kernel)

前言 最近在对RISC-V架构比较感兴趣&#xff0c;正好手头有《RISC-V体系结构编程与实践》的书籍&#xff0c;就打算跟随笨叔将这块的知识学习起来&#xff0c;最开始当然是需要搭建一个基础的实验平台&#xff0c;本来笨叔是贴心的提供了VMare的环境&#xff0c;奈何天生叛逆的…

Matlab下载许可证文件 教程(在账号有许可证的前提下)

文章目录 Part.I IntroductionPart.II 许可证文件过期解决方案Chap.I 使用 Internet 自动激活Chap.II 在不使用 Internet 的情况下手动激活 Part.I Introduction 本文主要介绍&#xff0c;在 Mathwork 账号有许可证的前提下&#xff0c;下载许可证的操作流程。 好久没有用 Mat…

OSCP系列靶场-Esay-1

总结 getwebshell : ftp可匿名登录 → 发现隐藏文件夹 → 发现ssh密钥 → 猜解ssh用户名 → ssh密钥登录 提 权 思 路 : 发现suid权限文件 → cpulimit提权 准备工作 启动VPN 获取攻击机IP → 192.168.45.191 启动靶机 获取目标机器IP → 192.168.179.130 信息收集-端口扫…