Installing Proxmox on a Laptop and Building a Cybersecurity Lab
Introduction
You do not have to use an old laptop. That was just the premise of this project. You can use any hardware at your disposal and follow this guide with success. It is a huge project that encompasses setting up a security lab in Proxmox and contains both attack and detection setups.
This comprehensive guide will walk you through installing Proxmox Virtual Environment (Proxmox VE) on a laptop and configuring it to host a complete cybersecurity lab environment. Whether you're learning penetration testing, defensive security, or network security, this lab will provide you with a safe, isolated environment to practice.
Prerequisites
Hardware Requirements
- Laptop/Desktop: Any modern system with virtualization support (Intel VT-x or AMD-V)
- RAM: Minimum 16GB (32GB+ recommended for multiple VMs)
- Storage: At least 100GB free space (SSD recommended)
- CPU: Multi-core processor (4+ cores ideal)
- Network: Ethernet connection (WiFi can work but wired is preferred)
Software Requirements
- Proxmox VE ISO image (latest version)
- USB drive (8GB+)
- Rufus or similar tool for creating bootable USB
Part 1: Installing Proxmox VE
Step 1: Download Proxmox VE
- Visit the Proxmox VE download page
- Download the latest ISO image (approximately 1GB)
- Verify the checksum to ensure file integrity
Step 2: Create Bootable USB
On Windows (using Rufus):
- Download and install Rufus
- Insert your USB drive
- Select the Proxmox ISO file
- Choose GPT partition scheme and UEFI target
- Click "Start" and wait for completion
On Linux/Mac (using dd):
# Identify your USB device
lsblk # or diskutil list on Mac
# Write the ISO (replace /dev/sdX with your USB device)
sudo dd bs=4M if=/path/to/proxmox-ve_*.iso of=/dev/sdX status=progress && sync
Step 3: Install Proxmox VE
-
Boot from USB: Restart your laptop and boot from the USB drive (usually F12 or F2 for boot menu)
-
Select Installation: Choose "Install Proxmox VE" from the boot menu
-
License Agreement: Accept the EULA
-
Target Disk: Select the disk where you want to install Proxmox
- Warning: This will erase all data on the selected disk
- For a laptop, you may want to use an external drive or secondary internal drive
-
Location and Timezone: Configure your location and timezone settings
-
Administration Password: Set a strong root password (save this securely!)
-
Network Configuration:
- Hostname: Set a hostname (e.g.,
proxmox-lab.local) - IP Address: Configure a static IP (recommended) or use DHCP
- Gateway: Your router's IP address
- DNS: Use reliable DNS servers (8.8.8.8, 1.1.1.1)
- Hostname: Set a hostname (e.g.,
-
Complete Installation: Review settings and click "Install"
-
Reboot: After installation completes, remove the USB and reboot
Step 4: Access Proxmox Web Interface
- After reboot, note the IP address displayed on the console
- Open a web browser and navigate to:
https://your-ip-address:8006 - Accept the SSL certificate warning (self-signed certificate)
- Login with:
- Username:
root - Password: The password you set during installation
- Username:
Part 2: Initial Proxmox Configuration
Update Proxmox
First, update your Proxmox installation to the latest packages:
# SSH into your Proxmox server or use the console
apt update && apt upgrade -y
Configure Storage
- Navigate to Datacenter → Storage
- Review default storage (usually
localandlocal-lvm) - For additional storage, click Add and select storage type:
- Directory: For simple file storage
- ZFS: For advanced features (snapshots, compression)
- NFS/CIFS: For network storage
Configure Network
- Go to Datacenter → Network
- Review default bridge (
vmbr0) - For advanced networking (VLANs, multiple bridges), click Create → Linux Bridge
Part 3: Building Your Cybersecurity Lab
Lab Architecture Overview
A typical cybersecurity lab includes:
- Attack Machines: Kali Linux, Parrot Security
- Target Machines: Vulnerable VMs (Metasploitable, DVWA, WebGoat)
- Defense Tools: Security Onion, ELK Stack, Splunk
- Network Devices: pfSense, OPNsense (for network segmentation)
- Monitoring: Wireshark, tcpdump, network monitoring tools
Creating Your First VM: Ubuntu Server
We'll start by creating an Ubuntu Server VM that can serve as a base for various security tools:
-
Download Ubuntu ISO:
- Visit Ubuntu Server download page
- Download the latest LTS version
-
Upload ISO to Proxmox:
- Go to local storage → Content → ISO Images
- Click Upload and select your Ubuntu ISO
-
Create New VM:
- Click Create VM (top right)
- General:
- VM ID:
100(or any available number) - Name:
ubuntu-server-base
- VM ID:
- OS:
- Use CD/DVD disc image file
- Storage:
local - ISO image: Select your uploaded Ubuntu ISO
- System:
- Graphics Card: Default (VGA)
- Qemu Agent: Enable (useful for management)
- Hard Disk:
- Bus/Device: SCSI
- Storage:
local-lvm - Disk size:
40GB(adjust based on needs) - Cache: Write back (for better performance)
- CPU:
- Sockets:
1 - Cores:
2(adjust based on host resources) - Type:
host(for best performance)
- Sockets:
- Memory:
- Memory:
2048MB (2GB minimum, 4GB+ recommended)
- Memory:
- Network:
- Bridge:
vmbr0 - Model:
VirtIO(for best performance)
- Bridge:
- Confirm: Review and click Finish
-
Install Ubuntu:
- Start the VM
- Open console (click on VM → Console)
- Follow Ubuntu installation wizard
- Install Qemu Guest Agent:
sudo apt install qemu-guest-agent -y
Installing Security Tools
Once you have a base Ubuntu VM, you can install various security tools:
Installing Kali Linux Tools
# Add Kali repositories (use with caution)
sudo apt update
sudo apt install -y kali-linux-default
Installing Docker for Containerized Tools
# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Add user to docker group
sudo usermod -aG docker $USER
Installing Security Tools Manually
# Network analysis tools
sudo apt install -y wireshark tcpdump nmap netcat
# Web application testing
sudo apt install -y burpsuite sqlmap nikto
# Password tools
sudo apt install -y john hashcat hydra
Part 4: Network Configuration for Security Lab
Creating VLANs
For proper network isolation in your security lab:
-
Configure VLANs on Proxmox:
- Go to Network → Create → Linux Bridge
- Bridge:
vmbr1 - VLAN aware: Enable
- VLAN tag:
10(for management network)
-
Assign VLANs to VMs:
- Edit VM → Hardware → Network Device
- Bridge:
vmbr1 - VLAN Tag:
10(or appropriate VLAN)
Setting Up pfSense for Network Segmentation
-
Download pfSense ISO: Get from pfSense website
-
Create pfSense VM:
- VM ID:
200 - Name:
pfsense-router - Network: Create two network adapters:
vmbr0(WAN - connects to your physical network)vmbr1(LAN - internal lab network)
- Memory: 1GB minimum
- CPU: 2 cores
- VM ID:
-
Configure pfSense:
- Install pfSense following the wizard
- Configure WAN and LAN interfaces
- Set up firewall rules for lab isolation
- Configure DHCP for lab network
Part 5: Attack and Detection Setup
Attack Machines
Kali Linux VM
-
Download Kali ISO: From Kali Linux website
-
Create VM:
- VM ID:
300 - Name:
kali-attacker - Memory: 4GB
- CPU: 2 cores
- Storage: 50GB
- VM ID:
-
Install Kali: Follow standard installation process
-
Update and Configure:
sudo apt update && sudo apt upgrade -y
sudo apt install -y kali-linux-default
Detection and Monitoring
Security Onion
Security Onion is a Linux distribution for intrusion detection, network security monitoring, and log management.
-
Download Security Onion ISO
-
Create VM:
- VM ID:
400 - Name:
security-onion - Memory: 8GB+ (16GB recommended)
- CPU: 4+ cores
- Storage: 200GB+
- VM ID:
-
Install and Configure: Follow Security Onion installation wizard
ELK Stack (Elasticsearch, Logstash, Kibana)
For centralized logging and analysis:
# On Ubuntu VM
# Install Docker Compose
sudo apt install -y docker-compose
# Create ELK stack with Docker Compose
# (Use official ELK stack Docker images)
Part 6: Best Practices and Security
Proxmox Security
- Change Default Ports (optional but recommended):
# Edit web interface port
nano /etc/default/pveproxy
# Change port from 8006 to custom port
-
Enable Firewall:
- Go to Firewall → Options
- Enable firewall
- Configure rules for necessary ports
-
Regular Updates:
apt update && apt upgrade -y
- Backup Strategy:
- Configure regular VM backups
- Store backups on separate storage
- Test restore procedures
VM Management Tips
- Use Templates: Create VM templates for faster deployment
- Snapshots: Take snapshots before major changes
- Resource Limits: Set appropriate CPU and memory limits
- Network Isolation: Use VLANs to isolate lab networks
Part 7: Advanced Configurations
Setting Up a Cluster (Optional)
For multiple Proxmox nodes:
- Configure Hostnames: Ensure proper DNS resolution
- Add Nodes: Go to Datacenter → Add → Proxmox Node
- Configure Shared Storage: Set up NFS or Ceph storage
- Enable HA: Configure High Availability for critical VMs
Storage Optimization
- Use ZFS: For snapshots and compression
- Thin Provisioning: Save disk space
- SSD Cache: Use SSD for frequently accessed data
Troubleshooting
Common Issues
VM Won't Start:
- Check available resources (RAM, CPU, storage)
- Verify ISO image integrity
- Check VM configuration
Network Issues:
- Verify bridge configuration
- Check firewall rules
- Ensure proper VLAN tagging
Performance Issues:
- Allocate appropriate resources
- Use VirtIO drivers
- Enable CPU type "host"
- Use SSD storage
Conclusion
You now have a fully functional Proxmox-based cybersecurity lab! This environment provides:
- Isolated Testing: Safe environment for security testing
- Realistic Scenarios: Multiple VMs for complex attack/defense scenarios
- Learning Platform: Hands-on experience with security tools
- Scalability: Easy to add new VMs and services
Remember to:
- Keep your lab isolated from production networks
- Regularly update all systems
- Practice responsible disclosure
- Use this lab for learning and authorized testing only
Additional Resources
- Proxmox VE Documentation
- Kali Linux Documentation
- Security Onion Documentation
- pfSense Documentation
Happy labbing! 🚀

