GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer un utilisateur SFTP pour une racine de document de serveur Web

SFTP (SSH/Secure File Transfer Protocol) est une norme de transmission réseau utilisée pour transférer, accéder et gérer des fichiers sur un réseau distant. Il contient SSH (Secure Shell), ce qui le rend beaucoup plus sécurisé que le protocole FTP.

Les fichiers sont transférés via un seul canal de contrôle dans SFTP. Il nécessite une authentification et s'exécute sur le port 22. Dans SFTP, le shell SSH fournit un chiffrement qui permet de protéger les noms d'utilisateur, les mots de passe et les autres données personnelles transférées via SFTP.

Dans ce guide pratique, nous apprendrons à créer des utilisateurs SFTP pour la racine du document du serveur Web.

Étape 1 - Installation de SSH (Secure Shell)

SFTP est un protocole de transfert de fichiers très sécurisé en raison du cryptage fourni par SSH pour les données lors de leur transfert sur le réseau. SSH est principalement installé sur les distributions Linux par défaut, mais s'il n'est pas préinstallé sur votre système, vous pouvez utiliser la commande ci-dessous pour l'installer :

sudo apt install ssh 

S'ils sont déjà installés, la commande mettra à niveau les packages OpenSSH.

Étape 2 – Configuration de SSH pour utiliser le code de serveur SFTP

Ouvrez maintenant le fichier de configuration de SSH dans un éditeur de texte pour le modifier pour le code du serveur SFTP. Ici, nous allons utiliser l'éditeur nano pour modifier le fichier de configuration.

sudo nano /etc/ssh/sshd_config 

Localisez la ligne commençant par "Sous-système sftp".

Commentez la ligne en ajoutant # au début de la ligne et écrivez la ligne suivante après cette ligne comme indiqué dans la capture d'écran ci-dessous :

Subsystem sftp internal-sftp

Le SSHD utilisera le code du serveur SFTP au lieu d'exécuter le serveur SFTP en modifiant la ligne ci-dessus.

Une fois que vous avez modifié le fichier de configuration, enregistrez le fichier et quittez-le en utilisant les raccourcis clavier CTRL+S et CTRL+X.

Après les modifications, nous devons redémarrer le démon SSHD pour que les modifications fonctionnent.

sudo systemctl restart sshd 

Étape 3 - Création d'un utilisateur (utilisateur SFTP)

Il est recommandé de créer un nouvel utilisateur disposant uniquement d'un accès SFTP à la racine du document. Il n'est pas recommandé d'ajouter un utilisateur avec des privilèges Sudo à la racine du document du serveur Web. Créez un nouvel utilisateur à l'aide de la commande adduser :

sudo adduser sftpuser 

Le terminal demandera quelques choses comme la définition du mot de passe et des informations sur l'utilisateur. Il demandera également quelques autres détails, alors laissez-les vides ou fournissez les informations appropriées.

Un nouvel utilisateur avec le nom de sftpuser est créé avec succès.

Étape 4 – Création de la directive Match User dans le fichier de configuration SSH

Maintenant, nous allons restreindre cet utilisateur à la racine du document et nous allons également désactiver l'accès de l'utilisateur à SSH afin que l'utilisateur se connecte via SFTP.

Pour restreindre l'accès de l'utilisateur, ouvrez le fichier de configuration de SSH dans n'importe quel éditeur de texte :

sudo nano /etc/ssh/sshd_config 

Allez maintenant à la fin du fichier et ajoutez le contenu suivant dans le fichier de configuration "sshd_config" :

Match User sftpuser
        ForceCommand internal-sftp 
        ChrootDirectory /var/www/
        PasswordAuthentication yes
        X11Forwarding no 
        AllowTcpForwarding no 

Assurez-vous de remplacer le nom d'utilisateur "sftpuser" par le nom d'utilisateur que vous avez défini.

Une fois le contenu ci-dessus ajouté au fichier de configuration SSH, enregistrez et quittez à l'aide des touches de raccourci CTRL+S et CTRL+X.

Pour vérifier la syntaxe et vérifier si tout s'est bien passé, vous pouvez exécuter la commande :

sudo sshd -t 

Si aucune erreur ne se produisait, nous pourrions recharger le service SSH pour que les modifications fonctionnent.

sudo systemctl restart sshd 

Étape 5 - Ajouter un utilisateur SFTP au groupe www-data

Nous allons maintenant ajouter l'utilisateur au groupe www-data en exécutant la commande suivante :

sudo usermod -a -G www-data sftpuser 

En cas d'exécution réussie, aucune sortie ne sera affichée.

Étape 6 – Définir l'autorisation du répertoire racine du document

Veuillez suivre très attentivement les instructions suivantes car SFTP est très strict en ce qui concerne les autorisations de répertoire chroot.

  1. Nous allons commencer par vérifier les autorisations actuelles et la propriété de var :
    sudo ls -ld /var/ 
    
  2. Les permissions doivent être 755 et le propriétaire doit être root par défaut. Si ce n'est pas le cas, exécutez la commande ci-dessous pour définir les autorisations appropriées :
    sudo chmod 755 /var/ 
    
  3. Utilisez maintenant cette commande pour définir le bon propriétaire :
    sudo chown root:root /var/ 
    
  4. De même, appliquez les mêmes permissions au chroot :

    sudo chmod 755 /var/www/ 
    
  5. Puisque nous avons défini "/var/www/" dans le répertoire chroot. Définissez maintenant le bon propriétaire du répertoire chroot :
    sudo chown root:root /var/www/ 
    
  6. Pour autoriser un groupe à écrire dans le répertoire racine du document, définissez son autorisation sur 755 :
    sudo chmod 755 /var/www/html/ 
    
  7. Pour accorder la propriété de la racine du document "/var/www/html" et de ses autres répertoires et fichiers au groupe www-data, utilisez la commande ci-dessous :
    sudo chown -R www-data:www-data /var/www/html* 
    
  8. Donnez maintenant 755 autorisations au contenu placé dans la racine du document "/var/www/html" en utilisant la commande :
    sudo find /var/www/html/ -type d -exec chmod 775 {} \; 
    
  9. La commande ci-dessus accordera à l'utilisateur SFTP les autorisations de lecture, d'écriture et d'exécution des répertoires.

    Nous devons également accorder 664 autorisations à tous les fichiers présents dans la racine du document pour permettre au propriétaire et au groupe d'utilisateurs SFTP de lire et d'écrire les fichiers :

    sudo find /var/www/html/ -type f -exec chmod 664 {} \; 
    
  10. Maintenant, pour la dernière étape, assurez-vous que tous les nouveaux fichiers et répertoires acquièrent le groupe www-data créé par l'utilisateur SFTP nouvellement créé :
    sudo find /var/www/html -type d -exec chmod g+s {} \; 
    

Toutes nos félicitations! votre nouvel utilisateur SFTP a été créé et ajouté à la racine du document du serveur Web. Vous pouvez maintenant vous connecter à SFTP.

Conclusion

Dans ce guide pratique, nous avons appris comment installer et configurer SSH pour utiliser le code du serveur SFTP. Après cela, nous avons créé un nouvel utilisateur, l'avons limité à la racine du document et avons désactivé son accès SSH. Ensuite, nous avons ajouté l'utilisateur à la racine du document du serveur Web pour permettre à l'utilisateur de lire, d'écrire et d'exécuter des fichiers dans la racine du document.


Linux
  1. Comment configurer les privilèges Sudo pour l'utilisateur sous Linux

  2. Comment désactiver la connexion à distance pour l'utilisateur root sur une machine Linux

  3. Centos - Comment créer un utilisateur Sftp dans Centos ?

  4. Comment créer un nouvel utilisateur avec un accès Ssh ?

  5. Comment créer un utilisateur SFTP sans accès au shell sur CentOS 8

Comment créer un serveur de fichiers personnel avec SSH sous Linux

Comment réinitialiser le mot de passe de l'utilisateur racine MySQL sous Linux

Comment désactiver la connexion SSH pour l'utilisateur root sous Linux ?

Comment activer l'utilisateur root dans Ubuntu Server ?

Comment créer un contrôleur de domaine sous Linux pour AD

Comment puis-je créer un utilisateur uniquement pour sftp ?