Nous allons voir différentes méthodes pour sécuriser son vps avec plusieurs niveaux.
Quand vous commandez votre VPS, une distribution est préinstallée, mais aucun protocole de sécurité n’est mit en place nativement. Il vous revient donc de sécuriser votre VPS.
- Pourquoi une sécurisation est obligatoire ?
Il existe des personnes malveillantes avec plusieurs serveurs partout dans le monde qui cherchent à pirater et infecter des machines distante. Il y a bien sûr d'autres types d'attaques que celle-ci.
- Comment cela fonctionne ?
Les serveurs malveillants vont scanner toutes les ip à la recherche de proie, ils recherchent par exemple les ports ouverts sur un vps (le port SSH 22 en priorité). Le serveur va tenter une connexion en tant qu'utilisateur root sur chaque port, cette connexion répondra sur 1 seul port, ensuite il va attaquer par brute-force, (Stop je n'y comprends plus rien moi !) cette attaque consiste à tester plusieurs milliards de combinaisons de mot de passe au hasard. Il commence avec un taille de mot de passe de 1, une fois la plage de 1 terminée, il augmente la taille à 2 etc...
Ce type d'attaque prend du temps mais inutile de prendre des risques, autant bien sécuriser son vps !
Niveau 1. Mettre à jour le système
Les développeurs des distributions font de nombreuses mises à jour des paquets, très régulièrement pour des raisons de sécurité. Le maintient à jour de votre distribution est donc un point capital pour sécuriser votre VPS.
Cette mise à jour passera par deux étapes :
La mise à jour de la liste des paquets apt-get update
La mise à jour des paquets eux-mêmes apt-get upgrade
Une fois cette étape terminée, votre système est à jour. Cette opération est à effectuer régulièrement.
Niveau 2. Mise en place d'un mot de passe FORT
Quand nous parlons de changer le mot de passe ce n'est pas pour mettre jaimebob !!
Explication du pourquoi, les attaques par Brute Force vont commencer par tester des mots simples du dictionnaire afin de créer des millions de combinaisons possible. Le mot de passe ci-dessus semble absurde, et pourtant une grande partie de la population utilise ce genre de mot de passe pour n'importe quoi (Facebook, Instagram, site marchand, VPS, Google, etc...)
Non ! Nous parlons d'une vraie sécurisation :
- Les erreurs à ne pas faire
Il ne doit contenir aucun nom d'utilisateur, de famille ou d'entreprise.
Il ne faut pas utiliser de mots entiers.
- Les points importants
Il doit comporter au moins 12 à 16 caractères minimums !
Il faut également qu'il combine des lettres minuscules, majuscules, des chiffres, des caractères spéciaux (par
exemple : ,?;.:/!§%µ).
Ne jamais utiliser le même mot de passe pour sécuriser plusieurs accès ou comptes.
Ne pas communiquer son mot de passe.
Toujours se déconnecter d'un service.
Exemple d'un mot de passe FORT à 16 caractères py$XoTTUdBYY@!9f
Pour changer le mot de passe d'un VPS, il faut utiliser la commande passwd root
Voici un Générateur de mot de passe
Niveau 3. Modifier le port d’écoute du service SSH
L’écoute du service SSH est par défaut définie sur le port 22. Il est donc conseillé de ne pas le laisser en l’état et de le modifier. En effet, la plupart des piratages de serveurs sont faits par des robots qui ciblent par défaut le port 22. Modifier son paramétrage leur compliquera la tâche et rendra votre serveur plus difficile à atteindre.
Pour modifier le fichier de configuration du service ssh : nano /etc/ssh/sshd_config
Une erreur comme ça ? -bash: nano: command not found il suffit juste d'installer le package nano apt-get install nano ensuite, vous refaites la première commande ci-dessus
Il faut ensuite visualiser la ligne suivante : #Port 22 remplacez le nombre 22 par celui de votre choix. Et supprimer le #
Veillez toutefois à ne pas renseigner un numéro de port déjà utilisé sur votre système. Pour sauvegarder et quitter Crtl + X puis Y et pour terminer Entrée.
On redémarre le service pour prendre en compte les modifications /etc/init.d/ssh restart essayez de vous connecter avec le nouveau port
Avant de quitter votre terminal, veillez à tester si vos modifications fonctionnent bien en testant dans une autre fenêtre.
Niveau 4. Mise en place de la protection Fail2Ban
Fail2Ban est une application qui analyse les logs de divers services (SSH, Apache, FTP…) en cherchant des correspondances avec les filtres en place. Lorsqu'une correspondance est trouvée une ou plusieurs actions sont exécutées. Fail2Ban cherche des tentatives répétées de connexions infructueuses dans les fichiers journaux et procède à un bannissement en ajoutant une règle au pare-feu iptables pour bannir l'adresse IP de la source.
On installe Fail2Ban : apt-get install fail2ban
Son installation va protèger votre accès ssh par défaut sur le port 22.
On va créer notre propre configuration pour sécuriser l'accès ssh avec un nouveau port.
Nous nous rendons dans cd /etc/fail2ban/jail.d/
On va créer le nouveau fichier nano custom.conf
Nous écrivons ce qui suit sur une ligne différente, vous pouvez changer ces valeurs, à vous de voir :
- [DEFAULT] réglage global
- ignoreip = 127.0.0.1 nous ignorons les erreurs de connexion en local
- findtime = 3600 après 3 tentatives on ban 3600 secondes (1 heure)
- bantime = 86400 après 6 tentatives on ban 86400 seconds (24 heures)
- maxretry = 3 on ban une ip après 3 tentatives avortées
- [sshd]
- enabled = true permet d'activer le module sshd
- port = x remplacer le x par votre port ssh
- logpath = /var/log/auth.log le module va surveiller le fichier auth.log, à la recherche de tentatives de connexion échouée
Sauvegardez et quittez Crtl + X ensuite Y ensuite Entrée.
Nous redémarrons Fail2Ban afin de prendre en compte les modifications sudo systemctl restart fail2ban
On peut voir si le module sshd est bien activé sudo systemctl status fail2ban
Ou surveiller le nombre de ban / fail du module sudo fail2ban-client status sshd
Si une adresse IP a été banni par erreur : sudo fail2ban-client set sshd unbanip (adresse-a-unban)
Il existe beaucoup de module déjà disponible, ou vous pouvez créer les vôtres. Je vous invite à regarder la documentation associée
Niveau 5. Authentication par clé SSH
lien du tuto
Pour toutes éventuelles questions, n'hésitez pas à passer sur Discord.
L'équipe InovaPerf.