Il existe certains scénarios où l'administrateur système souhaite que seuls quelques utilisateurs soient autorisés à transférer des fichiers vers des machines Linux, mais pas de ssh . Nous pouvons y parvenir en configurant SFTP dans un environnement chroot.
Contexte de SFTP &chroot :
SFTP signifie protocole de transfert de fichiers SSH ou Protocole de transfert de fichiers sécurisé . SFTP fournit des fonctionnalités d'accès aux fichiers, de transfert de fichiers et de gestion de fichiers sur n'importe quel flux de données fiable. Lorsque nous configurons SFTP dans un environnement chroot, seuls les utilisateurs autorisés seront limités à leur répertoire personnel , ou nous pouvons dire que les utilisateurs autorisés seront en prison comme un environnement où ils ne peuvent même pas changer leur répertoire.
Dans l'article, nous allons configurer le serveur Chroot SFTP sur RHEL &CentOS système . Nous avons un utilisateur 'Jack ' , cet utilisateur sera autorisé à transférer des fichiers sur la machine Linux mais pas d'accès ssh.
Etape :1) Créer un groupe
Créez un groupe sftp_users à l'aide de la commande groupadd,
[[email protected] ~]# groupadd sftp_users
Étape :2) Attribuez le groupe secondaire (sftp_users) à l'utilisateur
Si les utilisateurs n'existent pas sur le système, utilisez la commande ci-dessous pour le créer,
[[email protected] ~]# useradd -G sftp_users -s /sbin/nologin jack [[email protected] ~]# passwd jack
Pour les utilisateurs déjà existants , utilisez la commande usermod ci-dessous :
[[email protected] ~]# usermod –G sftp_users -s /sbin/nologin jack
Remarque : Si vous souhaitez modifier le répertoire d'accueil par défaut d'utilisateurs , puis utilisez ‘-d’ dans les commandes useradd et usermod et définissez les autorisations appropriées.
Étape 3) Modifiez maintenant le fichier de configuration "/etc/ssh/sshd_config"
Modifiez le sshd_config à l'aide de votre éditeur préféré,
# vi /etc/ssh/sshd_config #comment out the below line and add a line like below #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp # add Below lines at the end of file Match Group sftp_users X11Forwarding no AllowTcpForwarding no ChrootDirectory %h ForceCommand internal-sftp
Où :
Mettre en correspondance le groupe sftp_users – Cela indique que les lignes suivantes seront mises en correspondance uniquement pour les utilisateurs appartenant au groupe sftp_users
ChrootDirectory %h - Il s'agit du chemin (répertoire personnel de l'utilisateur par défaut) qui sera utilisé pour le chroot une fois l'utilisateur authentifié. Donc, pour Jack, ce sera /home/jack.
ForceCommand internal-sftp – Cela force l'exécution du internal-sftp et ignore toute commande mentionnée dans le fichier ~/.ssh/rc.
Après avoir apporté les modifications ci-dessus, redémarrez le service ssh à l'aide de la commande suivante,
[[email protected] ~] # systemctl restart sshd
Étape : 4) Définissez les autorisations requises sur le répertoire personnel de l'utilisateur
Comme dans notre démonstration, nous utilisons l'utilisateur jack en tant qu'utilisateur sftp, exécutez donc les commandes suivantes pour définir les autorisations requises sur son répertoire personnel,
[[email protected] ~]# chmod 755 /home/jack [[email protected] ~]# chown root /home/jack [[email protected] ~]# chgrp -R sftp_users /home/jack
Au cas où vous voudriez que l'utilisateur jack soit autorisé à télécharger des fichiers , puis créez un dossier de téléchargement avec les autorisations ci-dessous ,
[[email protected] jack]# mkdir /home/jack/upload [[email protected] jack]# chown jack. /home/jack upload/
Si selinux est activé sur votre système, exécutez la commande suivante pour définir les règles selinux,
[[email protected] ~] setsebool -P ssh_chroot_full_access on
Étape 5) Tester le serveur Sftp
Essayez d'abord d'accéder au système en utilisant ssh via jack user,
Comme nous pouvons le voir dans la sortie ci-dessus, l'utilisateur jack est autorisé à ssh.
Essayons maintenant de nous connecter en utilisant sftp,
Comme vous pouvez le voir ci-dessus, l'utilisateur jack est connecté via SFTP mais ne peut pas modifier le répertoire en raison de l'environnement chroot.
Faites maintenant le chargement et téléchargement test comme indiqué ci-dessous :
Comme nous pouvons le voir ci-dessus, le téléchargement et le téléchargement fonctionnent correctement pour l'utilisateur jack. C'est la conclusion de l'article, vous êtes les bienvenus pour partager vos commentaires et commentaires dans les sections de commentaires ci-dessous.
Lire aussi : Comment configurer un serveur SFTP avec Chroot dans Debian 10