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.
- Les permissions doivent être définies sur 755.
- 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