PVE,全称 Proxmox Virtual Environment,是基于 Debian 的开源虚拟化平台。它常用于搭建服务器集群,支持 KVM 虚拟机、LXC 容器、Ceph 分布式存储和 Web 管理面板。
在取证比赛中,如果拿到的是 PVE 宿主机镜像,不要急着找网站。第一步应该看:
/etc/pve/
这个目录通常保存着 PVE 的核心配置。
一、判断是否为 PVE
可以检查以下路径:
ls /etc/pve
ls /var/lib/pve-cluster
ls /var/log/pve
如果存在:
/etc/pve/corosync.conf
/etc/pve/storage.cfg
/etc/pve/qemu-server/
基本可以判断为 PVE 环境。
离线分析时也可以用:
find /mnt -name "corosync.conf" -o -name "storage.cfg" -o -path "*/qemu-server/*.conf" 2>/dev/null
命令意义:
corosync.conf PVE 集群配置
storage.cfg PVE 存储配置
qemu-server/*.conf KVM 虚拟机配置
lxc/*.conf LXC 容器配置
二、集群信息
PVE 集群配置通常在:
/etc/pve/corosync.conf
查看命令:
cat /etc/pve/corosync.conf
重点关注:
cluster_name
node name
nodeid
ring0_addr
这些字段常用于回答:
集群名称是什么?
集群有几个节点?
节点名称是什么?
节点 IP 是什么?
可以快速提取:
grep -E "cluster_name|name:|nodeid|ring0_addr" /etc/pve/corosync.conf
三、存储信息
PVE 存储配置在:
/etc/pve/storage.cfg
查看命令:
cat /etc/pve/storage.cfg
常见存储类型包括:
dir
lvm
lvmthin
zfspool
nfs
rbd
cephfs
**如果看到 **rbd,一般说明使用了 Ceph RBD 存储。
示例:
rbd: ceph-store
pool vmdata
content images
这里可以提取:
存储名称:ceph-store
Ceph pool:vmdata
存储内容:images
快速提取:
grep -E "dir:|lvm:|lvmthin:|zfspool:|nfs:|rbd:|cephfs:|pool|path|content" /etc/pve/storage.cfg
四、虚拟机配置
PVE 虚拟机配置通常位于:
/etc/pve/qemu-server/
例如:
/etc/pve/qemu-server/100.conf
/etc/pve/qemu-server/101.conf
查看:
cat /etc/pve/qemu-server/100.conf
重点字段:
name
memory
cores
net0
scsi0
virtio0
sata0
ide2
常见题目:
虚拟机 ID 是什么?
虚拟机名称是什么?
虚拟机内存是多少?
CPU 核心数是多少?
网卡 MAC 是什么?
虚拟机磁盘存在哪里?
批量提取:
for f in /etc/pve/qemu-server/*.conf; do
echo "===== $f ====="
grep -E "^(name|memory|cores|net|scsi|virtio|sata|ide|boot):" "$f"
done
五、LXC 容器配置
PVE 也可能跑 LXC 容器,配置在:
/etc/pve/lxc/
查看:
ls /etc/pve/lxc/
cat /etc/pve/lxc/*.conf
重点字段:
hostname
memory
cores
net0
rootfs
mp0
六、PVE 网络配置
网络配置常见:
/etc/network/interfaces
查看:
cat /etc/network/interfaces
重点关注:
address
gateway
bridge-ports
vmbr0
vmbr1
七、Ceph 配置
Ceph 配置常见路径:
/etc/ceph/ceph.conf
/var/lib/ceph/
查看:
cat /etc/ceph/ceph.conf
重点字段:
fsid
mon_host
public_network
cluster_network
常见问题:
Ceph fsid 是什么?
mon 节点 IP 是什么?
public network 是什么?
cluster network 是什么?
如果系统可运行 Ceph 命令,可以查看:
ceph -s
ceph osd tree
ceph osd pool ls
rbd ls -p <pool_name>
rbd info -p <pool_name> <image_name>
rbd snap ls -p <pool_name> <image_name>
八、常见排错
1. /etc/pve/ 目录为空
**不一定说明没有 PVE。PVE 的配置实际由 **pmxcfs 管理,离线挂载时可能看到的是空目录。
继续检查:
ls /var/lib/pve-cluster/
ls /var/log/pve/
grep -Rina "corosync\|qemu-server\|storage.cfg" /etc /var 2>/dev/null
2. 只看到虚拟机配置,看不到磁盘文件
可能原因:
磁盘在 Ceph RBD
磁盘在 NFS
磁盘在 LVM-thin
磁盘在其他节点
磁盘所在数据盘未挂载
此时应看:
cat /etc/pve/storage.cfg
cat /etc/pve/qemu-server/*.conf
**把 **scsi0、virtio0 中的存储名称和 storage.cfg 对上。
九、总结
PVE 取证的核心路径是:
/etc/pve/corosync.conf 集群
/etc/pve/storage.cfg 存储
/etc/pve/qemu-server/*.conf 虚拟机
/etc/pve/lxc/*.conf 容器
/etc/network/interfaces 网络
/etc/ceph/ceph.conf Ceph
分析 PVE 时,先确定宿主机和虚拟机关系,再进入虚拟机磁盘或容器内部找业务数据。