OpenSSH : Sécuriser l’accès SSH

Article décrivant comment configurer le paquet OpenSSH pour plus de sécurité incluant chroot utilisateur.
  • Administration système

OpenSSH sFTP

Le protocole SSH est très utilisé sur les serveurs Linux, il permet d’ouvrir un shell distant et sécurisé sur son serveur. De ce fait, il est important de le sécuriser au possible afin d’éviter toute tentative d’intrusion sur son système.

Sur un précédent article, je parlais de l’installation d’OpenSSH, de sa configuration et des commandes principales.

Pour la sécurisation d’OpenSSH, nous utiliserons le fichier de configuration suivant :

/etc/ssh/sshd_config

Voici les quelques modifications à apporter à ce fichier.

Changer le port d’écoute d’OpenSSH (défaut en 22).

Port 22

Forcer l’utilisation de la version 2 d’OpenSSH

Protocol 2

Interdit à l’utilisateur root de se loguer, il faudra donc utilisateur l’élévaliton de privilège avec « su » depuis un compte utilisateur

PermitRootLogin no

Interdit l’utilisation des interfaces X11 et du TCP forward

X11Forwarding no
AllowTCPForwarding no

Défini les utilisateurs autorisés à se connecter en SSH/SFTP

AllowUsers user2, user1

Chroot et connexion SFTP. On peut également utiliser AllowGroups avec Match Group group.

Match User user1

         # Chroot l'utilisateur dans un répertoire

         ChrootDirectory /var/www/download

         # Force l'utilisation des commandes SFTP, l'ouverture d'un shell n'est plus autorisé !

         ForceCommand internal-sftp

Sur cette dernière partie on chroot un utilisateur, c’est-à-dire que l’on va l’enfermer dans un répertoire !

Attention avec le chroot, lors de l’application on doit prendre en compte certains paramètres.

  1. Les permissions doivent être définies sur 755.
  2. Les répertoires doivent appartenir (utilisateur et groupe) à root.

Donc sur le répertoire sélectionné :

chmod 755 /chemin/vers/chroot
chown root:root /chemin/vers/chroot

Attention, si une erreur telle survient dans /var/log/auth.log lors de la connexion, c’est que le répertoire en question n’a pas les droits nécessaires !

chroot ssh :  fatal: bad ownership or modes for chroot directory "/chemin/vers/chroot"

Attention aussi ! Du coup, l’utilisateur chrooté dans son répertoire « / » n’aura aucun droit dessus. Il faudra créer un nouveau dossier pour l’utilisateur avec ses droits.

mkdir -v /chemin/vers/chroot/dossier_utilisateur
chown -R utilisateur:utilisateur /chemin/vers/chroot/dossier_utilisateur
chmod -R 770 /chemin/vers/chroot/dossier_utilisateur

Et voilà, à la connexion l’utilisateur ne pourra pas remonter plus loin que le dossier défini dans le fichier de configurations d’OpenSSH.

N’oubliez pas de recharger la configuration du serveur à la fin !

/etc/init.d/ssh reload

 

Article publié le

Dernière modification le

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.