Configuration du serveur SSH
Rédigé par Marc GUILLAUME | Aucun commentaireInstallation de openSSH serveur
Si vous louez un serveur chez un prestataire comme Online, OVH etc. le serveur SSH sera installé par défaut car la première connexion se fera par SSH (sauf peut-être si vous commandez un panel type Plesk, mais ceci n'est pas pris en compte dans ce guide).
Si le serveur SSH n'est pas installé, il suffit d'installer le paquet openssh-server. Sur les distributions Debian et dérivées :
apt install openssh-server
Fichiers de configuration
Comme nous l'avons vu au chapitre précédent, les fichiers de configuration de openSSH se situent dans /etc/ssh
et le contenu du répertoire ressemble à ceci :
# ls -lA /etc/ssh/ total 588 -rw-r--r-- 1 root root 553122 Nov 18 2017 moduli -rw-r--r-- 1 root root 1738 Feb 4 2019 ssh_config -rw-r--r-- 1 root root 3330 May 13 2019 sshd_config -rw------- 1 root root 668 Jan 8 2019 ssh_host_dsa_key -rw-r--r-- 1 root root 609 Jan 8 2019 ssh_host_dsa_key.pub -rw------- 1 root root 227 Jan 8 2019 ssh_host_ecdsa_key -rw-r--r-- 1 root root 181 Jan 8 2019 ssh_host_ecdsa_key.pub -rw------- 1 root root 411 Jan 8 2019 ssh_host_ed25519_key -rw-r--r-- 1 root root 101 Jan 8 2019 ssh_host_ed25519_key.pub -rw------- 1 root root 536 Jan 8 2019 ssh_host_key -rw-r--r-- 1 root root 341 Jan 8 2019 ssh_host_key.pub -rw------- 1 root root 1679 Jan 8 2019 ssh_host_rsa_key -rw-r--r-- 1 root root 401 Jan 8 2019 ssh_host_rsa_key.pub
Le fichier de configuration qui va nous intéresser est celui qui contient les configurations serveur soit : sshd_config. Le fichier contient beaucoup de commentaires utiles et les valeurs par défaut de toutes les variables utilisables. Parmi celle-ci les plus importantes sont le port d'écoute, les méthodes de connexion et la possibilité de connnexion (ou pas) d'un user root.
Configurer sshd_config
Comme nous l'évoquions au début de cet article; sii vous avez loué un serveur il y a de fortes chances que l'opérateur vous ait envoyé un mot de passe de connexion pour le compte root. Si votre hébergeur autorise l'enregistrement d'une clé publique SSH (c'est possible chez OVH, SoYouStart ou Kimsufi) et que vous avez fourni cette clé et demandé de l'utiliser pour l'installation alors vous aurez un accès root uniquement avec clé sans mot de passe.
Si vous voulez sécuriser davantage votre serveur il va falloir modifier quelques options dans sshd_conf. Les options disponibles dans ce fichier sont très nombreuses nous allons en passer en revue quelques unes des plus importantes.
Limiter les accès et fixer les ports d'écoute
Par défaut SSH écoute sur le port 22. Des milliers de script-kiddies parcourent toutes les plages d'IP sur Internet pour tenter de se connecter en SSH sur le port 22. On peut les bannir avec un logiciel comme fail2ban mais il est préférable de ne pas exposer le port 22 sur tout internet. Si vous avez la chance d'avoir une IP fixe, vous pouvez mettre une règle de firewall qui n'autorise ce port que pour votre IP. Et si vous avez besoin d'accéder à votre serveur depuis d'autres IP vous pouvez fixer un port alléatoirement choisi sur lequel écoutera SSH. Cela vous débarassera des bots les plus bêtes, mais ne saurait suffir à vous protéger efficacement. Il faut également n'autoriser la connexion à vos machines que par clés ssh. Nous verrons dans le prochain chapitre comment les générer, et dans un chapitre suivant comment utiliser des clés certifiées avec votre propre autorité de certification.
Pour l'instant nous allons voir comment faire en sorte que ssh écoute sur deux ports et n'accepte les connexions que par clé ssh (et principalement pour l'utilisateur root). Voici les options entrant en jeu et les valeurs à leur donner.
Port 22 Port 22222 PermitRootLogin prohibit-password PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no PermitEmptyPasswords no
On peut mettre plusieurs lignes précisant autant de port que l'on veut, ici on a choisi les ports 22 et 22222 (n'importe quel port pourrait être utilisé, ici 22222 a été choisi car il rappelle le port 22 par défaut, ce n'est pas forcément le mieux). Ce sont les règles de firewall qui définiront quelles IP peuvent atteindre quel port.