ATTENTION : cet article requiert d’être révisé : il manque un filtrage IPv6, le filtrage sur vmbr0 bloque également la “console” d’une VM depuis l’interface Web de Proxmox, etc.
 
Cet article s’applique en particulier à une installation de la distribution « VPS Proxmox 2.1 » sur un serveur dédié OVH mais devrait être valide pour une installation effectuée à partir de l’image ISO officielle proposée par Proxmox.

 

Voici la liste des étapes suggérées pour sécuriser son serveur Proxmox :

  • Étape 1. Mettre à jour le serveur Proxmox
  • Étape 2. Changer le mot de passe root
  • Étape 3. Installer / configurer fail2ban
  • Étape 4. Changer le port de l’interface graphique de Proxmox
  • Étape 5. Installer / configurer un firewall (iptables)


Étape 1. Mettre à jour le serveur Proxmox

Se connecter en ssh avec le compte root et exécuter les 2 commandes suivantes :

La première ligne met à jour la liste des paquets disponibles.

La seconde ligne exécute la mise à jour des paquets pour lesquelles des mises à jour sont disponibles.

Je recommande de rebooter le serveur Proxmox étant donné que la première fois qu’on met à jour un serveur Proxmox qui n’a jamais été mis à jour auparavant, il y a un nombre important de mises à jour dont certaines pourraient nécessiter un redémarrage du serveur.

Étape 2. Changer le mot de passe root

Il est possible de changer le mot de passe du compte root via ssh ou via l’interface graphique de Proxmox.

Première méthode : via ssh

Se connecter au serveur via ssh avec le compte root :

Changer le mot de passe du compte root :


Seconde méthode : via l’interface graphique

Se connecter à l’interface graphique de Proxmox (par exemple via une url au format suivant https://nsXXXXXXX.ovh.net:8006 ou https://votre.adresse.ip.v4:8006/

Notez que le port par défaut est le port 8006 et que l’accès n’est possible que via une connexion “https” encryptée.

Une fois identifié dans l’interface, il faut :

  1. cliquer sur “Centre de données” dans la colonne de gauche
  2. cliquer en haut de la page sur l’onglet “Utilisateurs”
  3. cliquer sur le compte “root”
  4. cliquer sur le bouton “Mot de passe” en haut de la liste des utilisateurs.
  5. saisir le nouveau mot de passe et le confirmer en le saisissant une seconde fois.

Note : c’est le même compte root qui est utilisé pour se connecter vis ssh ou à l’interface graphique : le changement du mot de passe affecte donc ces deux types d’accès au serveur Proxmox.

Étape 3. Installer / configurer fail2ban

Fail2ban surveille les logs de divers services afin de détecter des tentatives d’accès infructueuses et après un certain nombre d’échecs, il bloque automatiquement l’adresse IP correspondante pour quelques minutes. Le but premier de fail2ban est d’éviter les tentatives d’intrusions par « bruteforce », technique qui consiste a essayer les mots de passe couramment utilisés à l’aide d’un robot.

Pour installer fail2ban, il suffit d’exécuter (via une connexion ssh avec l’utilisateur root) :

Fail2ban est automatiquement démarré suite à son installation ou suite au reboot du serveur.

Par défaut, fail2ban surveille uniquement les tentatives d’accès ssh et bloque l’IP après 6 tentatives infructueuses pour une période de 10 minutes. Une IP bloquée n’a plus du tout accès au serveur, pas même à l’interface graphique de Proxmox par exemple.

Étape 4. Changer le port de l’interface graphique

L’interface graphique de Proxmox est en fait une interface Web servie par une serveur Web Apache.
Par défaut, le serveur Apache répond à 3 ports différents : 80, 443 et 8006.


Première modification : désactiver la redirection du port 80 et 443 vers le port 8006

Tout d’abord, il faut supprimer le lien symbolique vers le fichier de configuration spécifique à la redirection d’un accès sur le port 80 ou sur le port 443 vers le port 8006. Voici la commande à exécuter :


Deuxième modification : désactiver l’écoute des ports 80 et 443 par Apache

Ensuite, il faut éditer le fichier /etc/apache2/ports.conf et remplacer le port 80 par défaut par le port de son choix – de préférence un nombre compris entre 1024 et 49151 – en prenant soin de vérifier que le numéro choisi ne correspond pas à un port déjà utilisé ou normalement utilisé comme port par défaut pour un service répandu. Dans mon exemple, je vais prendre le port 10806.
Voici le contenu du fichier /etc/apache2/ports.conf une fois modifié : 

Les quatre modifications ont été mise en gras : 
  1. La ligne 8 a été commentée
  2. La ligne 9 a été commentée
  3. Le port 443 de la ligne 17 a été remplacé par le nouveau port 10806
  4. Le port 443 de la ligne 21 a été remplacé par le nouveau port 10806


Troisième modification : changer le port de l’interface de Proxmox

Il faut ensuite modifier le port dans le fichier de configuration Apache de l’hôte virtuel spécifique à l’interface graphique de Proxmox.
Voici le contenu du fichier /etc/apache2/sites-enabled/pve.conf une fois modifié :

Les deux modifications ont été mise en gras : 
  1. La ligne 32 a été commentée
  2. Le port 443 de la ligne 33 a été remplacé par le port 10806
Pour que Apache prenne en compte ces modifications, il faut le redémarrer via la commande suivante qui vérifie au préalable que la configuration est valide.

 (si la configuration est invalide, Apache N’est PAS redémarré et l’erreur est normalement décrite à l’écran)
ATTENTION : suite à ces 3 modifications, le seul moyen d’accéder à l’interface graphique de Proxmox sera via une url au format suivant : https://nom_ou_ip_du_serveur_proxmox:10806/ 
Il faut absolument spécifier qu’on souhaite se connecter via une connexion encryptée (“https”) et spécifier le nouveau port de l’interface graphique de Proxmox (“10806″ dans mon exemple.


Étape 5. Installer / configurer un firewall (iptables)

Par défaut, aucun firewall n’est configuré sur le serveur hôte.
Voici un script de firewall qui permet uniquement de pinger votre serveur et d’y accéder  via ssh ou via l’interface graphique (dont le port d’accès a été changé pour le port 10806 à l’étape 4. ci-dessus.)

Créer le fichier /etc/init.d/firewall et y insérer un copier-coller du contenu ci-dessus.Il faut ensuite autoriser l’exécution de ce script avec la commande suivante :

Avant d’activer ce script pour qu’il s’exécute au démarrage du serveur, il est fortement recommandé de le tester via une exécution manuelle. Ainsi, si les règles de votre firewall devaient vous bloquer à l’extérieur de votre serveur, il suffirait de le rebooter via une fonction de “hard-reboot” généralement fournie par votre hébergeur.Pour exécuter le firewall manuellement, exécuter la commande suivante :

Tester que vous êtes en mesure de vous reconnecter en ssh et que vous avez toujours accès à l’interface graphique de Proxmox avant de programmer l’exécution automatique du firewall au démarrage du serveur via la commande suivante : 

Idéalement, redémarrer le serveur Proxmox est vérifier que le firewall a bien été activé au démarrage via la commande suivante :  

qui devrait vous afficher ceci :  

Vous pensez à d’autres configurations permettant de personnaliser un serveur Proxmox ? Laissez-moi un commentaire ci-dessous !

Comments