Proxmox – Installation et sécurisation

Proxmox – Installation et sécurisation

Dans cet article, je vais vous initier à l’installation d’un serveur dédié. J’ai déjà effectué un lab similaire sous ESXi que vous pouvez retrouver ici. Cette fois nous utiliserons l’outil « Proxmox », un outil Open source ayant la même finalité que VMware ESXi.

 

Ce Lab sera divisé en deux parties pour plus de clarté. Ici vous trouverez dans mon premier article comment installer, configurer et sécuriser votre serveur Proxmox. Un second article suivra pour vous montrer comment installer vos machines virtuels et les connecter à Internet.

Si vous avez un nouveau serveur dédié et que vous souhaitez installer votre site Internet dans un environnement sécurisé et virtualisé, ce lab est fait pour vous !

Mon architecture contiendra l’installation et la configuration de Proxmox sur un serveur dédié Soyoustart (article1) et l’installation d’une machine virtuelle sous PFsense avec la mise en place d’une IP failover (article 2).

 

Prérequis

Pour ces deux articles et l’installation de votre serveur dédié, vous aurez besoin de plusieurs éléments :

  • Un serveur dédié ou serveur physique
  • Une IP failover (deuxième IP nécessaire pour connecter vos serveurs virtuels à Internet)
  • La distribution Proxmox
  • La distribution PFsense

 

Votre architecture finale ressemblera à ce schéma :

Archi_proxmox

Dans le rectangle rouge sont représentés les serveurs virtuels installés sur votre machine physique provenant de SoYouStart (ou autre). Derrière notre serveur Proxmox, nous installerons PFsense qui sera connecté à deux réseaux : un réseau avec l’IP failover pour l’accès à Internet et le second sur le LAN qui servira à accéder à nos serveurs virtuels.

En gris, vous pouvez voir que nous pouvons installer autant de serveur virtuel que voulu, la seule limite étant la puissance de la machine physique bien évidement.

 

 

Installation Proxmox

Si vous avez un serveur dédié sur Soyoustart, il vous suffira de vous connecter à votre panel d’administration (ici) et de lancer l’installation de Proxmox. Vous avez juste à choisir le bon « Template », je vous conseille de prendre la version la plus récente. C’est un script automatique qui va lancer l’installation, vous n’avez rien à faire à pars attendre que l’installation soit fini.

Dans ce Template, un mot de passe sera positionné pour se connecter à la machine. Il vous sera transmis par mail lorsque l’installation sera terminée.

 

Pour les personnes qui souhaitent savoir ce qu’il se passe dans ce Template ou installer Proxmox soit même sur un serveur dédié voici la démarche à suivre. Dans ce tutoriel, j’utilise la version 6.2 de Proxmox.

Je pars du principe que vous êtes déjà en possession d’un ISO de Proxmox sinon vous pouvez le télécharger sur le site du constructeur.

Une fois l’ISO lancé sur votre machine, vous arriverez sur la fenêtre ci-dessous. Sélectionnez « Install Proxmox VE » :

Proxmox_install_1

 

Acceptez la licence d’utilisation de Proxmox en cliquant sur « I agree » :

proxmox_license

 

Choisissez le disque sur lequel vous souhaitez installer votre système, ici je n’ai qu’un seul disque qui est déjà sélectionné par défaut donc je ne change rien :

 

Sélectionnez votre pays, afin d’avoir automatiquement la bonne configuration pour la configuration de l’heure et de votre clavier sinon sélectionnez directement votre zone de temps et votre type de clavier :

proxmox_loc_time

 

Rentrez un mot de passe pour le compte root de Proxmox ainsi que votre adresse mail pour recevoir des alertes sur le fonctionnement de votre serveur :

proxmox_admin

 

Configurez les paramètres de votre carte réseau, normalement si vous avez un serveur dédié il faudra configurer une adresse IP publique afin d’être connecté à Internet. Vous pouvez demander à votre hébergeur les informations IP à renseigner :

proxmox_réseau

 

Un compte-rendu de votre configuration vous est présenté. Vérifiez et cliquez sur « Install » en bas à droite si tout est bon pour lancer l’installation :

proxmox_résumé

 

Votre serveur va s’installer, il faut juste patienter :

proxmox_installation_en_cours

 

Votre serveur a finalisé son installation, vous pouvez cliquer sur « reboot » pour démarrer sur votre nouveau système :

proxmox_install_fin

 

Une fois votre système redémarré, vous devriez pouvoir vous connecter à votre serveur en web (https) via l’adresse IP configuré précédemment et le port 8006 (https://MON_IP:8006). Il vous faudra utiliser le compte « root » ainsi que le mot de passe renseigné lors de l’installation. De base vous aurez aussi la possibilité de vous y connecter via SSH.

proxmox_connection_web

 

L’installation de notre Proxmox est terminée, pour le moment notre serveur est sensible aux attaques/scans automatiques qui trainent sur la toile et nous devons donc le sécuriser !

 

 

Sécurisation de Proxmox

Afin de sécuriser notre serveur Proxmox, nous allons effectuer 3 actions importantes. Nous allons supprimer l’accès à notre serveur avec le compte root en créant un compte utilisateur avec des droits administrateurs, changer le port par défaut pour se connecter en SSH et mettre en place « fail2ban » pour sécuriser les accès en bannissant des IPs qui ont un trop grand nombre d’échec de connexion.

Commençons par retirer l’accès à notre serveur au compte root. Pour ce faire commencez par vous connecter à votre serveur en SSH via Putty ou un autre client :

Proxmox_ssh_co

 

Installez l’application « sudo » en utilisant la commande :

apt-get install sudo

proxmox_install_sudo

 

Ajoutez un nouvel utilisateur via la commande :

adduser Nom_Utilisateur

proxmox_ajout_utilisateur

 

Ajoutez un mot de passe à votre utilisateur (je ne peux que vous conseiller de mettre un mot de passe fort, très fort ou extrêmement fort 🙂 ) et validez les autres informations :

proxmox_mdp_utilisateur

 

Votre utilisateur créé, ajoutez-lui les droits administrateurs :

adduser Nom_Utilisateur sudo

proxmox_utilisateur_sudo

 

Essayez de vous connecter avec votre utilisateur tout juste créé en SSH :

proxmox_connect_utilisateur_ssh

 

Notre utilisateur à le droit de se connecter en SSH mais ne pourra pas se connecter via l’interface web de Proxmox. Il nous faut d’abord configurer son compte sur cette interface. Connectez-vous à votre console d’administration web avec l’utilisateur « root » et déplacez-vous dans le menu « Groupes » sous « Permissions » puis cliquez sur « Créer » :

proxmox_ajout_groupe

 

Nommez ce groupe « Administrateur » :

proxmox_conf_groupe

 

Allez dans le menu « Permissions » puis cliquez sur « Ajouter » et enfin « Permission du Groupe » :

proxmox_ajout_permission_groupe

 

Donnez le rôle « Administrator » sur « / » qui symbolise l’ensemble de votre système au groupe « Administrateur » :

proxmox_conf_perm_groupe

 

Dernière étape, nous devons ajouter le compte utilisateur. Pour ce faire, allez dans le menu « Utilisateurs » puis cliquez sur « Ajouter » :

proxmox_ajout_utilisateur_web

 

Renseignez les informations de votre utilisateur (Attention à mettre le même nom d’utilisateur que celui créé précédemment via ssh) en l’ajoutant dans le groupe « Administrateur » et cliquez sur « Ajouter » :

proxmox_conf_utilisateur_web

 

Essayez maintenant de vous connecter avec le compte de votre utilisateur sur l’interface web :

proxmox_connect_utilisateur_web

 

Maintenant que notre utilisateur à les droits pour se connecter à notre interface web et en ssh, nous pouvons supprimer l’accès du compte root. Pour ce faire, utilisez la commande suivante après vous être connecté en SSH avec votre nouvel utilisateur :

sudo passwd -dl root

proxmox_sup_accès_root

 

Vous pouvez essayer de vous connecter en root en SSH ou sur votre interface web, vous n’aurez plus l’accès. Seul votre compte créé précédemment pourra se connecter, ainsi un pirate informatique devra déjà trouver votre nom d’utilisateur avant de devoir essayer de trouver votre mot de passe.

 

Modifions maintenant le port d’écoute par défaut de ssh (22). Ce port étant fortement utilisé par les hackers, il est primordial de le modifier afin d’éviter au maximum les attaques (bien évidemment ce n’est pas impossible que le hacker trouve ce nouveau port). Pour ce faire, en SSH avec votre compte utilisateur, modifiez le fichier « sshd_config » via la commande :

sudo nano /etc/ssh/sshd_config

proxmox_modif_sshd_config

 

Dans le fichier décommentez la ligne « Port 22 » et ajoutez une ligne « Port XXXX » en remplaçant les XXXX par une suite de chiffre que vous choisissez qui sera le port utilisé pour vous connecter en SSH. Oui nous gardons le port 22 pour le moment afin de tester notre nouveau port, cela évite de se couper l’accès à votre serveur.

proxmox_ajour_port_ssh

 

Pour appliquer le paramètre, on redémarre le service ssh via la commande :

sudo service sshd restart

proxmox_redemarrer_ssh

 

Essayez de vous connecter via le port créé précédemment, je vous conseille de laisser votre autre terminal lancé pour le moment pour éviter de perdre la main 😉

proxmox_test_port_ssh_putty

proxmox_test_port_ssh

 

C’est tout bon, nous pouvons commenter la ligne « Port 22 » dans notre fichier et redémarrer le service ssh une seconde fois pour appliquer le paramètre. A partir de ce moment, votre serveur ne répondra en SSH que sur le nouveau port et plus sur celui par défaut :

proxmox_ssh_enlever_port_22

 

Pour finaliser la sécurisation de notre serveur Proxmox, installons fail2ban qui permet de protéger votre système contre les intrusions. Si quelqu’un essaye de se connecter à votre serveur via certains protocoles, l’IP qu’il utilise sera bannis au delà d’un certain nombre de tentative (cool non ?). Commencez par installer l’application fail2ban en vous connectant en ssh via cette commande :

sudo apt-get install fail2ban

proxmox_installation_fail2ban

 

Ensuite nous devons le configurer, pour ce faire et pour éviter de perdre votre configuration suite à une mise à jour de fail2ban, copiez le fichier de configuration de base « jail.conf » en le nommant « jail.local » :

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

proxmox_copie_conf_fail2ban

 

Modifiez le fichier jail.local via la commande :

sudo nano /etc/fail2ban/jail.local

proxmox_modif_config_fail2ban

 

Voici les modifications que j’ai apporté au fichier de configuration :

Je dé-commente cette ligne en ajoutant les réseaux que je souhaite ne pas faire surveiller (mon IP personnelle, mon IP locale…) :

ignoreip = 127.0.0.1/8 ::1

J’augmente le temps où les IPs sont bannis à 2880 minutes soit 2 jours :

bantime = 2880m

Je mets le temps où les IPs ne peuvent pas dépasser le nombre d’essai maximum à 10 minutes :

findtime = 10m

Je mets le nombre d’essai maximum à 5 :

maxretry = 5

J’ajoute une adresse mail pour recevoir les alertes :

destemail = all.it.network@gmail.com

Je change l’adresse mail qui émets les alertes :

sender = fail2ban@all-it-network.com

Je change le processus d’envoi de mail afin qu’il fonctionne :

mta = mail

J’active la surveillance sur le protocole SSH en ajoutant le nouveau port que j’ai configuré précédemment :

[sshd]
enabled = true
port = ssh, sftp, 11111
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Je créer une surveillance sur le protocole de proxmox afin de surveiller les connexions sur l’interface web :

[proxmox]
enabled = true
port = https,http,8006
filter = proxmox
logpath = /var/log/daemon.log
maxretry = 5
bantime = 3600

 

Une fois votre fichier configuré, vous devez redémarrer le service fail2ban pour que les modifications soit prises en compte :

sudo service fail2ban restart

proxmox_fail2ban_restart

 

Et voilà, vous avez installé votre serveur Proxmox et sécurisé l’accès à ce dernier. Nous verrons très prochainement comment réaliser l’installation de VMs sur votre système Proxmox avec l’utilisation d’une adresse IP failover.

À propos de l’auteur

Vincent Krahenbuhl administrator

Passionné d’informatique, ma motivation et ma curiosité m’ont permis de réaliser des études en alternance. J’ai dans un premier temps exercé le poste de technicien informatique au sein du groupe Edscha. J’ai ensuite occupé un poste d’administrateur réseau puis je suis devenu ingénieur réseau et sécurité au sein de l’entreprise FM Logistic. Fort de ces expériences dans deux entreprises internationales, j’ai décidé de devenir Formateur Indépendant en Informatique.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.