# Sécurisation basique de son Proxmox
Je vois sur Internet des serveurs Proxmox pas sécurisés voire pire, des conseils qui préconisent d’utiliser un firewall comme pfSense installé en machine virtuelle pour sécuriser l’hyperviseur, alors que ce dernier est hébergé chez un fournisseur dont on ne sait rien du réseau. Votre fournisseur peut proposer un firewall comme chez OVH avec son système [anti-DDoS](https://www.ovh.com/fr/anti-ddos/), mais cela ne vous protège que de l’extérieur, pas de l’intérieur du réseau, qui lui comporte une multitude de serveurs d’autres clients.
La logique pour un réseau en entreprise ou chez soi, pour un home lab ou de l’auto-hébergement sera la même.
**Quel que soit l’hyperviseur, il faut que celui-ci soit sécurisé. S’il n’est pas sécurisé, toutes vos machines virtuelles ou vos conteneurs sont potentiellement compromis.**
Pour citer [Andy Grove, ](https://fr.wikipedia.org/wiki/Andrew_Grove)co-fondateur d'[Intel,](https://fr.wikipedia.org/wiki/Intel) dans son livre autobiographique qui porte le même nom : « [Seuls les paranoïaques survivent](https://livre.fnac.com/a1581225/Andrew-Grove-Seuls-les-paranoiaques-survivent) ».
\[Wikipedia\]: Il explique dans sa biographie *Seuls les paranoïaques survivent* que le moteur psychique qui lui a permis de mener son entreprise au sommet a été durant 38 ans
Ce concept est parfaitement adapté pour la sécurité.
## 1. Protection physique
Le ou les serveurs doivent être à minima protégés physiquement, comme une salle sécurisée, ou si dans un datacenter, dans une baie fermée à clefs. Mais il est aussi important de protéger l’accès au BIOS/UEFI par un mot de passe costaud et interdire le boot sur autre chose que l’hyperviseur.
Il serait dommage qu’une personne avec une clef usb boote sur un autre OS, et modifie le mot de passe root, formate le ou les disques où sont installés Proxmox, etc.
Les sociétés qui fournissent des serveurs comme OVH, Scaleway, etc. peuvent avoir dans leurs employés des personnes mal intentionnées, tout comme dans vos collègues de travail ou prestataires.
## 2. Firewall
Proxmox intègre un firewall agissant sur 3 parties distinctes :
- Datacenter
- Serveur Proxmox alias PVE
- Machines virtuelles et conteneurs LXC
La partie machine virtuelle et conteneurs est indépendante des deux autres. Elle n’a pas d'intérêt dans la sécurisation du serveur Proxmox.
Je me base seulement pour un seul hôte Proxmox, qui dans ce cas le fait de faire les règles au niveau du data center ou du node n’aura pas forcément d’impact.
### 2.1 Ports utilisés par Proxmox
Proxmox utilise par défaut ces ports pour fonctionner.
Si vous modifiez le port SSH, utilisez le même port sur tous les serveurs du cluster au risque d’avoir des surprises.
- [Proxmox VE 6 + pfsense sur un serveur dédié (1/2)](https://blog.zwindler.fr/2020/03/02/deploiement-de-proxmox-ve-6-pfsense-sur-un-serveur-dedie/)
- [Proxmox VE 6 + pfsense sur un serveur dédié (2/2)](https://blog.zwindler.fr/2020/03/09/proxmox-ve-6-pfsense-sur-un-serveur-dedie-2-3/)
- [Optimisation de PFsense dans Proxmox VE](https://blog.zwindler.fr/2020/07/06/optimisation-de-pfsense-dans-proxmox-ve/)
- [Iptables Proxmox Forward pfsense](https://gist.github.com/Akanoa/afef9cbc6b4f90a78f2c841017932589#file-iptables-proxmox-forward-pfsense)
## 3. Fail2Ban
### 3.1 Installation de Fail2Ban
```
apt install fail2ban
```
### 3.2 Configuration de fail2Ban
Editez le fichier :/etc/fail2ban/jail.local
```
[proxmox]
enabled = true
port = https,http,8006
filter = proxmox
backend = systemd
maxretry = 3
findtime = 2d
bantime = 1h
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = journal
backend = systemd
maxretry = 2
findtime = 300
banaction = iptables-allports
bantime = 86400
ignoreip = 127.0.0.1
```