solomonhenry-afk/enterprise-network-segmentation-engineering
GitHub: solomonhenry-afk/enterprise-network-segmentation-engineering
该项目是一套基于 pfSense 的企业网络分段工程方案,旨在通过分层区域隔离和最小权限策略遏制横向移动并保护核心身份基础设施。
Stars: 0 | Forks: 0
# 企业网络分段工程
## 概述
本项目记录了在基于 pfSense 的实验室环境中设计并验证企业网络分段的过程。该工作侧重于通过将用户终端、管理系统、基础设施服务、Tier Zero 资产和安全监控平台划分到受控的安全区域中,从而减少系统间不必要的信任。
网络分段不仅仅是一项 IP 地址分配工作。它是一种访问控制策略,旨在限制横向移动、减少攻击面、保护关键服务,并在发生可疑活动时划定更清晰的调查边界。
目标是建立一个具备防御能力的分段模型,通过防火墙策略对其进行强制执行,验证预期的通信路径,并记录由此产生的安全态势。
## 目标
* 设计企业网络区域模型。
* 分离用户、服务器、管理、Tier Zero 和安全运营功能。
* 在各区域之间应用最小权限通信规则。
* 将管理服务限制在已批准的管理路径内。
* 保护 Active Directory 和身份基础设施免受不必要的暴露。
* 验证被允许和被拒绝的流量路径。
* 记录防火墙策略要求和残余风险。
* 建立可重复的分段验证流程。
## 环境范围
| 组件 | 角色 | 分段功能 |
| ---------------------------------- | --------------------------------- | ------------------------------------------------------------------------------- |
| pfSense | 防火墙和网络网关 | 执行区域间策略和路由 |
| Windows Server / Domain Controller | Tier Zero 身份基础设施 | 托管 Active Directory、DNS、LDAP、Kerberos 和特权服务 |
| Windows Client | 用户终端 | 代表标准用户区域 |
| Kali Linux | 安全工程工作站 | 从受控的管理/安全环境执行授权验证 |
| Splunk Enterprise | SIEM | 集中安全遥测和调查证据 |
| Suricata | IDS/IPS | 检测跨越信任边界的可疑网络活动 |
## 分段架构
```
┌─────────────────────┐
│ pfSense │
│ Firewall / Routing │
└──────────┬──────────┘
│
┌────────────────────────────────┼────────────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ User Zone │ │ Server Zone │ │Management Zone│
│ Windows Client│ │ Windows Server│ │ Kali Linux │
│ Standard Users│ │ Applications │ │ Admin Access │
└───────────────┘ └───────┬───────┘ └───────────────┘
│
▼
┌─────────────────┐
│ Tier Zero Zone │
│ Domain Services │
│ AD / Kerberos │
│ LDAP / DNS │
└─────────────────┘
┌─────────────────┐
│ Security Ops │
│ Splunk / Logs │
│ Suricata Events │
└─────────────────┘
```
## 企业区域模型
| 区域 | 目的 | 示例资产 | 安全要求 |
| ------------------------ | ----------------------------------------- | --------------------------------------- | ----------------------------------------------------------------------- |
| User Zone | 标准员工活动 | Windows 客户端系统 | 对已批准业务服务的有限访问 |
| Server Zone | 企业应用和服务 | 文件服务器、应用服务器 | 控制来自用户和管理系统的服务访问 |
| Management Zone | 管理操作 | Kali Linux、已批准的管理工作站 | 限制对管理接口和管理协议的访问 |
| Tier Zero Zone | 身份和特权基础设施 | Domain Controller、AD 服务 | 强隔离和严格的管理 |
| Security Operations Zone | 监控和检测 | Splunk、Suricata 遥测 | 安全的日志摄取和仅限分析师的管理 |
| Perimeter Zone | 适用情况下的外部服务 | 公共服务、网关 | 严格检查、最小的入站暴露、受监控的访问 |
## 分段设计原则
| 原则 | 安全目标 |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| 默认拒绝 | 除非有记录在案的业务需求允许,否则阻止区域间流量 |
| 最小权限 | 仅允许必要的源、目的、协议和端口组合 |
| Tier Zero 隔离 | 防止标准终端直接管理身份基础设施 |
| 受控管理 | 将 RDP、WinRM、SSH、SMB 管理和防火墙管理限制在已批准的源 |
| 基于服务的访问 | 允许业务服务,而非广泛的网间访问 |
| 可见性 | 记录有意义的允许和拒绝决策以供调查 |
| 纵深防御 | 结合防火墙策略、IDS/IPS、终端控制和 SIEM 监控 |
| 持续验证 | 在策略、基础设施或应用变更后重新测试分段 |
## 所需的企业通信路径
正常的企业运营可能需要以下通信路径。仅在合理的情况下才应允许这些路径。
| 源区域 | 目的区域 | 服务 | 端口 / 协议 | 目的 |
| ------------------------ | ---------------- | ----------------------- | ---------------------- | ---------------------------------------- |
| User Zone | Tier Zero Zone | DNS | TCP/UDP 53 | 名称解析 |
| User Zone | Tier Zero Zone | Kerberos | TCP/UDP 88 | 域名认证 |
| User Zone | Tier Zero Zone | LDAP | TCP 389 / 636 | 目录服务 |
| User Zone | Tier Zero Zone | SMB | TCP 445 | 已批准的域或文件服务访问 |
| Management Zone | Server Zone | RDP | TCP 3389 | 已批准的远程管理 |
| Management Zone | Server Zone | WinRM | TCP 5985 / 5986 | 远程 PowerShell 管理 |
| Management Zone | Tier Zero Zone | RDP / WinRM | TCP 3389 / 5985 / 5986 | 仅限特权管理 |
| Security Operations Zone | Splunk | HEC / Splunk management | TCP 8088 / 8000 | 日志摄取和分析师管理 |
| pfSense | 所有区域 | 防火墙执行 | 策略控制 | 路由和分段执行 |
## 受限的通信路径
以下路径应被阻止或受到严格限制。
| 源区域 | 目的区域 | 受限服务 | 安全理由 |
| ----------- | ---------------------------- | ---------------------------------- | -------------------------------------------- |
| User Zone | Tier Zero Zone | RDP | 防止直接的特权管理 |
| User Zone | Tier Zero Zone | WinRM | 防止远程 PowerShell 滥用 |
| User Zone | Tier Zero Zone | SMB 管理共享 | 减少横向移动和凭据滥用 |
| User Zone | Management Zone | 管理服务 | 保护管理基础设施 |
| User Zone | Security Operations Zone | Splunk 管理 | 保护监控基础设施 |
| Server Zone | User Zone | 不必要的入站管理 | 减少反向横向移动路径 |
| 任何区域 | pfSense 管理界面 | 未经批准的 HTTPS / SSH | 保护防火墙管理 |
| 任何区域 | 任何区域 | 宽泛的任意到任意访问 | 防止不受控的信任扩展 |
## 防火墙策略工程
```
Business Requirement
│
▼
Identify Source Zone
│
▼
Identify Destination Zone
│
▼
Define Required Service and Port
│
▼
Create Specific Firewall Rule
│
▼
Enable Relevant Logging
│
▼
Validate Allowed and Denied Paths
│
▼
Document Residual Risk
```
## 示例防火墙策略矩阵
| 规则名称 | 源 | 目的 | 服务 | 动作 | 记录 | 安全理由 |
| ------------------------------------ | --------------- | ----------------- | --------------------------- | ------ | ------- | ------------------------------------------------------ |
| 允许 DNS 到 Domain Controller | User Zone | Domain Controller | TCP/UDP 53 | 允许 | 是 | 企业名称解析所需 |
| 允许 Kerberos 认证 | User Zone | Domain Controller | TCP/UDP 88 | 允许 | 是 | 域认证所需 |
| 在需要时允许 LDAP | User Zone | Domain Controller | TCP 389 / 636 | 允许 | 是 | 支持已批准的目录查询 |
| 允许 SMB 到已批准的服务 | User Zone | 已批准的服务器 | TCP 445 | 允许 | 是 | 支持已批准的文件或域服务 |
| 允许管理 RDP | Management Zone | 已批准的服务器 | TCP 3389 | 允许 | 是 | 限制远程管理 |
| 允许管理 WinRM | Management Zone | 已批准的服务器 | TCP 5985 / 5986 | 允许 | 是 | 限制远程 PowerShell 管理 |
| 阻止用户到 Tier Zero 的管理访问 | User Zone | Domain Controller | RDP、WinRM、SMB 管理路径 | 阻止 | 是 | 降低提权和横向移动风险 |
| 限制 pfSense 管理 | Management Zone | pfSense | HTTPS / SSH | 允许 | 是 | 保护防火墙配置 |
| 阻止所有其他区域间流量 | 任意 | 任意 | 任意 | 阻止 | 是 | 强制执行默认拒绝分段 |
## 验证方法
分段是通过在实验室环境中进行受控的、授权的测试来验证的。
```
Review Zone Design
│
▼
Review Firewall Rules
│
▼
Test Approved Communication Path
│
▼
Test Restricted Communication Path
│
▼
Review pfSense Firewall Logs
│
▼
Review Suricata Evidence
│
▼
Review Splunk Investigation Data
│
▼
Document Findings and Residual Risk
```
## 示例验证命令
仅对授权实验室环境中的系统使用。
```
# 发现授权 lab 子网中的活动主机
nmap -sn 192.168.56.0/24
```
```
# 验证所需的 Active Directory 服务暴露情况
nmap -Pn -sT -p 53,88,135,389,445,3389,5985,5986 192.168.56.100
```
```
# 测试到已批准目标的 SMB 连接性
nc -vz 192.168.56.100 445
```
```
# 测试来自当前源区域的 RDP 暴露情况
nc -vz 192.168.56.100 3389
```
```
# 测试来自当前源区域的 WinRM 暴露情况
nc -vz 192.168.56.100 5985
```
成功的连接必须有记录在案的业务或管理需求作为合理依据。被阻止的连接通常是预期的安全结果。
## 验证矩阵
| 测试 | 源区域 | 目的区域 | 预期结果 | 证据 |
| ------------------------------- | -------------------------------- | ----------------------- | ---------------------------------------- | ------------------------------- |
| DNS 查询 | User Zone | Tier Zero Zone | 允许 | 防火墙日志、终端结果 |
| Kerberos 认证 | User Zone | Tier Zero Zone | 允许 | 域认证证据 |
| 对已批准服务的 SMB 访问 | User Zone | Server / Tier Zero Zone | 仅在需要时允许 | 防火墙日志和服务结果 |
| 来自用户终端的 RDP | User Zone | Tier Zero Zone | 阻止 | 防火墙拒绝日志 |
| 来自用户终端的 WinRM | User Zone | Tier Zero Zone | 阻止 | 防火墙拒绝日志 |
| 来自管理工作站的 RDP | Management Zone | Server / Tier Zero Zone | 允许已批准的管理 | 防火墙允许日志 |
| pfSense GUI 访问 | Management Zone | pfSense | 仅对已批准的管理员允许 | pfSense 访问证据 |
| 未经授权的区域间扫描 | User Zone / Kali 验证主机 | 受保护区域 | 受限或被检测到 | 防火墙和 Suricata 证据 |
## 证据收集
推荐的证据结构:
```
screenshots/
├── 01-network-segmentation-topology.png
├── 02-pfsense-interface-overview.png
├── 03-firewall-rule-matrix.png
├── 04-user-zone-validation.png
├── 05-management-zone-validation.png
├── 06-tier-zero-protection-validation.png
├── 07-pfsense-firewall-logs.png
├── 08-suricata-detection-evidence.png
├── 09-splunk-investigation.png
└── 10-segmentation-risk-matrix.png
```
## Splunk 调查示例
搜索与内部流量相关的 Suricata 事件:
```
index=main source=suricata
| table _time src_ip dest_ip proto alert.signature alert.category alert.severity
```
识别频繁的横向通信路径:
```
index=main
| stats count by src_ip dest_ip dest_port proto
| sort - count
```
调查内部扫描或侦察活动:
```
index=main source=suricata
| search src_ip="192.168.56.*" dest_ip="192.168.56.*"
| stats count by src_ip dest_ip alert.signature
| sort - count
```
## 安全发现
| 发现 | 风险 | 建议的修复措施 |
| ----------------------------------------------- | -------- | --------------------------------------------------------------------------- |
| 宽泛的内部允许规则 | 高 | 替换为特定的源、目的、端口和协议规则 |
| 用户对关键系统的 RDP 或 WinRM 访问 | 高 | 仅限管理区域 |
| 宽泛的 SMB 访问 | 高 | 仅允许对已批准的文件和身份服务进行 SMB 访问 |
| 暴露的 Tier Zero 管理路径 | 严重 | 隔离 Domain Controller 并强制执行特权管理边界 |
| 未记录的防火墙拒绝 | 中 | 为安全相关的被阻止流量启用日志记录 |
| 不受限制的 pfSense 管理 | 严重 | 将 GUI 和 SSH 访问限制在已批准的管理系统 |
| 未使用或遗留的防火墙规则 | 中 | 在审查和变更控制验证后移除 |
## 残余风险
企业运营仍需要某些网络通信,包括 DNS、Kerberos、LDAP、已批准的 SMB 访问、管理操作、安全遥测和日志转发。
残余风险通过以下方式降低:
* 缩小源和目的定义。
* 协议和端口限制。
* 防火墙日志记录。
* Suricata 检测。
* Splunk 调查。
* 定期策略审查。
* Tier Zero 管理控制。
* 变更管理验证。
## 安全成果
* 设计了基于安全区域的企业分段模型。
* 定义了所需和受限的通信路径。
* 应用了最小权限防火墙策略原则。
* 保护 Tier Zero 基础设施免受不必要的用户区域管理。
* 将管理访问限制在已批准的管理路径内。
* 通过防火墙日志、Suricata 遥测和 Splunk 提升了可见性。
* 为分段控制建立了一个可重复的验证流程。
* 记录了风险、证据和未来的改进机会。
## 未来改进
* 为每个企业区域实施基于 VLAN 的分段。
* 为关键服务器和身份基础设施添加微分段。
* 将 Active Directory 管理分层与网络控制集成。
* 自动化防火墙规则审查和重新认证。
* 为被阻止的横向流量构建 Splunk 仪表板。
* 将资产重要性添加到防火墙和检测风险评分中。
* 扩展 Suricata 规则以检测横向移动和侦察。
* 根据分段控制验证 BloodHound 特权路径。
* 为 pfSense 防火墙规则添加漂移监控。
## 结论
企业网络分段是减少横向移动和保护关键基础设施的基础。有效的分段不依赖于广泛的内部信任;它在用户、服务、管理员、Tier Zero 资产和安全运营之间创建了刻意的边界。
本项目展示了如何将 pfSense 防火墙策略、Suricata 检测、Splunk 调查和受控验证结合起来,以创建一个更具可见性、更具防御能力且更具弹性的企业网络架构。
# 💻 技术栈















# 作者
## BASSEY SOLOMON HENRY
**网络安全工程师 | SOC 分析师 | 检测工程师 | 紫队 | Active Directory 安全 | SIEM | 企业安全**
热衷于构建企业级安全实验室,通过模拟真实世界的攻击链、验证防御控制、增强检测工程能力,并通过实践性的紫队操作将进攻性安全与企业防御相结合。
# 🤝 与我联系
**LinkedIn**
https://www.linkedin.com/in/bassey-solomon-henry/
🌐 **GitHub**
https://github.com/solomonhenry-afk/Bassey-Solomon-Henry
📧 **电子邮件**
[solomon_henry111@outlook.com](mailto:solomon_henry111@outlook.com)
# 个人理念
### — Solomon Henry
## 🌐 企业安全演进
*通过企业攻击模拟、Active Directory 安全、检测工程、紫队验证、威胁狩猎、数字取证和安全自动化,构建现代网络安全专业知识。*
**企业安全演进是一个多领域的网络安全工程作品集,记录了跨 Active Directory、检测工程、紫队操作、云安全、威胁狩猎、数字取证和安全自动化领域的企业攻击模拟的设计、执行、验证和检测。每个领域都建立在前一个领域的基础之上,以反映现代企业安全团队如何防御真实世界的环境。**
**如果您觉得这个项目有价值,请考虑为该仓库点赞并关注我的网络安全之旅。**
标签:Active Directory, Metaprompt, pfSense, Plaso, Terraform 安全, 网络安全, 网络工程, 网络架构, 网络隔离, 防火墙策略, 隐私保护