VPS – Premiers pas et Sécurité

Un petit pas pour l'...

Dans un article précédent, je vous parlais de ma première expérience avec un VPS. Nous allons voir maintenant comment sécuriser au minimum votre VPS après avoir installé sa distribution. Bien sûr il vous sera par la suite vivement conseillé de sécuriser davantage votre VPS avec un pare-feu par exemple. Ma distribution installée est un Debian 9.9, les étapes sont rapides, car il s’agit de quelques lignes de commandes. La procédure est valable pour tout serveur sous Debian ou autre distribution.

Sécuriser votre VPS

Ouvrez votre terminal préféré  (Putty par exemple) et connectez-vous avec votre compte root. Si votre hébergeur vous donne un mot de passe généré automatiquement pour root, voici comment le changer. Il faut utiliser un mot de passe fort pour ce compte, tapez la commande passwd root puis indiquez deux fois le nouveau mot de passe.

Création d’ un nouvel utilisateur

Ce nouvel utilisateur va permettre de se connecter à son serveur car par la suite nous allons bloquer la connexion directe avec le compte root. Cela limite les attaques par brute force sur ce compte.
Tapez la commande: adduser cachem remplacez cachem par votre nom d’utilisateur. Indiquez 2 fois le mot de passe fort. Comme il s’agit d’un nouvel utilisateur, le système va vous demander de renseigner plusieurs informations… mais vous pouvez taper Entrée à chaque ligne.

Nous allons maintenant donner des droits à cet utilisateur, pour cela nous allons l’ajouter au groupe sudo. Si votre VPS ne possède pas le paquet sudo de base il vous suffit de l’installer par la commande: apt-get install sudo.

Ajout du compte dans le groupe sudo

Pour ce faire, tapez la commande sudo adduser cachem sudo 

Désactiver la connexion avec le compte root

La désactivation du compte root à la connexion va permettre de bloquer toute tentative de connexion avec ce dernier. Bien sur, le compte root n’est pas désactivé, on va juste bloquer la connexion direct avec ce compte. Avec un éditeur de texte, nous allons modifier le fichier de configuration de SSH. Pour rappel, SSH est le service qui nous permet de nous connecter au serveur. Sous Linux, il y a plusieurs éditeurs. Il y a principalement vim et nano sur ma distribution. Personnellement, j’utilise nano. Vous pouvez l’installer avec la commande apt-get install nano s’il n’est pas déjà installé.

Pour l’édition du fichier tapez nano /etc/ssh/sshd_config une fois dans le fichier, cherchez la ligne PermitRootLogin yes modifiez la ligne en remplaçant yes par no.

On peut en profiter également pour changer le port d’écoute SSH 22. Ce n’est pas obligatoire mais recommandé. Dans notre exemple, nous allons prendre 2222. Cherchez  la ligne indiquant Port 22 et remplacez le nombre 22 par 2222 (ou autre chose).

Une fois la modification réalisée , faites CTRL+X pour quitter l’édition.

 

Ensuite tapez O pour oui puis pour le nom du fichier ne changez rien faites entrée.

Pour que le changement soit pris en compte, on relance le service avec la commande /etc/init.d/ssh restart. Vous pouvez quitter la console avec la commande exit puis faire un essai de connexion en root.

Comment utiliser le compte root maintenant ?

Pour vous connecter, lancez votre terminal, indiquez le nom d’utilisation que vous avez créé puis son mot de passe. Avec ce compte vous pouvez tout de même exécuter des commandes pour installer des paquets par exemple, il vous suffit d’ajouter sudo devant les commandes comme : sudo apt-get install apache

Pour passer en root tapez su – puis indiquez le mot de passe root.

Installer un bloqueur d’IP automatique.

Afin de limiter les attaques à répétition, vous pouvez installer Fail2Ban. Il bloquera automatiquement les l’IP si plusieurs essais de connexions sont en échec. L’installation se fait simplement avec la commande apt-get install fail2ban. Nous allons voir maintenant comment régler quelques paramètres afin de bloquer correctement les tentatives échouées sur le port SSH (Par défaut 22).

Pour avoir un exemple, vous pouvez ouvrir le fichier en tapant la commande : nano /etc/fail2ban/jail.conf on ne va pas modifier ce fichier mais en créer un nouveau.
On commence par se rendre dans le dossier des fichiers de configuration tapez la commande: cd /etc/fail2ban/ pour créer le fichier tapez touch ssh.conf (Remplacez ssh par le nom que vous voulez).
Nous allons remplir ce fichier en tapant nano ssh.conf . Dans ce fichier ajoutez le contenu suivant:

[DEFAULT]
ignoreip = 127.0.0.1 124.32.5.48 
findtime = 3600
bantime = 86400
maxretry = 3

ignoreip permet d’ignorer le blocage d’une IP en cas d’erreurs répétées (Remplacez l’IP 124.32.5.48 par votre IP Internet).
findtime permet de limiter les logs et d’en avoir trop, 3600 secondes correspond à 1h.
bantime définie la durée du bannissement de l’IP 86400 seconde fait 24h vous pouvez mettre plus.
maxretry correspond au nombre d’essai avant le blocage de l’IP qui tente les connexions.

Pour surveiller les connexions sur SSH ajoutez la commande suivante :
[sshd]
enabled = true

Si vous avez changé le port par défaut vous pouvez ajouter cette ligne en remplaçant 2222 par votre port.

port = 2222

Voici notre fichier de configuration

Faites CTRL+X pour quitter nano et confirmez la modification du fichier par O. Relancez fail2ban avec la commande service fail2ban restart.

Pour vérifier que votre fichier de configuration est bien chargé, tapez la commande fail2ban-client status dans la liste vous devriez voir sshd comme ci-dessous:

Si vous voulez consulter les connexions échouées, vous pouvez afficher le journal en tapant la commande journalctl -f cela va vous ouvrir un journal en continu. Ci-dessous vous pouvez voir les essais de connexions échouées sur ma box domoticz sous Debian 8. Vous pouvez arrêter le journal avec la commande CTRL+C.

Conclusion

Cet article vous donne les bases pour sécuriser votre serveur, bien sûr plein d’autres choses peuvent être ajoutées pour améliorer la protection de votre serveur. Dans fail2ban, vous pouvez ajouter d’autres services que vous utiliser sur votre serveur afin de bloquer là aussi les essais de connexion. Pensez à mettre régulièrement à jour vos applications/packets à l’aide des commandes

sudo apt-get update
sudo apt-get upgrade

Zeen is a next generation WordPress theme. It’s powerful, beautifully designed and comes with everything you need to engage your visitors and increase conversions.