GNU/Linux >> Tutoriels Linux >  >> Linux

Configurer des utilisateurs SFTP dans des systèmes basés sur Linux

Cet article vous montre comment créer des utilisateurs sécurisés du protocole de transfert de fichiers SSH (SFTP) qui sont limités ou emprisonnés à leurs répertoires personnels.

AVERTISSEMENT :N'essayez pas d'emprisonner l'utilisateur root. Emprisonnez uniquement les utilisateurs supplémentaires afin de ne pas empêcher l'utilisateur root d'effectuer correctement les opérations.

Avant de commencer, passez en revue les bonnes pratiques suivantes :

  • Le répertoire personnel de l'utilisateur SFTP doit appartenir à root:root . Les autres répertoires peuvent (et doivent) appartenir (et être accessibles en écriture) à l'utilisateur.

  • Il est important de s'assurer que l'utilisateur chroot dispose d'un accès en écriture au DocumentRoot spécifié.

  • Il est important de se connecter et de tester que l'utilisateur SFTP fonctionne correctement.

  • Il est important de s'assurer que l'utilisateur SFTP ajouté est ajouté au groupe SFTP.

  • Ces instructions concernent l'ajout d'un seul domaine (utilisateur SFTP), mais vous pouvez éventuellement les utiliser pour gérer plusieurs domaines.

Important :Les étapes décrites dans cet article ne fonctionnent pas avec RHEL® 7 ou CentOS® 7. Comme pour toute opération chroot appropriée, cette configuration ne fournit pas d'accès en écriture au répertoire chroot. Seuls les sous-répertoires de la prison chroot sont accessibles en écriture. Cela est dû à la façon dont les autorisations root sont interprétées au niveau des répertoires de niveau supérieur dans lesquels l'utilisateur SFTP est contenu.

Utilisez les étapes suivantes pour créer des utilisateurs SFTP sécurisés qui sont emprisonnés dans leurs répertoires personnels :

  1. Ajoutez le groupe SFTP que vous souhaitez utiliser pour l'accès SFTP en exécutant la commande suivante :

    groupadd sftponly
    
  2. Ajoutez l'utilisateur SFTP en exécutant la commande suivante, en remplaçant myuser avec le nom d'utilisateur :

    useradd -d /var/www/vhosts/domain.com -s /bin/false -G sftponly myuser
    
  3. Créez un mot de passe pour l'utilisateur en exécutant la commande suivante, en remplaçant myuser avec le nom d'utilisateur :

    passwd myuser
    
  4. Ouvrez le sshd_config fichier contenant la configuration SSH et SFTP en exécutant la commande suivante :

    nano /etc/ssh/sshd_config
    
  5. Commentez la ligne suivante en ajoutant un symbole dièse (#) au début, comme illustré dans l'exemple suivant :

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  6. Ajoutez la ligne suivante directement sous la ligne que vous venez de commenter :

    Subsystem sftp internal-sftp
    
  7. Ajoutez le code suivant au bas du fichier :

    Match Group sftponly
         ChrootDirectory %h
         X11Forwarding no
         AllowTCPForwarding no
         ForceCommand internal-sftp
    
  8. Exécutez le sshd commande pour tester les modifications, puis redémarrez le service.

    Important  :Si cette étape n'est pas effectuée correctement, cela peut endommager votre configuration SSHD.

    sshd -t
    service sshd restart
    

Assurez-vous que les autorisations de fichier sur le système de fichiers sont correctes

Ensuite, vous devez vérifier que les autorisations de fichiers sur le système de fichiers sont correctes afin que la prison SFTP fonctionne correctement.

  1. Vérifiez que le SFTPROOT répertoire (le répertoire personnel que vous avez défini lorsque vous avez ajouté l'utilisateur SSH) a le droit user:root group:root autorisations en exécutant la commande suivante :

    chown root:root /var/www/vhosts/mywebsite.com/
    
  2. Pour vérifier que la connexion SFTP fonctionne, connectez-vous à SFTP en exécutant la commande suivante, en remplaçant myuser avec l'utilisateur que vous avez choisi, comme illustré dans l'exemple suivant :

    sftp myuser@localhost
    myuser@localhost's password:
    Connected to localhost.
    
  3. Testez la liste des répertoires en exécutant la commande suivante :

    sftp> ls -al
    

    Le résultat doit ressembler à l'exemple suivant :

    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 .
    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 ..
    drwxr-xr-x    2 5001     33           4096 Sep 28 08:52 html
    -rw-r--r--    1 0        0               0 Sep 28 08:09 test.php
    

    Remarque :Utilisez le cd commande pour accéder au répertoire HTML (situé dans /var/www/vhosts/mywebsite.com/html parce que le site Web 'documentroot' est un niveau en dessous de la root de l'utilisateur SSH SFTP annuaire. Vous devez utiliser cette configuration car votre www-data les utilisateurs (les utilisateurs du serveur Web) ont la racine user:group autorisations sur ses fichiers.

  4. Testez la possibilité de télécharger des fichiers en exécutant les commandes suivantes :

    sftp> cd html
    sftp> put test.php
    Uploading test.php to /html/test.php
    test.php                                                                                                                                                                                                                                        
    100%    12K     20.0KB/s   00:00
    
  5. Testez la possibilité de télécharger des fichiers en exécutant la commande suivante :

    sftp> get test.php
    Fetching /test.php to test.php
    
  6. Affichez le répertoire de travail actuel en exécutant la commande suivante :

    sftp> pwd
    
    Remote working directory: /html
    

    SFTP ne voit que les fichiers dans /var/www/vhosts/mywebsite.com/ et considère ce répertoire comme le répertoire racine ('/') de plus haut niveau.

  7. Utilisez les étapes suivantes pour vous connecter à SFTP et configurer votre client SFTP :

    1. Installez Cyberduck®.
    2. Ouvrez l'application Cyberduck.
    3. En haut de la fenêtre, cliquez sur l'icône Ouvrir une connexion .
    4. Dans le menu déroulant, sélectionnez SFTP (protocole de transfert de fichiers SSH) .
    5. Dans le serveur champ, saisissez l'adresse IP (Internet Protocol) du serveur.
    6. Saisissez le nom d'utilisateur et le mot de passe que vous utilisez pour vous connecter à SFTP.
    7. Cliquez sur Se connecter .

Important  :Testez toujours votre site Web après avoir modifié les autorisations de fichiers.


Linux
  1. Liste des utilisateurs sous Linux - Meilleure méthode

  2. Comment répertorier les utilisateurs dans CentOS 7

  3. Comment définir les paramètres par défaut du bureau pour les nouveaux utilisateurs ? ?

  4. Définir ou modifier un mot de passe utilisateur sous Linux

  5. Comment définir umask pour un utilisateur système ?

Comment ajouter des utilisateurs à un groupe sous Linux

Comment définir ou modifier l'agent utilisateur avec curl

Comment gérer les utilisateurs dans Plesk

Comment répertorier les utilisateurs sous Linux

Comment changer ou définir un mot de passe utilisateur sous Linux

Utilisateurs Webmin