Proxmox VE Post-Install Hardening
Essential post-install steps for a new Proxmox VE node: remove the subscription nag, switch to the free repo, disable the enterprise repo, update the system, and fix storage.
Distrosproxmox, debian
Shell
bashUpdated
Script
# 1. Disable enterprise (paid) repository
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
> /etc/apt/sources.list.d/pve-community.list
sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list 2>/dev/null || true
sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/ceph.list 2>/dev/null || true
# 2. Remove subscription nag from the web UI
sed -i.bak "s/NotFound/Active/g" \
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
# 3. Update all packages
apt-get update && apt-get dist-upgrade -y
# 4. Install useful tools
apt-get install -y \
sudo curl wget git htop iotop ncdu \
net-tools nmap dnsutils \
qemu-guest-agent
# 5. Disable IPv6 if not in use (optional — comment out if you use it)
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.d/99-proxmox.conf
sysctl -p /etc/sysctl.d/99-proxmox.conf
# 6. Set timezone
timedatectl set-timezone America/New_York
echo ""
echo "Done. Reboot recommended: reboot"
What this does
Prepares a freshly installed Proxmox VE node for homelab use:
- Switches to the community (free) repo — the enterprise repo requires a paid subscription and will block updates otherwise
- Removes the subscription nag popup that appears on every login (UI-only change, no functionality impact)
- Runs a full system update via
dist-upgrade - Installs common tools useful for day-to-day administration
- Optionally disables IPv6 to reduce attack surface if you’re not using it
- Sets the timezone
Prerequisites
- Fresh Proxmox VE 8.x install (Debian 12 “Bookworm” base)
- Root access (SSH or console)
- Internet connectivity from the node
Set your timezone
Replace America/New_York with your zone. Find yours:
timedatectl list-timezones | grep Your_Region
Harden SSH on the Proxmox node
Proxmox uses the standard Debian sshd. Apply the SSH hardening playbook after this one.
Notes
- Run as
rootdirectly — Proxmox nodes don’t use sudo by default - The nag patch modifies
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; a.bakbackup is created automatically. It will revert after aproxmox-widget-toolkitpackage update — reapply thesedline if needed qemu-guest-agentenables memory/disk reporting from within VMs that have it installed; harmless if you only run LXC containers- Ceph enterprise repo is also disabled — if you use Ceph, re-enable the community Ceph repo separately