Préambule
Lorsque vous utilisez un compte système sur un serveur Linux disposant d’un serveur SSH, vous pouvez bénéficier de l’utilisation de sous systèmes tels que SFTP (Secure FTP) qui vous permettent d’utiliser le serveur SSH pour transférer des fichiers. Seul petit hic, par défaut, comme dans une session SSH classique, tous les users pourront se balader sur toute l’arborescence fichier de votre serveur Linux (en RW ou en RO selon les sections) ce qui est particulièrement non recommandé.
Il faut restreindre le sous système SFTP de votre serveur SSH au home directory de vos users, cela se nomme un CHROOT des users.
CHROOT
Création du Home Directory
Connectez vous sur votre serveur et créez de préférence un point d’entrée sous lequel vous positionnerez tous vos users, cela vous permettra de gérer plus facilement l’espace disque par la suite.
Imaginons dans notre exemple que notre root-dir SFTP soit le dossier /sftp monté sur une partition de type LVM de préférence.
root@serveur : ~ > mkdir -p /sftp/mon_user/RW root@serveur : ~ > mkdir -p /sftp/mon_user/RO root@serveur : ~ > chown -R root:root /sftp/mon_user root@serveur : ~ > chmod -R 755 /sftp/mon_user root@serveur : ~ > chmod -R 777 /sftp/mon_user/RW
Le principe étant au niveau du filesystem de donner l’autorité à root sur le home directory de votre user et de déléguer le contrôle des droits du user au serveur SSH.
Dans cet exemple, nous créons un dossier » RW » accessible en écriture au user » mon_user » et un dossier » RO » accessible uniquement en lecture seule par le user, par exemple pour y déposer des informations de votre choix (docs, etc).
Création du user
root@serveur : ~ > useradd mon_user -d /sftp/mon_user -s /bin/bash root@serveur : ~ > echo "mon_user:mon_password" | passwd
Configuration du serveur SSH
Editez le fichier » /etc/ssh/sshd_config
» et ajoutez y les lignes suivantes :
Match User mon_user ChrootDirectory /sftp/mon_user ForceCommand internal-sftp
Puis redémarrez votre serveur SSH tel que:
root@serveur : ~ > systemctl restart sshd
Voilà, votre user » mon_user » pourra se connecter à votre sous-système SFTP en utilisant votre serveur SSH mais sera contraint de rester dans son home directory.
Recommandations
Notez que les serveurs SSH mal configurés sont des points de faiblesse qui peuvent permettre à des pirates de prendre possession de votre serveur, vous devez respecter les consignes suivantes tant que faire se peut :
Affecter des mots de passe de minium 12 caractères à vos users incluant des majuscules, des minuscules, des chiffres et des caractères spéciaux.
Changez le port par défaut (TCP/IP 22) de votre serveur SSH car il sera scanné très vite par les hackers pour un port non standard, par exemple 55542 ou tout autre port de votre choix.