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 :
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 » :
Acceptez la licence d’utilisation de Proxmox en cliquant sur « I agree » :
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 :
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 :
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 :
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 :
Votre serveur va s’installer, il faut juste patienter :
Votre serveur a finalisé son installation, vous pouvez cliquer sur « reboot » pour démarrer sur votre nouveau système :
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.
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 :
Installez l’application « sudo » en utilisant la commande :
apt-get install sudo
Ajoutez un nouvel utilisateur via la commande :
adduser Nom_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 :
Votre utilisateur créé, ajoutez-lui les droits administrateurs :
adduser Nom_Utilisateur sudo
Essayez de vous connecter avec votre utilisateur tout juste créé en 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 » :
Nommez ce groupe « Administrateur » :
Allez dans le menu « Permissions » puis cliquez sur « Ajouter » et enfin « Permission du Groupe » :
Donnez le rôle « Administrator » sur « / » qui symbolise l’ensemble de votre système au groupe « Administrateur » :
Dernière étape, nous devons ajouter le compte utilisateur. Pour ce faire, allez dans le menu « Utilisateurs » puis cliquez sur « Ajouter » :
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 » :
Essayez maintenant de vous connecter avec le compte de votre utilisateur sur l’interface 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
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
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.
Pour appliquer le paramètre, on redémarre le service ssh via la commande :
sudo service sshd restart
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 😉
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 :
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
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
Modifiez le fichier jail.local via la commande :
sudo nano /etc/fail2ban/jail.local
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
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.
Bonjour
A quoi correspond :
logpath = %(sshd_log)s
backend = %(sshd_backend)s
cdt
Bonjour, super travail merci.
J’ai gagné beaucoup de temps. !
Bonjour,
Comment revenir en arrière une fois que l’on a fait : sudo passwd -dl root
Car avec mon login user je n’arrive pas a ajouter des usb pour mes VM
J’aimerai donc redonner acces a root
merci de votre aide
Salut Lopstyle, pour déverrouiller le compte root tu peux procéder comme ceci :
# Remettre un mot de passe car effacé via le flag ‘d’
passwd root
# Déverrouiller le user ‘root’ car verrouillé avec le flag ‘l’
source : man passwd / passwd -h
Il ne faut pas oublier de définir le filtre fail2ban pour Proxmox.
/etc/fail2ban/filter.d/proxmox.conf
[Definition]
failregex = pvedaemon\[.*authentication failure; rhost= user=.* msg=.*
ignoreregex =
Ref: https://pve.proxmox.com/wiki/Fail2ban
apt-get sudo ne fonctionne pas
fonctionne aprés un apt update 😉