Sécurisation du Serveur (VPS)

Introduction

Cet article fait partie de la série de Tuto informatique nommé « Opération Migration«  dont le Sommaire Générale se trouve ici :

[Opération Migration]
ou comment changer de serveur ?

Après nous être occupé de la configuration et sécurisation de Webmin, nous allons maintenant nous pencher sur la sécurité de notre Serveur dédié, ou VPS, en configurant le pare-feu « IPtables« , « Fail2Ban« , et « Portsentry » et tout cela très simplement depuis l’interface Web de Webmin.

Il est bien sûr toujours possible (et même recommandé) de renforcer la sécurisation de votre Serveur, mais voici déjà une très bonne base pour notre Serveur 😀


Sommaire


Lors de l’installation de Virtualmin tout un tas de paquets (logiciels) sont installés. Au final on se retrouve avec 2 pare-feu :

      • « IPtables » que nous utiliseront,
      • et « FirewallD » que nous allons désinstaller,

car un seul Pare-Feu ne doit être utilisé dans Webmin !


Logo FireallDFirewallD

 

FirewallD est un mécanisme de pare-feu compatible IPv6 utilisé dans les distributions Linux récentes (RedHat/Fedora/CentOS) remplaçant les bons vieux iptables.

Webmin-Pare-FeuFirewallD et IPtables font tous deux partie de l’installation de Virtualmin. Par défaut c’est FirewallD qui est utilisé comme pare-feu. On peu les configurer en lignes de commande, ou depuis l’interface Web de Webmin. Tout les deux se trouve ici :

      • Depuis le menu de « Webmin« :
      • Cliquer sur : « Réseau« 
      • « Pare-feu Linux » et « Pare-feu IPv6 Linux » correspondent à : iptables
      • « Pare-feuD » correspond à : FirewallD

Nous utiliseront dans la suite de cet article/Tuto iptables où nous verrons uniquement une configuration depuis Webmin…

Désactiver FirewallD :

Pour utiliser iptables, et ne plus avoir le message, ci-dessous, nous disant d’utiliser le module de FirewallD : il faut désactiver FirewallD.

Webmin - Alerte module FirewallD

Pour cela rendez-vous dans Webmin :

Webmin - Désactiver FirewallD

      • Depuis le menu « Webmin« 
      • Cliquer sur « Système« 
      • En-dessous cliquer sur « Démarrage et arrêt« 
      • Au centre, chercher et cocher les cases de « firewalld » et « firewalld.service« 

Webmin - Désactiver FirewallD

      • Puis, tout en en bas à droite, cliquer sur le bouton « Désactiver maintenant et au Boot« 

Webmin - Désactiver FirewallD

      • Une fois effectué, cliquer sur le bouton « Retourner à l’action de démarrage et d’arrêt« 

Webmin - Désactiver FirewallD

      • Tout en bas encore, cliquer sur le bouton « Redémarrer le Système« 
      • Après ça on ne devrait plus avoir le message d’alerte lorsque l’on se rend sur « Pare-feu Linux«  (IPtables)

Désinstaller FirewallD

Puisque on ne va pas utiliser FirewallD, autant le désinstaller  🙂

Depuis Webmin :

Webmin - Désinstaller FirewallD

      • Cliquer sur le menu « Webmin« 
      • Dérouler le menu « Système« 
      • Puis cliquer sur « Composants Logiciels« 
      • Dans la partie centrale dans « Composants installés » chercher « firewalld« 

Webmin - Désinstaller FirewallD

      • Sélectionner le paquet « firewalld« 
      • Et cliquer sur le bouton « Désinstaller les packages sélectionnés« 

Webmin - Désinstaller FirewallD

      • Cocher « Oui » pour les 2 cases : « Purger les fichiers de configuration? » et « Supprimé également les dépendances inutilisées?« 
      • Puis cliquer sur le bouton « Supprimez-les tous« 

Liste des principaux Ports :

💡 Voici les ports (par défaut) à ouvrir en fonction de votre configuration et de ce que vous utilisez sur votre Serveur.

⚠️ Rappelez-vous que l’on à modifié les ports de Webmin, Usermin, et SSH lors des Tuto précédents. Il faut donc adapter la configuration avec les ports que vous avez choisi ! 😉

Nom du Service Protocole Port
FTP TCP 21
SSH TCP 22
POP3 (courrier) TCP 110
SMTP (courrier) TCP 25
SMTPS (courrier) TCP 465
IMAP (courrier) TCP 143
IMAPS (courrier) TCP 993
HTTP (Web) TCP 80
HTTPS (Web Sécurisé) TCP 443
DNS TCP 53
DNS UDP 53
Webmin/Virtualmin TCP 10000
Usermin TCP 20000

⚠️ Pour plus de sécurité, il est recommandé de n’ouvrir que le strict minimum de ports dans un pare-feu !
Vous pouvez même vous passez d’ouvrir le port 21 du FTP, car si vous utilisez le protocole SFTP (plus sécurisé) il utilise le port SSH (22 par défaut) 😉
(c’est ce qu’on verra plus tard dans le Tuto : « Transfert de fichiers via SFTP ou SSH (scp)« )


Ports miniums à ouvrir :

Puisque je ne gère pas mes mails sur le Serveur, voici les ports minimums que j’ouvre :

      • Le port SSH
      • Les ports Web HTTP et HTTPS
      • Le port d’écoute de Webmin
      • Le port DNS (en TCP et UDP)

IPtables

Webmin-Pare-Feu

Maintenant que l’on a éjecté FirewallD, nous allons pouvoir enfin configurer iptables.

      • Depuis le menu de « Webmin« 
      • On clique sur « Réseau« 
      • Puis rendez-vous sur le module iptables nommé « Pare-feu Linux« 

 

⚠️ Par défaut le pare-feu est désactivé et ne protège de rien !


Sauvegarde du fichier de configuration d’iptables :

Webmin - Configuration IPtables

Tout en haut nous avons le nom et l’emplacement du fichier de configuration d’IPtables. Ici c’est donc /etc/iptables.up.rules vous pouvez le modifier en ligne de commande.
Dans ce tuto on va faire simple en n’utilisant que l’interface de Webmin 🙂

💡 Mais par précaution on va quand même sauvegarder ce fichier, au cas où… On pourra comme ça rétablir la configuration d’origine si il y a le moindre soucis 😀

En étant connecté à notre Serveur via un terminal en SSH (et avec les droits roots) ouvrir le fichier de configuration d’IPtables avec nano :

nano /etc/iptables.up.rules

Ça permet d’y jeter un coup d’œil au passage 😉

iptables.up.rules

      • Appuyer sur les touches (Contrôle) « CTRL » + la lettre « O » pour enregistrer le fichier
      • Ajouter « .old » ou « .save » (ou ce que vous voulez) à la fin du fichier puis taper « Entrée« 
      • Fermer le fichier avec « CTRL » + « X« 

💡 Si vous avez des problèmes avec la configuration du pare-feu (car la configuration via webmin peu être capricieuse) vous pourrez alors ouvrir le fichier de sauvegarde, et le ré-enregister sous le nom de celui d’origine.


Réinitialisation d’IPtables :

Webmin - Configuration IPtables

      • Tout en bas de la page, cliquer sur le bouton « Réinitialiser le Parefeu« .

Webmin - Configuration IPtables

      • Choisir une des options comme : « Bloquer tout le trafic excepté SSH, IDENT, ping et les ports élevés sur l’interface:« 
      • Décocher la case « Activer le firewall au démarrage ?« 
      • Et cliquer sur le bouton « Configurer le Firewall« 

Suppression de Règles :

Ensuite (vu que la réinitialisation n’a pas l’air de bien fonctionné) on fait le ménage en supprimant quelques règles inutiles… Voir pour cela la « Liste des principaux Ports » que l’on aura besoin pour notre Serveur. Le but est d’ouvrir que ce que l’on a besoin 😉

Pour rappel je ne suis pas un professionnel ! Dans ce tuto on se base sur la configuration de Webmin que l’on modifie pour bloquer plus de choses.

Webmin - Configuration IPtables

Par exemple ici dans la partie « Paquets Entrants (INPUT) » j’ai des règles qui ouvre la plage de ports de 1024 à 65535, autant dire que ça ouvre un gouffre lol et ça n’est pas nécessaire.
Il y a aussi des règles avec « ICMP », celles-ci bien qu’elles me semble un peu trop nombreuses je les garde. ICMP correspond au ping que l’on peu faire sur le Serveur.

      • Sélectionner la règle à supprimer
      • Et cliquer sur « Supprimer la sélectionnée » (oui la traduction est un peu foireuse 🤪)

Webmin - Configuration IPtables

Dans la partie « Chaîne IN_public_allow » on a les règles qui correspondent aux services du serveur. Même chose on fait un peu de ménage…

      • Il y a par exemple le port 22 (SSH), mais puisqu’on l’a modifié dans la configuration de SSH, celui-ci n’a plus besoin d’être ouvert.
      • Pour ma part je n’utilise pas les services mails sur le Serveur, donc ils peuvent sauter également
      • On retrouve encore une règle qui ouvre la plage de ports de 1025 à 65535
      • Bref on coche tout ce qu’on veut supprimer, et pareil on clique sur le bouton « Supprimer la sélectionnée » en-dessous.

⚠️ Il faut bien vérifier que les ports personnalisés de SSH et Webmin soient présents dans cette liste, ainsi que ceux dont on aura besoin ⚠️
(voir tableau des Ports)
Si cela n’est pas le cas : voir le point suivant pour ajouter une règle 😉


Ajouter une Règle :

Webmin - Configuration IPtables

      • Dans la même liste cliquer en-dessous sur le bouton « Ajouter une règle« 
Webmin - Configuration IPtables
Exemple ici pour autoriser le port 20000 de Usermin.
      • Ajouter un commentaire pour la règle
      • Cocher la case « Accepter« 
      • À « Protocole réseau » mettre la valeur à « Egal » pour l’activer, et conserver « TCP« 
      • Pour « Port TCP ou UDP de Destination » mettre la valeur à « Egal«  pour activer la ligne, et indiquer le port
      • Puis tout en bas cliquer sur le bouton « Créer« 

Activer le Pare-Feu :

Après avoir vérifié que toutes vos règles sont présentes dans la liste…

Webmin - Configuration IPtables

      • Cocher « Non » et « Activer au démarrage » tant que l’on est pas sûr que notre configuration est bonne ⚠️
      • Enfin cliquer sur « Appliquer la configuration » pour activer le Pare-Feu.

Lorsque vous serez bien sûr que la configuration est correcte (tester tout les services que vous utilisez…) vous pourrez alors cocher »Oui« , et cliquer sur le bouton « Activer au démarrage« . Sinon à chaque redémarrage du Serveur le pare-feu sera désactivé par défaut. Pour être sûr que tout fonctionne bien il faudra attendre la fin de cette série de Tuto et avoir un site en ligne de configuré sur ce Serveur…


💡 IPtables est très documenté sur Internet, mais c’est généralement une configuration en ligne de commande.
Voici la documentation d’IPtables sur Virutalmin :


⚠️ Attention si IPv6 est activé sur votre Serveur, il faudra également configurer la partie iptables IPv6 nommé « Pare-feu IPv6 Linux«  dans le menu.


Fail2Ban

Webmin-Pare-Feu

Fail2Ban lit les fichiers de log et bannit (via le pare-feu) les adresses IP qui obtiennent trop d’échecs d’authentification.
Fail2Ban est déjà installé avec Virtualmin. Nous n’avons plus qu’à le configurer et l’activer depuis l’interface de Webmin.

      • Rendez-vous dans la partie du menu de « Webmin« 
      • Puis cliquer sur « Réseau« 
      • Et enfin sur « Détecteur d’intrusion Fail2Ban« .

Configuration de Fail2Ban :

Webmin - Fail2Ban

      • Cliquer sur le bouton  » Modifier les fichiers de configuration« 

Webmin - Fail2Ban

Webmin - Fail2Ban

      • En haut dans « Fichier à éditer:  » sélectionnez (tout à la fin de la liste) le fichier : « /etc/fail2ban/jail.conf« 
      • Modifier les ports de SSH et Webmin par vos ports personnalisés comme on les a configuré dans les tuto précédents
      • « Sauvegarder et fermer« 

💡 Pour allez plus loin dans la configuration de Fail2Ban, voir par exemple : Wiki de Debian-fr.xyz


Démarrage de Fail2Ban :

Webmin - Fail2Ban

      • Sur la page de Fail2Ban cliquer sur le bouton « Démarrez le serveur Fail2Ban« 
      • ⚠️ Cocher « Oui » et cliquer sur « Commencez au démarrage? » seulement lorsque vous vous êtes assurez que tout fonctionne bien !

Portsentry

Portsentry est un programme qui détecte et bloque les « scan de ports » des potentiels pirates.
En faite la majorité sont des robots qui scrutent Internet pour scanner les ports des machines, et exploiter ces failles…

💡 Plus de détails sur Portsentry : https://wiki.debian-fr.xyz/Portsentry

Via une connexion SSH au Serveur, et avec les droits root :

Installer Portsentry :
apt-get update && apt-get install portsentry
Configurer Portsentry :
nano /etc/portsentry/portsentry.conf
    • Commentez les lignes « KILL_HOSTS_DENY«  en ajoutant « #«  devant (il y a 2 lignes, une des 2 est déjà commenté par défaut).
    • À la fin des modifications on enregistre (Ctrl+O) et on ferme le fichier (Ctrl+X)
Démarrer Portsentry :

On démarre le logiciel avec les commandes suivantes. Il faut le lancer deux fois : pour une fois pour TCP, et une autre pour UDP.

portsentry –audp
portsentry –atcp

Voilà voilà, maintenant que notre Serveur est bien sécurisé, et toujours dans le cadre de notre « Opération Migration » on peu enfin passer à l’Ajout de sites Web dans Virtualmin avec le Tuto suivant 😀

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *