GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer le serveur Chroot SFTP sous Linux

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


Linux
  1. Comment configurer des jails chroot Linux

  2. Comment travailler avec le client SFTP sous Linux - 10 commandes sftp

  3. Comment configurer un serveur SFTP sur Arch Linux

  4. Comment installer et configurer le serveur et le client Linux NTP

  5. Comment configurer VNC Server sur Oracle Linux 6

Comment installer et configurer un serveur NFS sur un système Linux

Comment installer et configurer le serveur Apache SVN sur le bureau Linux

Comment SSH au serveur via Linux

Comment configurer NGINX sur un serveur CentOS 7

Comment installer et configurer Apache Webserver sur Oracle Linux 8

Comment installer et configurer le serveur DNS sous Linux