
HomeLab 是一个构建在单台笔记本电脑(OMEN 16,i7-14650HX,32 GB 内存,RTX 4060 8 GB)上的 GNS3 实验环境,用于在同一环境中练习网络、系统管理和攻击性安全。它模拟了一个包含防火墙(Cisco ASAv)的边界、一个 DMZ(Ubuntu Server)、一个路由核心(SW-L3 + 两台接入交换机),以及运行在 Windows Server 2025 上的 Active Directory 域 kooler.local。攻击平台(Kali、Exegol)位于不受信任的外部网段,与通往互联网的 NAT 网关并列。资产数量、主机类型和配置的服务均基于我的主机规格,以便能够同时运行整个环境而不会让 PC 过度负载,同时让虚拟机获得合理的资源分配。
注意:这是一个用于入门的基线设置,请根据需要进行自定义。服务器加固、SIEM、EDR、C2 服务器以及用于进一步测试的 LAN 横向移动等工具和概念需要你根据自己想要训练的内容自行实现和完成。随着时间的推移,仅会记录全局架构以保证可用性,并最终在 CHANGELOG.md 中跟踪。此外,由于防火墙实际上并未获得许可(评估模式),所涉及的带宽受到限制,并严重影响网络性能(外部源 → DMZ,内部 → 互联网)。因此,我临时在虚拟机上使用额外的网络适配器(VMware NAT)来处理高要求的网络流量,例如系统更新或大型软件下载。在测试和破坏组件时请拍摄快照。享受并成长吧!
链路:Kali/Exegol + NAT (Switch-X) → 路由器 → ASAv 防火墙(带 DMZ 支路)→ SW-L3 → L2-SW-1 / L2-SW-2(VLAN)。
| 网段 | 子网 | 备注 |
|---|---|---|
| 外部 / 不受信任 | 192.168.160.0/24 | Switch-X:Kali/Exegol、NAT 云;路由器位于 .100 |
| 路由器 ↔ 防火墙外部 | 10.10.3.0/29 | 路由器 .1,ASA 外部 .2,DMZ NAT .3 |
| 防火墙 ↔ DMZ | 10.10.2.0/30 | ASA dmz .2,Ubuntu .1 |
| 防火墙 ↔ SW-L3(内部) | 10.10.1.0/30 | ASA 内部 .2,SW-L3 .1 |
| VLAN 30 (VPCS) | 192.168.30.0/24 | PC-C、PC-D |
| VLAN 40(工作站) | 192.168.40.0/24 | 位于 L2-SW-2 之后 — Windows 10、PC-B |
| VLAN 50(服务器) | 192.168.50.0/24 | 位于 L2-SW-1 之后 — Windows Server 2025 (DC01)、PC-A |
| VLAN 100(管理) | 192.168.100.0/24 | SW-L3 上存在 SVI;已配置 trunk,尚未加入 ASA 对象组 |
SW-L3 ↔ L2-SW-1/L2-SW-2 之间的 trunk 链路承载 VLAN 30、40、50、100(本征 VLAN 999,dot1q)。
| 设备 | 角色 | 平台 | 关键接口 |
|---|---|---|---|
| 路由器 | 边缘路由器,NAT 侧网关 | Cisco IOSv 15.9 | Gi0/0 10.10.3.1/29(至防火墙);Gi0/1 192.168.160.100/24(至 Switch-X) |
| 防火墙 | 边界防火墙,DMZ | Cisco ASAv 9.22(1)1 | outside 10.10.3.2/29;dmz 10.10.2.2/30;inside 10.10.1.2/30 |
| SW-L3 | 核心三层交换机,VLAN 间路由 | Cisco IOSv L2 15.2 | Gi0/0 10.10.1.1/30(至防火墙);Gi0/1-0/2 至 L2-SW-1/2 的 trunk;VLAN 30/40/50/100 的 SVI;VTP 服务器模式 |
| L2-SW-1 | 接入交换机 | Cisco IOSv L2 15.2 | VLAN 50 接入端口(WinServer2025、PC-A);VTP 客户端模式 |
| L2-SW-2 | 接入交换机 | Cisco IOSv L2 15.2 | VLAN 40 接入端口(Windows 10、PC-B);VLAN 30(PC-D);VTP 客户端模式 |
ASAv 通过 Smart Licensing Using Policy 获得许可,运行于评估模式,功能层级为 standard,吞吐量级别为 1G,在本地声明(未注册 CSSM)。
| 主机 / 资源 | 操作系统 / 版本 | 主机名 | IP / VLAN | 服务 |
|---|---|---|---|---|
| Kali(1 CPU,8 核,4/80GB) | Kali Linux 2026.2(VMware amd64) | Kali | 192.168.160.130(网段外) | 攻击者平台 |
| Ubuntu(1 CPU,2 核,3/60GB) | Ubuntu Desktop 26.04 | ko0ler-VMware-Virtual-Platform | 10.10.2.1(DMZ) | DVWA、bWAPP、httpbin、FTP、Samba、MySQL |
| WindowsServer 2025(1 CPU,4 核,4/60GB) | Windows Server 2025 | DC01 | 192.168.50.10(VLAN 50) | ADCS、ADDS、DHCP、DNS、MSSQL — kooler.local 的域控制器 |
| Windows 10(1 CPU,2 核,4/60GB) | Windows 10 | PC1 | DHCP(VLAN 40) | 已加入域的工作站 |
| PC-A | VPCS | — | VLAN 50(.15) | — |
| PC-B | VPCS | — | VLAN 40(.15) | — |
| PC-C | VPCS | — | VLAN 30(.1) | — |
| PC-D | VPCS | — | VLAN 30(.2) | — |
VPCS 主要用于连通性测试。
域控制器:DC01(Windows Server 2025,192.168.50.10),同时运行 ADCS、ADDS、DHCP、DNS 和 MSSQL — 这是一个刻意过度配置的 DC,用于攻击面练习(服务账户暴露、ADCS 模板配置错误、DC 上的 SQL 等)。
| 账户 | 范围 | 备注 |
|---|---|---|
| Administrator | 本地(DC01) | 内置本地管理员 |
| Ko0ler | 域用户 | — |
| user1 | 域用户 | — |
Windows 10(PC1)已加入 kooler.local;该机器上还存在本地登录账户 ko0ler,与域账户相互独立。
| 区域对 | 方向 | 允许 |
|---|---|---|
| outside → DMZ | 入站 | 到 Ubuntu(10.10.2.1)的 HTTP(80)、HTTPS(443)、8080、8070、8060;ICMP |
| DMZ → outside | 出站 | HTTP、HTTPS、DNS(53) |
| DMZ → inside | — | 拒绝 |
| inside → DMZ | 出站 | 到 Ubuntu 的完整 IP |
| inside → outside | 出站 | 完整 IP,通过 ASA outside 接口进行 PAT |
NAT:为 inside 子网(192.168.30/40/50.0/24,动态,经 ASA outside)配置 PAT,并为 DMZ 主机配置静态 NAT(10.10.2.1 → 10.10.3.3,DMZ_MAPPED)。注意:VLAN 30/40/50 之间的 VLAN 间流量从不经过 ASA — 由 SW-L3 在本地路由,因此防火墙只能看到南北向(DMZ/outside)流量。
记录于 CHANGELOG.md。
实验凭据有意不提交到本仓库。
| 范围 | 账户 | 主机名 |
|---|---|---|
| 本地 | kali | ko0ler-VMware-Virtual-Platform(Kali) |
| 本地 | ko0ler | Ubuntu |
| 本地 | ko0ler | PC1(Windows 10) |
| 本地 | Administrator | DC01(WindowsServer 2025) |
| 域(kooler.local) | Ko0ler | — |
| 域(kooler.local) | user1 | — |