跳转至

VMware与CentOS安装指南

概述

搭建 Linux 实验环境是安全测试人员的基本技能。本文详细介绍了虚拟机技术、VMware 安装配置、三种网络模式的工作原理,以及 CentOS 系统的安装和基础配置。掌握这些知识,可以快速搭建用于渗透测试、漏洞研究和安全实验的隔离环境。

什么是虚拟机?

虚拟机的定义

虚拟机 (Virtual Machine):通过软件模拟出来的具有完整硬件系统功能的计算机系统。它运行在一个完全隔离的环境中,可以像真实计算机一样工作。

为什么需要虚拟机?

在一台物理电脑上安装多个操作系统的需求: 1. 运行特定版本的操作系统:如某些旧软件只支持Windows XP,或需要测试不同版本的Linux。 2. 隔离物理机,用于测试:在虚拟机中运行病毒、测试不稳定软件,不会影响物理机。 3. 提升资源利用率:一台服务器通过虚拟化技术运行多个虚拟机,各跑不同业务,提高硬件利用率。

常见虚拟机软件

软件 特点 适用平台
VMware Workstation 功能强大、性能优秀、业界标杆 Windows、Linux
VirtualBox 免费开源、Oracle出品、跨平台 Windows、Linux、macOS
Virtual PC 微软早期产品,已停止更新 Windows
Citrix Xen Desktop 企业级桌面虚拟化方案 企业环境
Parallels Desktop Mac上运行Windows的最佳选择 macOS

虚拟化技术

虚拟机软件底层依赖的虚拟化技术:

技术 说明
Xen 开源的半虚拟化技术,Amazon EC2早期使用
OpenVZ 基于容器的操作系统级虚拟化,性能高但灵活性差
KVM Kernel-based Virtual Machine,Linux内核原生支持的硬件虚拟化,现在最主流
Hyper-V 微软的虚拟化技术,Windows Server和Windows 10/11专业版内置

专业解读:KVM现在是Linux服务器虚拟化的标准方案,OpenStack、各大云平台底层都大量使用KVM。


容器技术 Docker

Docker架构

Docker是一种容器化技术,与虚拟机不同: - 虚拟机:虚拟出一套完整的硬件,在上面运行完整的操作系统,再运行应用。隔离性强,但资源占用大。 - 容器:共享宿主机的操作系统内核,只打包应用和其依赖库。轻量、快速、资源占用小。

Docker特点

特点 说明
开箱即用 一个镜像包含应用运行所需的一切环境,无需手动配置
快速部署 秒级启动,相比虚拟机的分钟级启动大幅提升效率
可移植性强 一次构建,到处运行(Build once, run anywhere)
环境隔离 每个容器独立运行,互不影响

Docker实现原理(三大核心技术)

技术 作用
Namespace 实现系统环境的隔离(PID进程号、NET网络、MNT挂载点、IPC通信、UTS主机名、USER用户等命名空间)
Cgroup 控制组,实现资源限制(CPU、内存、磁盘I/O、网络带宽等)
UnionFS 联合文件系统,实现镜像分层和容器根目录的隔离

虚拟机 vs Docker 对比

特性 虚拟机 Docker容器
启动速度 分钟级 秒级
部署创建速度 慢(需安装完整OS) 快(只需拉取镜像)
硬盘使用 一般为GB级别 一般为MB级别
性能 弱于原生(有虚拟化开销) 接近原生(共享内核)
资源利用率 单机一般几十个 单机支持上千个容器
隔离性 系统级隔离,更强 进程级隔离,较弱
安全性 强(内核独立) 弱(共享宿主机内核)

专业解读:Docker适合微服务架构、CI/CD持续集成部署、开发环境一致性保障。虚拟机适合需要强隔离、运行不同内核系统的场景。两者不是替代关系,而是互补关系(如Kubernetes可以在虚拟机集群上运行Docker容器)。


安装VMware Workstation

安装环境

  • 物理机:Windows 10/11
  • VMware版本:15或16(推荐使用较新版本,兼容性更好)

开启CPU虚拟化

安装虚拟机前,需要在BIOS中开启虚拟化支持:

  1. 根据自己的电脑型号/主板型号,搜索进入BIOS的方式(开机时按 F2 / F8 / F10 / F12 / Del 等)
  2. 在BIOS设置中找到 Intel VT-xAMD-V 选项,设置为 Enabled

专业解读:Intel的虚拟化技术叫VT-x(Virtualization Technology),AMD的叫AMD-V(也叫SVM)。不开启此选项,VMware无法创建64位虚拟机,性能也会大打折扣。

常见问题:物理机蓝屏

虚拟机开机导致物理机蓝屏或重启,通常是因为: - Windows 10/11的Hyper-V与VMware冲突 - 虚拟化未开启或VMware版本过旧

解决方法: 1. 安装最新版VMware大概率可以解决 2. 关闭Windows的Hyper-V功能(控制面板→程序和功能→启用或关闭Windows功能) 3. 在命令提示符(管理员)执行:bcdedit /set hypervisorlaunchtype off


VMware常用操作

基本功能

功能 说明
打开现有虚拟机 直接打开.vmx配置文件
编辑网络 虚拟网络编辑器,配置VMnet0/VMnet1/VMnet8
克隆 完整克隆(独立副本)或链接克隆(依赖源虚拟机)
快照 保存虚拟机某一时刻的状态,可随时恢复
文件传输 通过VMware Tools、共享文件夹、拖拽等方式

常见问题解决

虚拟机被锁定: - 原因:启动了多个VMware程序窗口,或在多个地方打开了同一个虚拟机 - 解决办法:找到原来的窗口关闭,或删除虚拟机目录下所有的 .lck 文件和 .lck 目录

重启或合盖后虚拟机连不上网: - 原因:Windows的网络适配器状态异常 - 解决:在网络适配器中,禁用VMnet8,再启用即可恢复 - 进阶:可以做成批处理脚本,右键管理员运行:

netsh interface set interface "VMware Network Adapter VMnet8" disabled
netsh interface set interface "VMware Network Adapter VMnet8" enabled


VMware三种网络模式

VMware提供了三种网络连接模式,理解它们对配置虚拟机网络至关重要。

基础知识

组件 说明
网卡 计算机连接网络的硬件接口,有MAC地址和IP地址
路由器 连接不同网络,实现网络间数据包转发和NAT转换
交换机 在同一网络内连接多台设备,实现局域网通信
虚拟交换机 VMware在软件层面模拟的交换机
虚拟网卡 VMware在宿主机上创建的虚拟网络适配器

VMware虚拟网络组件

虚拟交换机 用途 对应虚拟网卡
VMnet0 桥接模式 无(直接使用物理网卡)
VMnet1 仅主机模式 VMware Network Adapter VMnet1
VMnet8 NAT模式 VMware Network Adapter VMnet8

桥接模式 (Bridge)

通信方式: 1. 虚拟机通过虚拟交换机VMnet0,利用虚拟网桥连接到主机的物理网卡 2. 不需要用到虚拟网卡,所以没有VMware Network Adapter VMnet0

特点: - 物理机和虚拟机地位平等,处于同一局域网 - 虚拟机占用一个独立IP(与主机同网段) - 直接使用物理机的网卡访问互联网

连通情况: - ✅ 主机和虚拟机可以互访 - ✅ 虚拟机之间可以互访 - ✅ 可以访问互联网 - ✅ 可以访问其他主机 - ✅ 其他主机可以访问本虚拟机

使用场景:创建一个虚拟服务器在内网提供网络服务(如搭建Web服务器给局域网其他机器访问)。

专业解读:桥接模式要求局域网内有足够的IP地址分配给虚拟机。如果IP资源紧张(如公司网络),应使用NAT模式。

NAT模式 (Network Address Translation)

通信方式: 1. 虚拟NAT设备(虚拟路由器)连接到VMnet8虚拟交换机 → 虚拟机联网用 2. 主机通过VMware Network Adapter VMnet8虚拟网卡连接到VMnet8虚拟交换机 → 主机和虚拟机连接用

特点: - 虚拟机在外部网络中没有自己的独立IP地址 - 虚拟NAT设备会把专用网络中的IP地址转换为主机系统的IP地址(网络地址转换) - 主机能联网,虚拟机就能联网

连通情况: - ✅ 主机和虚拟机可以互访 - ✅ 虚拟机之间可以互访 - ✅ 可以访问互联网 - ✅ 本机虚拟机可以访问其他主机 - ❌ 其他主机不能访问本机虚拟机(解决办法:端口映射或共享网络)

使用场景:大部分情况(默认推荐),尤其是IP地址紧张或仅需虚拟机访问外网的场景。

专业解读:NAT模式下,虚拟机IP通常由VMware的DHCP服务分配(如192.168.x.x网段),与物理机不在同一网段,但通过NAT共享物理机的IP上网。

仅主机模式 (Host-Only)

通信方式: - 主机使用VMware Network Adapter VMnet1虚拟网卡连接到VMnet1虚拟交换机

特点: - 没有了NAT设备(虚拟路由),所以不能上网 - 虚拟机与外部网络完全隔离

连通情况: - ✅ 主机和虚拟机可以互访 - ✅ 虚拟机之间可以互访 - ❌ 不能访问互联网 - ❌ 不能访问其他主机 - ❌ 其他主机不能访问本机虚拟机

使用场景:创建一个与其他机器隔离的网络,用于测试恶意软件、搭建封闭实验环境等。

三种模式对比总结

能力 桥接模式 NAT模式 仅主机模式
访问互联网
主机↔虚拟机
虚拟机之间
外机访问虚拟机 ❌(需端口映射)
IP独立性 独立IP 共享主机IP 仅内网IP

安装CentOS 7

准备工作

  1. 镜像来源:从CentOS官网或国内镜像站(阿里云、清华、中科大)下载ISO镜像
  2. 版本选择:CentOS 7(教程使用的版本)
  3. root密码:安装时设置强密码
  4. 语言选择:建议安装中文支持,但系统语言可保持英文(避免部分软件中文路径问题)
  5. 桌面系统:可选择GNOME桌面或最小安装(Minimal Install)

CentOS界面布局

组件 说明
终端 (Terminal) 命令行操作界面,Linux最重要的交互方式
文件夹 (Places) 图形化的文件管理器
设置 系统配置界面

VI编辑器基础

CentOS中默认的文本编辑器是VI/VIM:

模式 说明
命令模式 打开文件后的默认模式,只能输入命令,不能编辑文本
编辑模式(插入模式) i 进入,可以修改文本内容
底行模式 Esc 再按 : 进入,用于保存、退出、查找替换等

常见问题: 1. 只读权限:当前用户没有写入权限,需用 sudo 或切换root 2. 临时.swp文件:上次编辑未正常退出,产生交换文件。解决:保存退出后删除 .文件名.swp

配置yum源

CentOS默认的yum源在国外,速度慢。建议替换为阿里云yum源

# 备份原有源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 下载阿里云源(以CentOS 7为例)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 清除缓存并生成新缓存
yum clean all
yum makecache

专业解读:由于CentOS 8已停止维护,官方源已失效。CentOS 7的源也可能在未来受限,建议考虑迁移到Rocky Linux或AlmaLinux。

配置静态IP

服务器通常需要固定IP,配置方法:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改或添加:

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
DNS1=223.5.5.5
DNS2=114.114.114.114

重启网络:

systemctl restart network


XShell远程连接

常用SSH客户端

工具 特点 费用
Xshell 功能强大、稳定、支持标签页 商业软件(个人版免费)
FinalShell 国产、免费、集成FTP、实时监控 免费
MobaXterm 功能全面、内置X Server、便携版 个人免费/专业版收费
SecureCRT 老牌专业工具、脚本支持强 商业收费
PuTTY 轻量开源、免费 完全免费

SSH连接基础

SSH(Secure Shell,安全外壳协议):加密的远程登录协议,默认端口22

连接方式

ssh username@ip_address
# 示例:ssh root@192.168.1.132

解决中文乱码

Xshell中若出现中文乱码: 1. 文件 → 属性 → 终端 → 编码 → 选择 UTF-8 2. 确保Linux系统的LANG设置为UTF-8:echo $LANG 应输出 en_US.UTF-8zh_CN.UTF-8

SSH Key免密登录

SSH Key基于非对称加密实现免密登录:

  1. 客户端生成密钥对ssh-keygen(生成公钥 id_rsa.pub 和私钥 id_rsa
  2. 客户端把公钥发给服务端ssh-copy-id user@server 或手动追加到服务端的 ~/.ssh/authorized_keys
  3. 客户端用私钥加密消息,发给服务端
  4. 服务端用公钥解密,解密成功则认证通过
  5. 客户端免密登录成功

核心原理:"你之前同意保存我的公钥,所以可以解密我的消息,所以认得我"。私钥永远留在客户端,绝不外传。


物理机和虚拟机文件传输

方式 方向 说明
xftp / FileZilla / FlashFTP 双向 图形化SFTP/FTP客户端,拖拽传输
Xshell拖曳 上传 直接拖拽文件到Xshell窗口
sz / rz 下载/上传 通过Zmodem协议传输,需安装 lrzsz
VMware Tools拖动 传入 安装VMware Tools后,直接拖拽
QQ / 微信 双向 通过聊天工具发送(适合小文件)
wget 下载 命令行下载工具,从URL下载文件
scp 双向 基于SSH的安全复制命令

scp命令示例

# 上传本地文件到远程
scp 1.txt root@192.168.1.66:/tmp

# 上传本地目录到远程(-r递归)
scp -r folder root@192.168.1.66:/tmp

# 从远程下载到本地
scp root@192.168.1.66:/tmp/1.txt ./


安全测试视角:虚拟化安全 虚拟机是安全测试和渗透测试的重要工具,但也存在安全考量: - 虚拟机逃逸 (VM Escape):攻击者利用 hypervisor 漏洞从虚拟机突破到宿主机,是最严重的虚拟化安全威胁。历史上 VMware、KVM、Xen 都曾出现过此类漏洞 - 快照安全:VMware 快照可能包含敏感信息(如内存中的密码、密钥),分享虚拟机镜像时应清理快照 - 网络隔离:测试恶意软件时,建议使用"仅主机模式"或自定义隔离网络,防止恶意流量外泄 - Docker 容器逃逸:容器共享宿主机内核,如果容器内获得 root 权限且存在内核漏洞,可能导致容器逃逸。生产环境中应避免以 root 身份运行容器

安全测试视角:最小化安装原则 在安全测试中,靶机或测试服务器的安装应遵循最小化原则: - 选择 Minimal Install,减少攻击面 - 关闭不必要的服务(systemctl list-unit-files | grep enabled) - 及时更新系统和软件补丁 - 配置强密码策略和 SSH 密钥认证