Ascii_Skull_by_DeepZoomVoici le premier post d’une longue série consacrée à la sécurisation d’un serveur, principalement dans le cadre d’un serveur dédié chez un hébergeur, qui sont particulièrement vulnérables lors de la livraison.

Créer un utilisateur dédié au ssh

La première chose que l’on va faire dans la suite de ce tuto c’est d’interdire l’accès ssh au compte root
On commence donc par créer un nouvel utilisateur, qui sera principalement dédié à l’accès ssh au serveur

adduser sshuser

Vous pouvez laissez les réponses par défaut à toutes les questions, il suffit juste de saisir un mot de passe correct (8 caractères mini) et ca devrait déjà être pas mal

Une fois l’utilisateur créé, faites un test de connexion pour être sur de ne pas être coincé plus tard

Interdire l’accès root et changer le port ssh

Maintenant que l’on possède notre compte pour l’accès ssh, on va interdire l’accès à tout le monde sauf à lui
Pour cela il suffit d’éditer (en root) le fichier /etc/ssh/sshd.config

Editez ou ajouter les lignes suivantes :

Port 7777
PermitRootLogin no
AllowUsers sshuser

Redémarrez ssh :

/etc/init.d/sshd restart

On a maintenant changé le port ssh et limiter la connexion avec notre utilisateur sshuser
Un hacker est déjà bien ralenti, il doit trouver le port, le nom d’utilisateur et le mot de passe de l’utilsateur

Pour vous connecter à votre serveur sous linux en changeant le port utilisez la commande :

ssh sshuser@monserveur.com -p7777

Fail2Ban :

Pour l’instant notre pirate est ralenti, mais rien ne l’empêche de faire 10000 tentatives de login par seconde et de ralentir votre serveur même s’il n’arrive jamais à trouver l’accès

Fail2ban est un soft qui permet de détecter les erreurs d’authentification répétées et de prendre des contres-mesures afin de bannir l’ip un peu trop insistante

L’installation est très simple :

apt-get install fail2ban

Une fois installé l’essentiel de la configuration se trouve dans /etc/fail2ban/jail.conf et est facilement compréhensible :

ignoreip = 127.0.0.1
 bantime = 600
 maxretry = 3

Ici on banni une ip 600s après 3 échecs consécutifs par exemple

Ce fichier comporte une section par service, n’oubliez pas de changer le port ssh dans ce fichier également :

[ssh]
 enabled = true
 port = 7777
 filter = sshd
 logpath = /var/log/auth.log
 maxretry = 6

Chacun réglera ces paramètres en fonction de son niveau de paranoïa 🙂

Une fois la configuration terminée, n’oubliez pas de redémarrer fail2ban pour prendre en compte les modifications :

/etc/init.d/fail2ban restart

Une fois ces sécurités simples misent en place on est déjà plus tranquille sur notre serveur au niveau du ssh, mais il y a encore plein de choses à sécuriser, je vous expliquerai ca dans un futur post !

A lire également