OpenSSH : Sécuriser l'accès SSH

book
date_range
comment3 commentaires
remove_red_eye7823 vues

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

 

Articles similaires

Commentaires

comment maigrir vite - Invité - 10/11/2013 12:29
Merci, je mets dans mes favoris ce tutoriel car de nos jours trop de hackers ...
sergentpepper - Invité - 24/01/2014 13:07
Je reviens sur ce post très intéressant car j'ai un gros problème avec une connexion sftp.

J'ai créé un utilisateur test avec "/" en tant que répertoire :

useradd -g sftpusers -d / -s /sbin/nologin test

Lorsque je me connecte j'ai une erreur : Write failed: Broken pipe Couldn't read packet: Connection reset by peer.

J'ai donc supprimé l'utilisateur test, puis je l'ai recréé avec /incoming en répertoire. Le problème, c'est que ça me refuse tout de même l'accès alors que le user est bien configuré. C'est comme si, malgré l'effacement du user test, ça gardait une trace quelque part.

Pour un récap de mon problème, voici mon post sur Stackoverflow
Dinath - Administrateur - 15/10/2014 15:45
Merci beaucoup pour votre retour :)
1

Ajouter un commentaire

Vous ne disposez pas les autorisations nécessaires pour poster un commentaire.