Edualk12/virtualized-cybersecurity-lab-proxmox
GitHub: Edualk12/virtualized-cybersecurity-lab-proxmox
该项目提供了一个基于 Proxmox VE 虚拟化平台搭建的网络安全实验室,用于实践网络分段、SIEM 监控与入侵检测。
Stars: 0 | Forks: 0
# **使用 Proxmox VE 的网络安全测试与监控实验室**













## 网络/安全架构

## 展示技能
- 防火墙配置
- Vlan 配置
- Hypervisor 配置与管理
- 网络架构
## 使用的工具和技术
- Proxmox Virtual Environemnt (Hypervisor)
- 虚拟化
- PFsense (防火墙)
- Windows 10
- Windows Server 2022
- Security Onion
- Splunk
- Vlans
# 攻击场景示例与检测分析
### 攻击 1:Nmap 侦察与检测
- [攻击 1:Nmap 侦察](https://github.com/Edualk12/virtualized-cybersecurity-lab-proxmox/blob/main/attacks/Attack1.md)
### 攻击 2:WIP
- []()
### 攻击 3:WIP
- []()
## PC 规格
### Dell Optiplex 3050
使用 Mini-PC 作为我的 Proxmox VE 是最实用和常见的选择,因为它具有很高的能效,并且能以相对较低的价格获得不错的规格配置。
| CPU | 核心数 |
|-----|-----|
| Intel i5-8500t | 6 核 |
| RAM | 容量 |
|-----|-----|
| Kingston DDR4 | 16 Gb |
| 存储类型 | 容量 |
|-----|-----|
| Kingston M.2 SSD | 256 Gb |
## PROXMOX VE(虚拟机资源分配)
我安装了 Proxmox VM 作为我的 Hypervisor,因为它是免费且开源的,并且提供了多种不同的配置功能,这让我能更好地学习 Hypervisor 并进行虚拟机的设置。
我在网络中为不同的用途配置了不同的虚拟机,并且对它们的规格进行了设置和优化,以适应我有限的资源,如下所示
| 虚拟机 | 操作系统 | 角色/用途 | CPU | RAM | 存储 |
|-----------------|------------------|--------------|------|-----|---------|
| Proxmox VE | Proxmox VE | 承载虚拟网络安全实验室的 Hypervisor | 1 核 | 1 GB | - |
| pfSense | pfSense | 防火墙、路由器和网络分段 | 1 核 | 2 GB | 8 GB |
| AD Server | Windows Server 2022 | Active Directory、DNS 和企业服务 | 2 核 | 2 GB | 35 GB |
| Security Onion | Security Onion | IDS/IPS、网络监控和威胁检测 | 4 核 | 8 GB | 100 GB |
| PC-1 (受害机) | Windows 10 | 用户工作站和攻击目标 | 2 核 | 2 GB | 32 GB |
| Splunk Server | Ubuntu Server | SIEM、日志收集和安全分析 | 2 核 | 2 GB | 32 GB |
| Metasploitable 2 | Linux | 攻击目标 | 1 核 | 2 GB | 2 GB |
## 虚拟机
### SECURITY ONION
Security Onion 是目前最通用、最有用的 SIEM 之一,因为它提供了各种丰富的工具和功能,但由于我的资源有限,我不得不将大部分计算资源分配给它。
### Splunk
用于监控和记录来自 Active Directory 的原始数据,从而实现对攻击的实时检测。
### Active Directory
包含了所有客户端 PC 的所有信息(每个用户身份、密码和访问权限)。因此它是一个主要目标,这也是为什么将其纳入 Pentesting 的原因。
### Metasploitable 2
Metasploitable 2 是一个故意存在漏洞的 Linux 虚拟机,旨在为安全专业人员提供一个合法、安全的训练环境,以练习渗透测试和漏洞利用。
## 网络分段与防火墙配置
### 路由器静态路由配置
由于我的攻击机 Kali Linux 处于一个独立的“网络”中,我需要配置一条从 Kali Linux VM 到虚拟网络中不同 VLAN 的静态路由。
```
Router> enable
Router# configure terminal
Router(config)# ip route [destination-network] [subnet-mask] [next-hop-ip]
```
## PFSENSE VLAN 配置
我为不同的虚拟机配置了 Vlan,以增加安全性和可管理性。在初始设置完成后,使用 Web 界面配置 pfsense 防火墙非常简单直接。

| 接口 | VLAN/网络名称 | IP 地址 / 子网掩码 | 用途 |
|-----------|-------------------|---------------------|---------|
| WAN | WAN | 192.168.1.97/24 | 互联网接入和外部网络连接 |
| LAN | LAN | 192.168.15.1/24 | 内部管理网络 |
| OPT1 | OPT1 | 192.168.25.1/24 | 额外的内部网络网段 |
| OPT2 | VICTIM_NETWORK_LAN | 192.168.35.1/24 | 受害者和攻击目标网络 |
| OPT3 | SPLUNK | 192.168.45.1/24 | SIEM 服务器和日志分析网络 |
## 使用 Open V Switch 配置 Security Onion 监控接口
根据我在搭建网络过程中的经验,我发现无法使用 pfsense 内置的 span port 配置。经过研究,我发现最常用的方法之一是使用 Open Vswitch 将 Security Onion 的监控接口连接到虚拟机。因此,我为我的网络创建了一个单独的虚拟接口 (vmbr3),而嗅探接口为 (vmbr2),这样我就可以将流量从虚拟网桥 3 (vmbr3) 镜像到嗅探接口。

## 从 vmbr3 到 vmbr2 的端口镜像
### 修补 vmbr2 和 3
```
# Connect vmbr3 to vmbr2
ovs-vsctl add-port vmbr3 patch-to-vmbr2 \
-- set Interface patch-to-vmbr2 type=patch options:peer=patch-to-vmbr3
# 将 vmbr2 连接回 vmbr3
ovs-vsctl add-port vmbr2 patch-to-vmbr3 \
-- set Interface patch-to-vmbr3 type=patch options:peer=patch-to-vmbr2
```
### 将 vmbr3 镜像到 vmbr2
```
ovs-vsctl -- set bridge vmbr3 mirrors=@m \
-- --id=@m create mirror name=bridge-span \
select_all=true \
output_port=$(ovs-vsctl get port patch-to-vmbr2 _uuid)
```
### Proxmox 网络接口配置
```
iface lo inet loopback
auto enp1s0
iface enp1s0 inet manual
iface wlp2s0 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.12/24
gateway 192.168.1.1
bridge-ports enp1s0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
auto vmbr1
iface vmbr1 inet manual
ovs_type OVSBridge
auto vmbr2
iface vmbr2 inet manual
ovs_type OVSBridge
ovs_ports patch-to-vmbr3 tap102i1
auto vmbr3
iface vmbr3 inet manual
ovs_type OVSBridge
```
## SIEM 和 IDS/IPS 仪表板
## 遇到的问题
- 问题描述:我可以从虚拟机向外 ping 通我的物理 PC,也可以从外部 ping 通 pfsense 的 WAN 端口,但我无法从物理 PC 直接 ping 进内部的 VM 网络。
- 根本原因:我的主家用路由器完全不知道 VM 子网的存在。当我的 PC 尝试与 VM 通信时,路由器甚至没有考虑过 pfSense 的 WAN 接口——它直接假设这些流量是发往互联网的并将其丢弃。
- 解决方案:我在主家用路由器上添加了一条静态路由,明确告诉它如何通过 pfSense 的 WAN IP 找到 VM 子网,并在 pfSense 上开放了一条防火墙规则,允许流量穿越进入 LAN。
- metapsplitable 与 peroxmox 不兼容
- 不同虚拟机的可用资源有限
## 经验教训
## 未来改进
标签:CTI, XXE攻击, 安全实验室, 插件系统, 网络安全, 虚拟化, 防火墙, 隐私保护