0Pricing
Cloud & IT Cert Prep · 课时

基于主机的防火墙与应用允许列表

配置基于主机的防火墙(Windows Defender 防火墙、iptables)和应用允许列表,阻止未经授权的软件执行。

基于主机的防火墙与应用允许列表 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

基于主机的防火墙与网络防火墙

网络防火墙 位于网络边界,过滤网络分段之间的流量。基于主机的防火墙 运行在单个 Endpoint 上,过滤进出该计算机的流量。基于主机的防火墙提供纵深防御:即使攻击者绕过了网络防火墙(通过 VPN、遭到入侵的内部人员,或从其他受感染主机进行横向移动),主机防火墙仍会强制执行本地流量规则。对于经常离开企业边界并连接到不可信网络的笔记本电脑,这类防火墙尤其重要。

Windows Defender Firewall

Windows Defender Firewall (WDF) 是所有现代 Windows 版本内置的主机防火墙。它支持三种配置文件:Domain(已连接到企业域,通常限制较少)、Private(受信任的家庭网络)和 Public(不可信网络,限制最严格)。WDF 规则可以根据端口、协议、应用程序路径、远程 IP 和用户身份进行过滤。Windows Defender Firewall with Advanced Security (WFAS) MMC 管理单元和 Group Policy 支持集中管理整个企业中所有已加入域的计算机上的防火墙规则。

# Windows: create inbound firewall rule
netsh advfirewall firewall add rule \
  name='Block Telnet' \
  dir=in \
  action=block \
  protocol=TCP \
  localport=23

# PowerShell equivalent
New-NetFirewallRule \
  -DisplayName 'Block Telnet Inbound' \
  -Direction Inbound \
  -Protocol TCP \
  -LocalPort 23 \
  -Action Block

Linux 的 iptables 和 nftables

Linux 主机防火墙使用 网络过滤器内核框架,可通过 传统数据包过滤工具(仍广泛使用)或现代的 新型数据包过滤工具进行配置。规则被组织到表(filter、nat、mangle)中的链(INPUT、OUTPUT、FORWARD)内。默认 Policy 应设置为 DROP,并仅针对所需流量明确设置 ACCEPT 规则,这就是默认拒绝的安全态势。简易防火墙工具(Ubuntu)和 防火墙管理服务(RHEL/CentOS)等更高层工具提供了更友好的界面,但底层仍使用网络过滤器。

# iptables: deny-by-default with selective allow
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow SSH from specific subnet only
iptables -A INPUT -s 10.10.0.0/24 -p tcp --dport 22 -j ACCEPT

# Allow HTTPS
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Save rules
iptables-save > /etc/iptables/rules.v4

应用层防火墙规则

基于主机的防火墙可以在应用层强制执行规则:根据生成流量的应用程序进行过滤,而不仅仅是根据端口过滤。Windows Defender Firewall 支持基于应用程序的规则:允许 C:\Program Files\MyApp\app.exe 建立出站连接,同时阻止同一端口上的其他所有连接。这可以防止恶意软件伪装成受信任的应用程序来劫持已允许的端口。应用层规则的有效性明显高于仅按端口设置的规则,后者可能被绑定到 443 等常用端口的恶意软件绕过。

# Windows: firewall rule scoped to a specific app
New-NetFirewallRule \
  -DisplayName 'Allow Chrome HTTPS' \
  -Direction Outbound \
  -Program 'C:\Program Files\Google\Chrome\Application\chrome.exe' \
  -Protocol TCP \
  -RemotePort 443 \
  -Action Allow

# Blocks any OTHER process trying to use port 443
# unless that process also has an explicit ALLOW rule

什么是应用程序 Allowlisting

应用程序 Allowlisting(以前称为白名单)是一种安全控制措施,只允许在 Endpoint 上执行明确批准的应用程序。不在允许列表中的任何可执行文件都会被阻止,无论它是恶意软件还是仅仅是未经批准的软件。这是抵御恶意软件的强大防线,因为即使是新出现的零日恶意软件,只要不在批准列表中也会被阻止。其挑战在于运营管理:在大型、动态环境中管理允许列表需要成熟的变更管理流程;如果调整不当,还会产生大量支持工单。

Windows AppLocker

AppLocker 是 Windows 内置的应用程序控制功能,可用于 Enterprise 和 Education 版本。它可以按以下方式过滤执行:路径(阻止从 %TEMP% 或用户可写目录运行的可执行文件)、文件哈希(仅允许已知安全的哈希值)或 publisher(允许由 Microsoft 或 Adobe 签名的软件)。AppLocker 策略通过 Group Policy 部署,并记录到 Windows Event Log(事件 ID 8003 = 已阻止)。先在 Audit Mode 中运行 AppLocker——记录阻止事件但不强制执行——可以让团队在开始强制执行前调整允许列表。

# AppLocker rule examples (Group Policy)

# Block executables in user-writable locations
Path Rule: C:\Users\*\AppData\*.exe -> DENY
Path Rule: C:\Windows\Temp\*.exe -> DENY

# Allow by publisher (certificate)
Publisher Rule: O=Microsoft, CN=* -> ALLOW
Publisher Rule: O=Adobe, CN=Adobe Acrobat -> ALLOW

# Hash rule for specific approved version
Hash Rule: SHA256:a1b2c3d4... -> ALLOW

# Check AppLocker events:
Get-WinEvent -LogName 'Microsoft-Windows-AppLocker/EXE and DLL'

Windows Defender Application Control (WDAC)

WDAC 是 AppLocker 功能更强的后继者,在内核级别而非用户空间强制执行。与 AppLocker 不同,拥有本地管理员权限的攻击者也无法绕过 WDAC,因此它是高安全性环境的首选控制措施。WDAC 策略以 XML 编写,然后转换为通过 MDM(Intune)或 Group Policy 部署的二进制策略文件。WDAC 还支持集成 Intelligent Security Graph (ISG),利用 Microsoft 的云信誉服务自动允许信誉可信的软件,从而减少手动维护允许列表的运营负担。

Allowlisting 的挑战

Allowlisting 功能强大,但运营管理要求很高。常见挑战包括:LOLBins(就地取材型二进制文件)——攻击者使用 PowerShell、wscript.exe 和 mshta.exe 等通常存在于所有允许列表中的 Windows 系统工具;因此,Allowlisting 必须限制这些工具的调用方式,而不仅仅是限制它们能否运行。脚本语言(PowerShell、Python)通常会被列入允许列表,但仍可能执行恶意代码。误报——允许列表阻止了合法软件——会产生服务台工单,并带来削弱控制措施的压力。成熟的 Allowlisting 计划会通过额外的 Constrained Language Mode 策略处理 LOLBins。

# Restricting PowerShell with Constrained Language Mode
# Applied via WDAC when non-WDAC code runs
$ExecutionContext.SessionState.LanguageMode
# Full Language mode -> normal PowerShell
# Constrained Language -> no .NET, no COM objects
#   Blocks many attack techniques

# Via Group Policy: force PowerShell logging
# Computer Config > Admin Templates > Windows Components
# > Windows PowerShell
# Enable: Module Logging, Script Block Logging, Transcription

Allowlisting 与拒绝列表

Allowlisting 只允许明确批准的项目,并阻止其他所有项目,提供更强的安全态势。拒绝列表(黑名单)只阻止明确已知的恶意项目,允许其他所有项目,这是传统防病毒软件采用的模型。拒绝列表无法应对未知威胁;Allowlisting 则无法有效应对 LOLBins 和范围过于宽泛的允许条目。大多数成熟的安全计划会将 Allowlisting 作为关键系统的主要控制措施,同时使用行为检测(EDR)发现对已允许应用程序的滥用。对于不太关键的系统,经过良好调整并配合行为监控的拒绝列表可能已经足够。

结合使用防火墙和 Allowlisting

基于主机的防火墙和应用程序 Allowlisting 是互补的分层控制措施。允许列表阻止未经授权的代码执行;防火墙阻止已获授权但已遭入侵的代码建立未经授权的网络连接。二者结合,可在 Endpoint 的应用层和网络层实施最小权限原则。再加入 EDR 作为第三层,就能形成纵深防御体系,让每项控制措施捕获其他措施可能遗漏的威胁,大幅提高针对 Endpoint 的成功攻击所需付出的成本和复杂性。

# Endpoint defense-in-depth stack
Layer 1: Application Allowlisting (WDAC)
  -> Blocks unauthorized executables from running

Layer 2: Host-Based Firewall (WDF)
  -> Blocks unauthorized network connections
  -> Even from allowlisted apps on non-standard ports

Layer 3: EDR (CrowdStrike/Defender for Endpoint)
  -> Detects behavioral anomalies in allowed processes
  -> Catches LOLBin misuse, process injection
  -> Provides forensic telemetry for investigation

防火墙日志记录与监控

基于主机的防火墙的价值取决于其生成的日志。启用被阻止连接的日志记录,以捕获攻击尝试和策略违规。对敏感规则(例如允许管理工具的规则)启用已允许连接的日志记录,以维护审计轨迹。将防火墙日志转发到 SIEM 进行关联分析——单个主机上反复出现被阻止的出站连接,可能表明恶意软件正在尝试回连 C2。在 Windows 上,防火墙日志默认写入 %systemroot%\System32\LogFiles\Firewall\pfirewall.log,并应通过 Windows Event Forwarding (WEF) 或日志代理进行转发。

# Enable Windows Firewall logging via PowerShell
Set-NetFirewallProfile -All \
  -LogBlocked True \
  -LogAllowed True \
  -LogMaxSizeKilobytes 16384 \
  -LogFileName '%systemroot%\System32\LogFiles\Firewall\pfirewall.log'

# Linux: log dropped packets with iptables
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 5/min -j LOG \
  --log-prefix 'IPtables-Dropped: ' --log-level 4
iptables -A LOGGING -j DROP

快速检查

测试您对本课 CompTIA Security+(SY0-701)概念的理解。

课程回顾

本课您学到了:基于主机的防火墙(Windows Defender Firewall、传统数据包过滤工具)按 Endpoint 过滤流量,采用默认拒绝的安全态势和应用范围规则;应用程序 Allowlisting(AppLocker、WDAC)会阻止未经授权的可执行文件运行,包括恶意软件;将防火墙、Allowlisting 和 EDR 分层结合可形成纵深防御,大幅提高攻击成本。接下来,我们将学习电子邮件身份验证:SPF、DKIM 和 DMARC。

常见问题解答

「基于主机的防火墙与应用允许列表」课时是免费的吗?

是的 — 「基于主机的防火墙与应用允许列表」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「基于主机的防火墙与应用允许列表」这节课中我会学到什么?

配置基于主机的防火墙(Windows Defender 防火墙、iptables)和应用允许列表,阻止未经授权的软件执行。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「基于主机的防火墙与应用允许列表」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 防病毒、EDR 与 XDR 平台
  2. OS 加固:修补、基线配置与 CIS 基准
  3. 移动设备管理(MDM)与 BYOD 政策
  4. 基于主机的防火墙与应用允许列表
← 返回 Cloud & IT Cert Prep