Cyber Security 101-Security Solutions-Firewall Fundamentals(防火墙基础)

devtools/2025/1/23 2:14:07/

了解防火墙并亲身体验 Windows 和 Linux 内置防火墙。

任务1:防火墙的用途是什么

我们看到商场、银行、 餐馆和房屋。这些警卫被安置在 这些区域用于检查进出人员。这 维护此检查的目的是确保没有人在没有 被允许。这个警卫充当了他所在区域和访客之间的一堵墙。

每天都有大量传入和传出流量在 我们的数字设备和它们所连接的互联网。如果 有人偷偷溜进来,却没有被抓住? 那时我们还需要一个保安来维护我们的数字设备,他可以检查进出他们的数据。这个保安是我们称之为防火墙。防火墙旨在检查网络或数字设备的传入和传出流量。目标是 与坐在建筑物外的保安相同:不是 允许任何未经授权的访问者进入系统或网络。您可以通过为防火墙提供规则来指示防火墙以检查所有流量。什么 进出您的设备或网络将首先面临防火墙。防火墙将根据 它维护的规则。如今,大多数防火墙都超越了基于规则的 过滤并提供额外的功能来保护您的设备或 来自外部世界的网络。我们将讨论所有这些防火墙和 对少数 API 进行实际实验室演示。

学习目标

完成房间后,您将对以下领域有基本的了解:

  • 防火墙的类型
  • 防火墙规则及其组件
  • 动手操作 Windows 内置防火墙 
  • 动手 Linux 内置防火墙 

会议室先决条件


任务2:防火墙的类型

防火墙部署在组织之后的网络中变得普遍 发现他们能够从其系统中过滤有害流量 和网络。引入了几种不同类型的防火墙 之后,每个都有独特的目的。同样重要的是要注意,不同类型的防火墙适用于不同的 OSI 模型层。防火墙分为多种类型。

让我们来看看一些最常见的防火墙类型和 他们在 OSI 模型中的角色。

无状态防火墙

这种类型的防火墙在 OSI 模型的第 3 层和第 4 层上运行并工作 仅通过根据预先确定的规则过滤数据而不采用 记下先前连接的状态。这意味着它将匹配 每个数据包都包含规则,无论它是否是 合法连接。它不保留有关 以前的连接来为未来的数据包做出决策。因此, 这些防火墙可以快速处理数据包。但是,他们不能 根据数据与 以前的连接。假设防火墙拒绝了来自 基于其规则的单一来源。理想情况下,它应该丢弃所有 future 来自此源的数据包,因为之前的数据包无法遵守 替换为防火墙的规则。然而,防火墙一直忘记这一点, 来自此源的未来数据包将被视为新数据包和匹配数据包 再次按照它的规则。

状态防火墙

与无状态防火墙不同,这种类型的防火墙超越了 按预先确定的规则过滤数据包。它还会跟踪 以前的连接并将其存储在 state 表中。这增加了另一个 通过根据数据包的历史记录检查数据包 连接。有状态防火墙在 OSI 模型。假设防火墙接受来自源的几个数据包 address 的 URL 中。在这种情况下,它将注意到这一点 connection 并允许所有未来的数据包 connection 自动获得允许,而无需检查它们中的每一个。 同样,有状态防火墙会记录 他们拒绝一些数据包,并根据此信息拒绝所有数据包 来自同一源的后续数据包。

代理防火墙

以前的防火墙的问题是它们无法检查 数据包的内容。代理防火墙或应用程序级 网关充当私有网络和 Internet 并在 OSI 模型的第 7 层上运行。他们检查 所有内容。网络中用户发出的请求 在检查后由此代理转发,并使用其 自己的 IP 地址,为内部 IP 地址提供匿名性。 内容过滤策略可应用于这些防火墙以允许/拒绝 基于其内容的传入和传出流量。

下一代防火墙 (NGFW)

这是从第 3 层运行的最先进的防火墙类型 到 OSI 模型的第 7 层,提供深度数据包检测和其他 增强传入和传出安全性的功能 网络流量。它有一个入侵防御系统,可以阻止 恶意活动。它通过以下方式提供启发式分析 分析攻击模式并立即阻止它们 到达网络。NGFW 具有 SSL/TLS 解密功能,该功能 解密数据包后检查数据包,并将数据与 威胁情报源用于做出有效的决策。

表格 下面列出了每个防火墙的特征,这将帮助您选择 最适合不同用例的防火墙。

防火墙特性
无状态防火墙- 基本过滤
- 不跟踪以前的连接
- 高效实现高速网络
状态防火墙- 通过模式
识别流量 - 复杂的规则可以是 applicable
- 监控网络连接
代理防火墙- 同时
检查数据包中的数据 - 提供内容 过滤选项
- 提供应用程序控制
- 解密和检查 SSL/TLS 数据包
下一代防火墙- 提供高级威胁防护
- 带有入侵 预防系统
- 根据启发式识别异常 analysis
- 解密和检查 SSL/TLS 数据包


任务3:防火墙中的规则

防火墙可让您控制网络流量。虽然它 根据其内置规则过滤流量,可以为各种网络定义一些自定义规则。例如,有 将是希望拒绝所有传入的 SSH 流量的网络 他们的网络。但是,您的网络需要允许来自少数 特定 IP 地址。这些规则允许您配置这些自定义的 设置网络的传入和传出流量。

这 防火墙规则的基本组成部分如下所述:

  • 源地址:计算机的 IP 地址,该地址将 发起流量。
  • 目的地地址:计算机的 IP 地址 将接收数据。
  • 港口:流量的端口号。
  • 协议:将在 沟通。
  • 行动:这定义了在识别此特定性质的任何流量时将采取的操作。
  • 方向:此字段定义规则的 适用于传入或传出流量。

操作类型

规则中的组件 “Action” 指示之后要采取的步骤 数据包属于 defined rule 的类别。三大 下面介绍了可应用于规则的操作。

允许

规则的 “Allow” 操作表示 将允许在规则中定义的特定流量。

为 示例,让我们创建一个规则,其中包含一个操作以允许所有传出 来自我们网络的端口 80 的流量(用于到 互联网)。

行动目的地协议港口方向
允许192.168.1.0/24任何TCP 协议80出境
否认

规则的 “Deny” 操作意味着流量 将被阻止且不允许。这些规则 是安全团队拒绝特定流量传入的基础 来自恶意 IP 地址,并创建更多规则以减少威胁 网络表面。

例如,让我们创建一个规则,其中包含一个操作来拒绝端口 22 上的所有传入流量(用于远程 通过 SSH 连接到机器)。

行动目的地协议港口方向
否认任何192.168.1.0/24TCP 协议22入境
向前

操作 “Forward” 将流量重定向到 使用在 防火墙。这适用于提供路由功能并充当 不同网段之间的网关。

例如,让我们创建一个规则,其中包含一个操作,用于将端口 80 上的所有传入流量(用于 HTTP 流量)转发到 Web 服务器。192.168.1.8

行动目的地协议港口方向
向前任何192.168.1.8TCP 协议80入境

规则的方向性

防火墙具有不同类别的规则,每种规则都基于以下类别进行分类 在创建规则所依据的 Traffic directionality 上。让我们 检查这些方向性中的每一个。

入站规则

规则被归类为入站 规则,当它们仅应用于传入流量时。为 例如,您可以在 Web 上允许传入的 HTTP 流量(端口 80) 服务器。

出站规则

这些规则是为传出的 仅流量。例如,阻止所有传出 SMTP 流量(端口 25) 从除 Mail Server 之外的所有设备。

转发规则

创建转发规则是为了 转发网络内的特定流量。例如,将 可以创建规则以将传入的 HTTP(端口 80)流量转发到 位于您网络中的 Web 服务器。


任务4:Windows Defender防火墙

启动机器

让我们通过按下下面给出的 Start Machine 按钮来启动虚拟机。设备将以分屏模式启动。

如果 VM 不可见,请使用页面顶部的蓝色 Show Split View 按钮。您还可以使用以下 RDP 凭据通过自己的 VPN 连接计算机与计算机连接:

Windows Defender 防火墙

Windows Defender 是 Microsoft 在 Windows 操作系统。此防火墙包含以下所有基本功能 创建、允许或拒绝特定程序或创建自定义程序 规则。此任务旨在涵盖一些基本组件 Windows Defender 防火墙,您可以利用它来限制您的 系统的传入和传出网络流量。要打开此防火墙,您必须打开 Windows 搜索并 键入“Windows Defender 防火墙”。

Windows Defender 防火墙的主页显示“网络 Profiles“和可用选项。这是包含防火墙所有选项的主仪表板。

网络配置文件

有两个可用的网络配置文件。Windows 防火墙确定 基于网络位置感测 (NLA) 的当前网络,以及 为您应用该配置文件防火墙设置。我们可以为他们每个人设置不同的防火墙。

  1. 专用网络这包括在连接到我们的家庭网络时要应用的防火墙配置。
  2. 来宾或公共网络这包括在连接到公共或不受信任的防火墙时要应用的防火墙配置 网络,如咖啡店、餐馆或类似网络。例如,当 连接到公共网络时,可以将防火墙设置配置为 阻止所有传入的网络连接,并仅允许一些传出的网络连接 对您来说至关重要的联系。这些设置将应用于 public network 配置文件,当您处于 专用家庭网络

要允许/禁止任何网络配置文件中的任何应用程序,请单击选项(在屏幕截图中突出显示为 1)。他将带您进入列出系统中安装的所有应用程序和功能的页面。您可以选中任何网络配置文件中要允许的那些,或者如果不需要,请取消选中这些。默认情况下,Windows Defender 防火墙处于打开状态。但是,如果您想打开/关闭它,您可以单击该选项(在屏幕截图中突出显示为 2)。这将带您进入两个网络配置文件的设置。除了完全关闭它(Microsoft 不建议这样做)之外,您还可以阻止所有传入连接。您还可以随时从主仪表板单击“恢复默认值”(在屏幕截图中突出显示为 3)以恢复防火墙的所有默认设置。

自定义规则

Windows Defender 防火墙还允许您为 您的网络根据需要允许/禁止特定流量。让我们创建一个自定义规则来阻止 HTTP(端口 80)或 HTTPS(端口 443)上的所有传出流量。创建此规则后,我们将无法浏览 Internet 上的任何网站,因为这些网站正在使用端口 80 或 443。 我们将阻止它。

在创建此规则之前,我们来测试一下我们是否能够访问网站。为了测试,让我们访问 .如下面的屏幕截图所示,我们能够访问此网站。http://10.10.10.10/

要创建自定义规则,请从主控制面板的可用选项中选择“高级设置”。这将打开 一个新选项卡,您可以在其中创建自己的规则。

注意: 下面创建的规则已在连接的 VM 中可用。如果要测试它,可以在 Windows 主机或任何其他计算机上创建它。

您可以查看用于创建入站和出站的可用选项 规则。

让我们创建一个出站规则来阻止所有传出的 HTTP 和 HTTPS 流量。为此,请单击左侧的 出站规则 选项,然后单击右侧的 新建规则 。它将打开规则向导。在第一步中,选择 自定义 选项,然后按 下一步.

在第二步中,选择 所有程序 从下一个选项中,然后按 下一步.它将要求您在第三步中选择协议类型。选择 协议类型 作为 “TCP”,保持 本地端口 不变,然后从下拉列表中将 远程端口 更改为 “特定端口”。编写 下面字段中的端口号(在我们的例子中为 80,443)。现在,点击 下一步.

注意:用逗号分隔端口号,然后 请不要在它们之间留空格。

在 Scope (范围) 选项卡中,保持本地和远程 IP 地址不变,然后按 Next (下一步) 按钮。在 操作 选项卡中,启用 阻止连接 选项,然后按 下一步

在 Profile (配置文件) 选项卡中,我们保持所有网络配置文件的选中状态。最后,最后阶段是为您的规则指定一个名称和一个可选的 description 并按 Finish 按钮。

我们可以看到我们的规则位于可用的出站规则中。

现在,让我们通过浏览到来测试我们的规则。我们 收到一条错误消息,指出我们无法访问此页面,这意味着该规则有效。http://10.10.10.10/

锻炼

安全团队 注意到其 critical 上的可疑传入和传出流量 Windows 系统。他们在 Windows Defender 防火墙上创建了规则,以 阻止他们的一些特定网络流量。您的任务是回答 通过查看创建的 规则。


任务5:Linux iptables防火墙

在上一个任务中,我们讨论了 Windows 操作系统。如果您是 Linux 用户怎么办?您仍然需要控制 通过您的网络流量。Linux 还提供了 内置防火墙。我们在此处提供了多个防火墙选项。 让我们简要回顾其中的大部分并详细探讨其中的一个。

网络过滤器

Netfilter 是 Linux 操作系统内部的框架,具有核心防火墙功能,包括数据包过滤、NAT 和连接 跟踪。此框架是 Linux 中可用于控制网络流量的各种防火墙实用程序的基础。下面列出了一些使用此框架的常见防火墙实用程序:

  • iptables 中:这是 中使用最广泛的实用程序 许多 Linux 发行版。它使用 Netfilter 框架,该框架提供各种功能来控制网络流量。
  • nftables 中:它是 “iptables” 实用程序的后继者,具有增强的数据包过滤和 NAT 功能。是的 也基于 Netfilter 框架。
  • firewalld 的此实用程序也可以在 Netfilter 上运行 框架,并具有预定义的规则集。它的工作方式与 其他,并带有不同的预建网络区域 配置。

UFW

ufw(简单防火墙),顾名思义,消除了 在 “iptables”(或其 successor) 通过为您提供更简单的界面。它不止于 适合初学者。基本上,无论你在 “iptables” 中需要什么规则,你都可以通过 ufw 用一些简单的命令来定义它们,然后在 “iptables” 中配置你想要的规则。让我们看看下面的一些基本 ufw 命令。

要检查防火墙的状态,您可以使用以下命令:

user@ubuntu:~$ sudo ufw status
Status: inactive

如果它显示为非活动状态,您可以使用以下命令启用它 命令:
 

user@ubuntu:~$ sudo ufw enable
Firewall is active and enabled on system startup

要关闭防火墙,请在 above 命令。

下面是一个规则,用于允许来自 Linux 计算机的所有传出连接。命令中的 表示我们将此策略定义为默认策略,允许所有传出流量,除非我们在单独的规则中对任何特定应用程序定义传出流量限制。您还可以通过在以下命令中替换 来制定规则来允许/拒绝进入您计算机的流量:defaultoutgoingincoming

user@ubuntu:~$ sudo ufw default allow outgoing
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)

您可以拒绝系统中任何端口的传入流量。假设我们想要阻止传入的 SSH 流量。我们可以通过命令 来实现这一点。如您所见,在本例中,我们首先指定了 action;此外,我们指定了端口和传输协议,即 TCP 端口 22,或简称 .ufw deny 22/tcpdeny22/tcp

user@ubuntu:~$ sudo ufw deny 22/tcp
Rule added
Rule added (v6)

要按编号顺序列出所有活动规则,您可以使用以下内容 命令:

列出所有规则
user@ubuntu:~$ sudo ufw status numberedTo                         Action      From--                         ------      ----
[ 1] 22/tcp                     DENY IN     Anywhere                  
[ 2] 22/tcp (v6)                DENY IN     Anywhere (v6)   

要删除任何规则,请使用规则执行以下命令 要删除的号码:

user@ubuntu:~$ sudo ufw delete 2
Deleting:deny 22/tcp
Proceed with operation (y|n)? y
Rule deleted (v6)

这些不同的实用程序可用于管理 Netfilter。为 Linux 操作系统选择合适的实用程序取决于多种因素,例如对操作系统的熟悉程度和您的要求。您可以通过以下方式测试您对 Linux 防火墙的了解 创建此任务中定义的一些规则并对其进行测试以确保它们 正在按预期工作。


http://www.ppmy.cn/devtools/152749.html

相关文章

【C++】模板(进阶)

本篇我们来介绍更多关于C模板的知识。模板初阶移步至:【C】模板(初阶) 1.非类型模板参数 1.1 非类型模板参数介绍 模板参数可以是类型形参,也可以是非类型形参。类型形参就是我们目前接触到的一些模板参数。 //类型模板参数 …

WebSocket——推送方案选型

一、前言:为何需要服务端主动推送? 在现代应用中,很多功能都依赖于“消息推送”。比如: 小红点提醒:我们经常在手机应用里看到的一个小红点提示,表示有新的消息或任务需要我们关注。新消息提醒&#xff1…

Vue.js组件开发-实现后端返回二进制文件在浏览器自动下载

在Vue.js组件开发中,若需实现从后端获取二进制文件并触发浏览器自动下载,可以利用axios(或其他HTTP客户端库)来向后端发送请求,随后利用Blob对象及URL.createObjectURL方法生成一个可供下载的链接,最后通过…

Spring Boot自动配置原理:如何实现零配置启动

引言 在现代软件开发中,Spring 框架已经成为 Java 开发领域不可或缺的一部分。而 Spring Boot 的出现,更是为 Spring 应用的开发带来了革命性的变化。Spring Boot 的核心优势之一就是它的“自动配置”能力,它极大地简化了 Spring 应用的配置…

c++学习第七天

创作过程中难免有不足&#xff0c;若您发现本文内容有误&#xff0c;恳请不吝赐教。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考。 一、const成员函数 //Date.h#pragma once#include<iostream> using namespace std;class Date { public:Date…

vue项目创建与运行(idea)

一、安装vue 在安装完node.js后 使用管理员身份运行命令行&#xff0c;在命令行中&#xff0c;执行如下指令&#xff1a; npm install -g vue/cli 这个过程中&#xff0c;会联网下载&#xff0c;可能会耗时几分钟&#xff0c;耐心等待。 以管理员身份运行cmd检查版本 idea创…

Spring Boot 中的 InitializingBean:Bean 初始化背后的故事

在 Spring Boot 应用中&#xff0c;Bean 的生命周期管理至关重要。InitializingBean 接口允许 Bean 在完成属性注入后执行自定义初始化逻辑。本文将深入探讨 InitializingBean 接口在 Spring Boot 中的应用&#xff0c;揭示其工作原理&#xff0c;并分享一些最佳实践&#xff0…

什么是三高架构?

大家好&#xff0c;我是锋哥。今天分享关于【什么是三高架构?】面试题。希望对大家有帮助&#xff1b; 什么是三高架构? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 “三高架构”通常是指高可用性&#xff08;High Availability&#xff09;、高性能&#xff…