Proxmox VE � �pisode 08

?é S�curit� Proxmox � Firewall, 2FA & SSL

Ton homelab est vuln�rable par d�faut. Apprends � le verrouiller comme un pro : pare-feu Proxmox int�gr�, comptes utilisateurs avec r�les pr�cis, double authentification TOTP, certificats SSL Let's Encrypt et durcissement SSH pour dormir tranquille.

Avril 2026
?é Par OWL
é ~40 min de lecture
Interm�diaire
Illustration s�curit� Proxmox VE � Firewall, 2FA, SSL

S�curiser son Proxmox comme un Pro

💰
Firewall PVE
Configurer le pare-feu int�gr� de Proxmox : r�gles datacenter, node et VM. Bloquer tout par d�faut, ouvrir seulement ce qu'il faut.
💰
Utilisateurs & R�les
Cr�er des comptes limit�s avec des permissions granulaires. Ne jamais utiliser root au quotidien � c'est la r�gle num�ro 1.
💰
2FA � Double Auth
Activer la double authentification TOTP sur l'interface web. M�me si ton mot de passe fuite, personne ne rentre sans le code OTP.
💰
SSL & SSH S�curis�
Remplacer le certificat auto-sign� par un vrai certificat Let's Encrypt via ACME, et durcir l'acc�s SSH pour �liminer les attaques brute-force.

S�curit� Proxmox de A � Z

La m�taphore d'OWL : Le Ch�teau Fort ?é

Un Proxmox non s�curis�, c'est comme un ch�teau fort avec la herse lev�e, les portes grandes ouvertes, et tout le monde en uniforme de roi. Les firewalls sont les douves et les portes � ils laissent entrer uniquement les ambassadeurs autoris�s. Les utilisateurs avec r�les sont les gardes : certains peuvent ouvrir toutes les portes, d'autres seulement la cuisine.

La 2FA, c'est le sceau royal en plus du mot de passe � m�me si un espion conna�t ton mot de passe, sans le sceau physique il ne rentre pas. Le certificat SSL, c'est la grande enseigne officielle du ch�teau : les visiteurs savent qu'ils sont au bon endroit et pas dans une copie pi�g�e. ?é

1. �tat par D�faut � Ce qui est Vuln�rable ?é

Apr�s une installation standard de Proxmox, voici ce que tu as par d�faut et pourquoi c'est risqu� :

�l�ment Par d�faut Risque Action
Compte root Seul compte admin ?é �lev� Cr�er un compte d�di�
Firewall D�sactiv� ?é �lev� Activer + r�gles
2FA D�sactiv�e ?é �lev� Activer TOTP
Certificat SSL Auto-sign� ?é Moyen Let's Encrypt ACME
SSH root login Activ� (port 22) ?é �lev� Cl�s SSH + fail2ban
Port Web UI 8006 ouvert partout ?é Moyen Restreindre aux IPs LAN

R�gle absolue : N'expose JAMAIS l'interface web Proxmox (port 8006) directement sur Internet. Utilise un VPN (WireGuard) ou un tunnel s�curis� pour acc�der � distance.

2. Pare-feu Proxmox (PVE Firewall) ?é

Le firewall Proxmox a 3 niveaux ind�pendants : Datacenter (r�gles globales), Node (r�gles du serveur), et VM/LXC (r�gles par machine). Ils s'appliquent en cascade.

1

??é Activer le Firewall au niveau Datacenter

Panneau gauche é Datacenter é onglet "Firewall" é sous-onglet "Options" é Firewall : Yes é "Save". C'est le switch ma�tre, doit �tre ON pour que les r�gles s'appliquent.

2

??é Cr�er un Security Group (groupe de r�gles r�utilisable)

Datacenter é Firewall é Security Group é Create é Nom : admin-access. Dans ce groupe, ajoute une r�gle IN � Accept � TCP � Port 8006 (interface web) et IN � Accept � TCP � Port 22 (SSH). Clique "Add" pour chaque r�gle.

3

??é Activer le Firewall sur le Node et appliquer le groupe

Node pve é Firewall é Options é Firewall : Yes. Puis dans Firewall é Rules é bouton "Insert Security Group" é s�lectionner admin-access. Le groupe de r�gles s'applique au node.

4

?é Restreindre l'acc�s � tes IPs LAN uniquement

Dans la r�gle du port 8006, colonne "Source" é entre 192.168.1.0/24 (ton r�seau local). Ainsi l'interface web n'est accessible que depuis ton LAN. Si quelqu'un essaie depuis Internet é bloqu�.

?é CLI � Pare-feu Proxmox (pvefirewall)
# Activer le firewall au niveau datacenter
pvesh set /cluster/firewall/options --enable 1

# Activer sur le node
pvesh set /nodes/pve/firewall/options --enable 1

# Ajouter une r�gle : autoriser port 8006 depuis le LAN
pvesh create /nodes/pve/firewall/rules \
--action ACCEPT --type in \
--proto tcp --dport 8006 \
--source 192.168.1.0/24 \
--comment "Web UI depuis LAN uniquement"

# Voir les r�gles actives
pvesh get /nodes/pve/firewall/rules

# V�rifier l'�tat du firewall
pvesh get /nodes/pve/firewall/options
{"enable": 1, "log_level_in": "nolog", ...}

3. Utilisateurs & R�les � Principe du Moindre Privil�ge ?é

Ne jamais travailler avec root au quotidien. Cr�e un compte admin d�di� avec les droits n�cessaires et utilise root uniquement en cas d'urgence.

R�le Proxmox Permissions Usage typique
Administrator Tout sur tout Compte admin principal
PVEAdmin G�rer VMs + LXC Admin VMs sans droits syst�me
PVEVMUser D�marrer/arr�ter ses VMs Utilisateur standard, acc�s VMs allou�es
PVEAuditor Lecture seule Monitoring, supervision
1

??é Cr�er un nouveau compte utilisateur

Datacenter é Permissions é Users é Add é Remplis : User ID (ex: admin-owl), Realm = pve (authentification locale), Password + confirmation é "Add".

2

??é Assigner un r�le (permission)

Datacenter é Permissions é Add é User Permission é Path = / (tout le datacenter) é User = admin-owl@pve é Role = Administrator é "Add".

3

??é Tester le nouveau compte

D�connecte-toi de root é connecte-toi avec admin-owl + Realm: pve. V�rifie que tu vois toutes les VMs. D�s validation, utilise uniquement ce compte au quotidien.

?é CLI � Cr�er un utilisateur et assigner un r�le
# Cr�er un utilisateur local
pveum user add admin-owl@pve --password 'MonMotDePasse!' --comment "Admin principal OWL"

# Assigner le r�le Administrator sur tout le datacenter
pveum acl modify / --users admin-owl@pve --roles Administrator

# Lister tous les utilisateurs
pveum user list
+--------------------------------------------+
� userid � comment � enable �
+------------------+--------------+----------�
� admin-owl@pve � Admin OWL � 1 �
� root@pam � � 1 �
+--------------------------------------------+


# Voir les permissions assign�es
pveum acl list

4. Double Authentification 2FA � TOTP ?é

Le TOTP (Time-based One-Time Password) est le standard de la 2FA : une app g�n�re un code � 6 chiffres qui change toutes les 30 secondes. Compatible avec Google Authenticator, Aegis (open-source recommand�) ou Bitwarden.

1

??é Naviguer vers les param�tres 2FA

Clique sur ton nom d'utilisateur en haut � droite é "My Account". Ou via : Datacenter é Permissions é Two Factor pour g�rer globalement.

2

??é Ajouter un facteur TOTP

Dans "Two Factor Authentication" é bouton "Add" é s�lectionner "TOTP". Proxmox affiche un QR Code. Scanne-le avec ton app Aegis/Google Auth é l'app g�n�re des codes � 6 chiffres.

3

??é Valider le TOTP

Entre le code � 6 chiffres affich� dans ton app dans le champ "Verification Code" é "Add". La 2FA est active. � la prochaine connexion : mot de passe + code TOTP.

!

?é Sauvegarder le Recovery Key !

Proxmox g�n�re une cl� de r�cup�ration one-time. Sauvegarde-la absolument (gestionnaire de mots de passe Bitwarden/Vaultwarden). Si tu perds ton t�l�phone sans cette cl� é acc�s impossible !

Recommandation OWL : Utilise Aegis (Android, open-source, chiffr�) ou Bitwarden Authenticator avec backup chiffr�. �vite les apps propri�taires sans backup (risque de perte si tu changes de t�l�phone).

5. Certificat SSL Let's Encrypt via ACME ?é

Remplace le certificat auto-sign� par un vrai certificat SSL sign� par Let's Encrypt. Proxmox supporte ACME nativement avec d�fi HTTP ou DNS. Pr�requis : un nom de domaine (ex: proxmox.mondomaine.fr) et un acc�s depuis l'ext�rieur (ou DNS Challenge).

1

??é Configurer un compte ACME

Datacenter é ACME é bouton "Add" dans la section Accounts é Entrer ton email é s�lectionner le r�pertoire Let's Encrypt V2 é Accepter les CGU é "Register".

2

??é Configurer le certificat sur le Node

Node pve é onglet "Certificates" é bouton "Add" dans ACME é Domain = proxmox.mondomaine.fr é Challenge Type = DNS (si via Cloudflare) ou HTTP (si le port 80 est accessible) é "Create".

3

??é �mettre le certificat

Clique "Order Certificates Now". Proxmox contacte Let's Encrypt, r�sout le d�fi, re�oit et installe le certificat automatiquement. Le navigateur affiche ensuite un ?é cadenas vert sans avertissement.

?é CLI � ACME Let's Encrypt
# Enregistrer un compte ACME (Let's Encrypt)
pvenode acme account register default admin@mondomaine.fr

# Ajouter un domaine au node (d�fi DNS via Cloudflare)
pvenode config set --acme domains=proxmox.mondomaine.fr

# Configurer le plugin DNS Cloudflare
pvenode acme plugin add dns cf-dns \
--api cf \
--data "CF_Token=ton_token_cloudflare"

# Commander le certificat
pvenode acme cert order
Task OK: Certificate successfully ordered from Let's Encrypt é
Certificate valid until: 2026-07-11


# Le renouvellement automatique est g�r� par le timer systemd
systemctl status pve-daily-update.service

6. Durcissement SSH � Cl�s & Fail2ban ?é

SSH avec mot de passe + port 22 est la cible num�ro 1 des bots. Deux contre-mesures essentielles : authentification par cl� SSH (d�sactiver les mots de passe) et Fail2ban pour bloquer les tentatives r�p�t�es.

1

??é Ajouter ta cl� SSH publique dans Proxmox

Node pve é onglet "Shell" é ex�cute les commandes CLI ci-dessous pour cr�er le dossier .ssh et coller ta cl� publique. Ou : colle directement ta cl� dans le champ "SSH Keys" de ton profil utilisateur Proxmox.

2

?é D�sactiver l'authentification par mot de passe SSH

Dans le Shell Proxmox : �dite /etc/ssh/sshd_config é PasswordAuthentication no, PermitRootLogin prohibit-password é systemctl restart ssh. Teste la connexion par cl� AVANT de fermer ta session !

?é CLI � SSH Hardening + Fail2ban
### 1. G�n�rer une paire de cl�s SSH sur ton PC (si pas d�j� fait) ###
# Sur ton PC Windows/Linux/Mac :
ssh-keygen -t ed25519 -C "proxmox-homelab"
Your identification: ~/.ssh/id_ed25519
Your public key: ~/.ssh/id_ed25519.pub


### 2. Copier la cl� sur Proxmox ###
ssh-copy-id root@192.168.1.50
# Ou manuellement dans le Shell Proxmox :
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA... ton-email" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

### 3. S�curiser la config SSH ###
nano /etc/ssh/sshd_config
PasswordAuthentication no é interdire les mdp
PermitRootLogin prohibit-password é cl�s OK, mdp NON
Port 22 é optionnel : changer le port
MaxAuthTries 3 é limiter les tentatives

systemctl restart ssh

### 4. Installer Fail2ban ###
apt install -y fail2ban
cat > /etc/fail2ban/jail.local <<EOF
[sshd]
enabled = true
maxretry = 5
bantime = 3600
findtime = 600
EOF
systemctl enable --now fail2ban
é fail2ban.service - active (running) é

# Voir les IPs actuellement bannies
fail2ban-client status sshd
Currently banned: 3 IPs (183.x.x.x, 45.x.x.x, 91.x.x.x)

7. Isolation des VMs � Firewall par Machine ??é

Tu peux appliquer des r�gles de firewall directement sur chaque VM ou LXC. Une VM compromise ne peut alors pas atteindre les autres ou le node Proxmox lui-m�me.

1

??é Activer le Firewall sur une VM sp�cifique

S�lectionne la VM é onglet "Firewall" é sous-onglet "Options" é Firewall : Yes. Active aussi "DHCP : Yes" pour laisser passer le DHCP.

2

??é Ajouter les r�gles d'entr�e (IN)

VM é Firewall é Rules é Add : Direction IN, Action ACCEPT, Proto tcp, Port 80,443 pour un serveur web. Politique par d�faut : DROP � tout ce qui n'est pas autoris� est bloqu�.

3

??é Activer le Firewall sur la carte r�seau de la VM

VM é Hardware é double-clic sur la carte r�seau é cocher é Firewall. Sans cette case, le firewall de la VM n'est pas appliqu� m�me s'il est activ� !

?é CLI � Firewall VM via pvesh
# Activer le firewall sur VM 100
pvesh set /nodes/pve/qemu/100/firewall/options --enable true

# Ajouter r�gle : autoriser HTTP (80) et HTTPS (443)
pvesh create /nodes/pve/qemu/100/firewall/rules \
--action ACCEPT --type in --proto tcp --dport "80,443" \
--comment "HTTP/HTTPS public"

# Politique par d�faut : DROP tout le reste
pvesh set /nodes/pve/qemu/100/firewall/options --policy_in DROP

# Voir les r�gles de la VM
pvesh get /nodes/pve/qemu/100/firewall/rules
pos 0: IN ACCEPT tcp dport=80,443

é Checklist � Proxmox S�curis�

  • éFirewall activ� (Datacenter + Node) avec r�gles restrictives
  • éCompte non-root cr�� et utilis� au quotidien (root en urgence only)
  • é2FA TOTP activ�e sur ton compte admin + recovery key sauvegard�e
  • éCertificat SSL Let's Encrypt (plus de warning navigateur)
  • éSSH par cl� uniquement (PasswordAuthentication no) + Fail2ban actif
  • éPort 8006 accessible uniquement depuis le LAN (pas expos� sur Internet)

?é Probl�mes Courants & Solutions

é J'ai activ� le firewall et je n'arrive plus � acc�der � l'interface web é

?é Connecte-toi en SSH ou via console physique é v�rifie les r�gles : pvesh get /nodes/pve/firewall/rules. Assure-toi d'avoir une r�gle ACCEPT TCP port 8006. En dernier recours : pvesh set /nodes/pve/firewall/options --enable false pour d�sactiver temporairement.

é J'ai perdu mon t�l�phone avec la 2FA et je ne peux plus me connecter é

?é Si tu as ta cl� de r�cup�ration é utilise-la � la place du code TOTP. Si non, connecte-toi en SSH root é pveum user modify admin-owl@pve --keys "" pour supprimer la 2FA de l'utilisateur. C'est pour �a que le compte root SSH reste essentiel en dernier recours.

é Le d�fi ACME Let's Encrypt �choue é

?é Pour le d�fi HTTP : ton domaine doit pointer vers l'IP de Proxmox et le port 80 doit �tre accessible depuis Internet. Pour le d�fi DNS (recommand� pour homelab) : utilise un plugin DNS (Cloudflare, OVH, etc.) � pas besoin d'exposer ton serveur. V�rifie que le token API DNS a les droits en �criture sur la zone.

é Fail2ban banne mon propre PC (trop de tentatives de connexion) é

?é Ajoute ton IP LAN dans la whitelist fail2ban : nano /etc/fail2ban/jail.local é ajouter ignoreip = 127.0.0.1/8 192.168.1.0/24. Puis systemctl restart fail2ban. Les IPs de ton r�seau local ne seront jamais bannies.