Posséder une machine virtuelle sans qu'elle soit sécurisée c'est permettre des attaques sur celle-ci.
Vous trouverez ci-dessous les différents niveaux pour sécuriser son VPS qui sont à mon sens du moins au plus utile.
1. Mettre régulièrement à jour le système
Les mises à jour des paquets sont faites pour une bonne raison en général : corriger les failles.
En effet, ne pas tenir son VPS à jour c’est risquer de laisser des failles de sécurité sur ce dernier.
Pour le mettre à jour effectuez la commande apt-get update && apt-get upgrade -y
.
D’ailleurs, les grosses entreprises tel que la NSA conseillent de mettre à jour le système très régulièrement.
2. Modifier le port
Le port par défaut fourni est en général le port 22, celui-ci étant le premier à être visé en cas d’attaque…
Pour modifier le port d’écoute, effectuez les actions suivantes :
nano /etc/ssh/sshd_config
(si vous n’avez pas nano, faites simplement apt-get install nano
).
- Cherchez la ligne avec écrit “#Port 22”, retirez le “#” et modifiez le “22" par le port de votre choix.
Bien sûr, ne mettez pas un port déjà utilisé par votre système ! Aucun port sera plus sécurisé qu’un autre, tant qu’il est différent du port par défaut (22), vous éviterez pas mal d’attaques de robots.
- Sauvegardez avec [CTRL+X] puis [CTRL+Y] et [Entrée].
- Redémarrez le service avec
/etc/init.d/ssh restart
.
Votre port a été changé ! Ouvrez un nouveau terminal et connectez-vous avec le nouveau port.
Je conseille de toujours garder l'actuel terminal au cas où et de faire vos tests dans une autre fenêtre...
Si vous utilisiez ssh <user>@<ip>
pour vous connecter, vous devrez maintenant faire avec ssh <user>@<ip> -p <port>
.
3. Changer de mot de passe
Lorsque vous avez un accès à un VPS c’est en général via l’utilisateur root que vous vous connectez.
La première chose la plus évidente à faire pour sécuriser son VPS est dans mettre en place un mot de passe fort.
Un mot de passe fort contient des minuscules, majuscules, chiffres, caractères spéciaux, etc…
Je conseille personnellement d’avoir un très long mot de passe de minimum 15 caractères (pour ma part une quarantaine).
Vous pouvez par exemple utiliser mon générateur de mots de passe : https://tools.antoinemcx.fr/password-generator.
Une fois que vous avez le mot de passe : faites la commande passwd
puis entrez-le (il vous sera demandé de le retaper).
4. Se connecter via une clef SSH
Une paire de clef SSH est utile pour que votre VPS reconnaisse votre ordinateur par exemple.
En effet, c’est un moyen sécurisé de vous connecter à votre machine et en plus, pratique !
Je vous invite alors si ce n'est pas déjà fait à suivre le tutoriel déjà prévu à cet effet : cliquez ici !
5. Retirer l’accès root distant
Comme pour le port 22, l’utilisateur root est le premier visé dans les attaques de masse.
Ce que l’on va faire ici c’est de créer un utilisateur (pouvant utiliser les commandes du root) et désactiver l'accès au root.
Commençons donc par créer ce nouvel utilisateur :
adduser <user>
.
usermod -aG sudo <user>
.
Désactivons désormais l’accès au root :
nano /etc/ssh/sshd_config
(si vous n’avez pas nano, faites simplement apt-get install nano
).
- Cherchez la ligne avec écrit “PermitRootLogin yes” et modifiez le “yes” en “no”
- De même pour “PasswordAuthentication” que vous devrez mettre à "no".
- Sauvegardez avec [CTRL+X] puis [CTRL+Y] et [Entrée].
- Redémarrez le service SSH avec
service sshd restart
ou systemctl restart sshd.service
.
Vous devrez désormais vous connecter via <user>. Je vous conseille encore une fois de tester dans une nouvelle fenêtre.
Pour utiliser des commandes avec l’utilisateur root, vous devrez faire sudo <command>
; vous pouvez aussi si vous le souhaitez utiliser sudo su -
pour rester connecté au root, mais cela reste complètement inutile.
D’ailleurs, si vous aviez ajouter une clef SSH au root, il faudra recréer une paire de clés dans le dossier .ssh/ de <user>.
6. Pour aller plus loin
Si vous souhaitez bloquer certaines intrusions, certains outils sont à votre disposition pour cela.
Je ne détaillerai pas ici comment les utiliser (sauf si vous me le demandez sous ce post) mais vous pouvez vous intéressé à :
- “Fail2Ban” pour bloquer notamment les attaques de bots attaquant en brut force.
- Installer un firewall (pare-feu) comme par exemple “iptables” (le plus utilisé à l’heure actuelle…) ou "UFW".
Votre VPS est désormais bien plus sécurisé qu'avant ! N'hésitez pas à consulter mes autres tutoriels sur les VPS.