Comment sécuriser un minimum openSSH ?

openSSH est un ensemble d'outils informatiques libres qui permettent d'établir une communication sécurisée sur un réseau informatique en utilisant le protocole SSH. C'est la méthode la plus simple et la plus sécurisée pour se connecter à un serveur distant. Comme toute porte d'entrée, elle a ses faiblesses qu'il convient de renforcer pour la propre sécurité de la machine.

Interdire l'accès a l'utilisateur root

L'utilisateur root est par définition le super-utilisateur d'un serveur linux. Il possède tous les pouvoirs, il convient donc de lui interdire l'accès direct à votre serveur. Pourquoi ? C'est simple, un hacker doit trouver 2 mots de passes, celui de l'utilisateur et celui de root, donc deux fois plus de travail.

En ligne de commande nous allons d'abords installer un outil de génération de mot de passes :

aptitude install apg

Une fois l'installation de cet outil, vous allez vous en servir pour créer un mot de passe sécurisé avec la commande suivante.

apg -q -a  0 -n 1 -m 12 -M NCL

Vous obtiendrez quelque chose qui ressemble à ceci : nuewwelIr6, notez le quelque part.

Ensuite vous allez créer un nouvel utilisateur sur votre serveur Debian avec cette nouvelle ligne de commande. Remplacez myuser par le login de votre choix (par exemple : gratte_ssh7)

/usr/sbin/adduser myuser

Maintenant nous allons modifier le fichier de configuration de openSSH, vous allez donc entrer la ligne de commande suivante.

/bin/sed -i -e 's/PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config

Et pour finir nous allons redémarrer le service openSSH pour valider les modifications que nous avons apporté.

 
service ssh restart

Désormais vous vous connecterez à votre serveur grâce à ce nouvel utilisateur. une fois connecté, si vous désirez obtenir les droits root il suffit d'utiliser la commande "su".

Attention : N'oubliez pas de créer votre nouvel utilisateur (avec la commande adduser), si vous l'oubliez vous ne pourrez plus vos connecter à votre serveur par SSH. Si votre machine est un serveur dédié distant, par mesure de sécurité, testé votre nouvelle connexion avant de fermer votre ancienne connexion.

Changer le port d'écoute d'openSSH

Le port d'écoute par défaut d'openSSH est le port 22, tout bon administrateur réseau connait cette information (donc les personnes mal intentionnées aussi). Nous allons donc changer le port d'écoute d'openSSH pour brouiller un peu les pistes.

Pour commencer nous allons définir arbitrairement un port d'écoute entre 35000 et 65535 (par exemple : 63521). Ceci pour éviter des conflits avec d'autres services de votre serveur, la plupart des services utilise des ports situés entre 1 et 5000.

Vous allez tapez la ligne de commande suivante. Remplacez les XXXXX par le numéro du port que vous avez choisi.

PORT_SSH=XXXXX

Ensuite nous allons modifier le fichier de configuration d'openSSH avec la ligne de commande suivante.

/bin/sed -i -e "s/Port.*/Port $PORT_SSH/" /etc/ssh/sshd_config

Et pour finir on redémarre le service openSSH grâce à la commande suivante.

service ssh restart

Désormais pour vous connecter a votre serveur grâce à openSSH, il vous faut modifier le port d'écoute dans votre logiciel de connexion (Nous utilisons putty pour nous connecter en SSH via Windows).

Limiter les connexions des utilisateurs

Autre moyen de limiter les accès au serveur dédié via SSH, la limitation à un groupe spécifique.

if [ -z "$(command grep "^ssh-users" '/etc/group')" ]; then
  command addgroup --system "ssh-users"
fi
 
command echo '
# Limit access to users of group ssh-users
AllowGroups ssh-users' >> /etc/ssh/sshd_config
command service ssh restart
command adduser "new_user" ssh-users

Explication du code : On teste si le groupe "ssh-users" est déjà présent sur le serveur. Et si le groupe n'existe pas, on le créé via la commande addgroup. Ensuite on ajoute au fichier de configuration de openSSH le groupe autorisé a accéder au serveur via SSH. On redémarre le service SSH Ensuite on ajoute l'utilisateur "new_user" au groupe "ssh-users".

En conclusion

Voilà donc deux petites astuces qui sécuriseront votre serveur Debian et notamment votre connexion SSH.

Si vous avez des remarques, d'autres astuces ou des commentaires, n'hésitez pas à utiliser le formulaire ci-dessous.

Auteurs et sources