基于主机的防火墙与应用允许列表
配置基于主机的防火墙(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 BlockLinux 的 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, TranscriptionAllowlisting 与拒绝列表
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 反馈 — 无需本地设置。
此课程中的所有课时
- 防病毒、EDR 与 XDR 平台
- OS 加固:修补、基线配置与 CIS 基准
- 移动设备管理(MDM)与 BYOD 政策
- 基于主机的防火墙与应用允许列表