OpenSSH : installer et paramétrer
Présentation d'OpenSSH
Le SSH (Secure Shell) est un protocole réseau qui permet aux utilisateurs d’établir une connexion sécurisée entre deux ordinateurs. SSH fournit non seulement une connexion cryptée, mais permet également d’envoyer des commandes à l’appareil distant. SSH s’étant progressivement orienté vers une solution propriétaire, OpenSSH est né d’un fork est il est open-source.
Généralement OpenSSH est installé sur toutes les distributions mais il peut arriver que ce ne soit pas le cas.
Dans ce cas, commençons par installer la version serveur.
1 |
$ apt-get install openssh-server |
Configuration d'OpenSSH
Le service SSH (port 22 par défaut) est certainement l’un des plus attaqués après le service Web (port 80 par défaut). D’ailleurs il n’aura pas fallu plus de 10 minutes après l’installation du serveur avant de voir les premières tentatives d’authentification dans les logs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ vi /var/log/auth.log + May 4 20:49:11 sd-42508 sshd[3569]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.36 user=root May 4 20:49:12 sd-42508 sshd[3569]: Failed password for root from 116.31.116.36 port 42908 ssh2 May 4 20:49:15 sd-42508 sshd[3569]: Failed password for root from 116.31.116.36 port 42908 ssh2 May 4 20:49:18 sd-42508 sshd[3569]: Failed password for root from 116.31.116.36 port 42908 ssh2 May 4 20:49:19 sd-42508 sshd[3569]: Received disconnect from 116.31.116.36: 11: [preauth] May 4 20:49:19 sd-42508 sshd[3569]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.36 user=root May 4 20:50:15 sd-42508 sshd[3613]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.36 user=root May 4 20:50:17 sd-42508 sshd[3613]: Failed password for root from 116.31.116.36 port 54262 ssh2 May 4 20:50:19 sd-42508 sshd[3613]: Failed password for root from 116.31.116.36 port 54262 ssh2 May 4 20:50:22 sd-42508 sshd[3613]: Failed password for root from 116.31.116.36 port 54262 ssh2 May 4 20:50:22 sd-42508 sshd[3613]: Received disconnect from 116.31.116.36: 11: [preauth] May 4 20:50:22 sd-42508 sshd[3613]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.36 user=root |
C’est pourquoi la principale chose à faire est de sécuriser un minimum cet accès SSH en modifiant le port d’écoute utilisé et en interdisant l’accès à l’utilisateur Root.
Voici certaines modifications à apporter dans le fichier /etc/ssh/sshd_config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# What ports, IPs and protocols we listen for Port 2022 Protocol 2 [...] # Logging SyslogFacility AUTH LogLevel INFO [...] # Authentication: LoginGraceTime 30 # Une connexion SSH de 30 secondes sans authentification entraine la deconnexion PermitRootLogin no # Interdire a Root de s'authentifier AllowUsers petitsurfeur # Liste des utilisateurs autorises a s'authentifier [...] PermitEmptyPasswords no |
Rechargez la configuration et pensez à modifier Putty et Fail2ban car l’accès SSH tourne désormais sur ce nouveau port et plus sur le port 22 par défaut. Avant de fermer votre session SSH, pensez à lancer une nouvelle session pour vérifier que cela fonctionne, sinon vous pourriez bien perdre définitivement l’accès au serveur.
1 |
$ systemctl reload ssh |