Réseau - Web - GNU/Linux

2018 17 janvier

Configuration du serveur SSH

Rédigé par Marc GUILLAUME | Aucun commentaire

Installation 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.

Écrire un commentaire

Quelle est la cinquième lettre du mot gpuhyo ?

Fil RSS des commentaires de cet article

À propos

Yakati.com - Réseau - Web - GNU/Linux © 2017

Généré par PluXml en 0.039s  - Administration

Mes coordonnées

Marc Guillaume
contact[at]yakati.com
79150 ÉTUSSON

Crédits

Pour la gestion du contenu

Généré par PluXml, le Blog ou Cms sans base de données

Pour le contenu

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Pour le thème

Thème SOLID de blacktie.co adapté pour PluXml