GNU/Linux >> Tutoriels Linux >  >> Linux

Guide de configuration du serveur SFTP sous Linux

Qu'est-ce que SFTP ?

SFTP signifie SSH File Transfer Protocol. Vous l'avez deviné juste. C'est la version de FTP qui utilise SSH en haut. Il permet aux utilisateurs de télécharger et de télécharger des fichiers vers et depuis un serveur Linux via une connexion cryptée. FTP fait la même chose sans cryptage et c'est pourquoi SFTP est préféré à FTP de nos jours.

Voyons comment configurer un serveur SFTP sur un système Linux.

Configuration du serveur SFTP sous Linux

J'ai utilisé Ubuntu dans ce tutoriel. Les commandes d'installation sont spécifiques à Ubuntu et Debian mais le reste des étapes peut être suivi dans n'importe quelle autre distribution Linux.

Pour effectuer les étapes, vous devez disposer des droits sudoer. Donc, si vous n'avez pas les droits sudo, contactez votre administrateur système. Si vous êtes le seul, veuillez lire sur la création d'un utilisateur sudo dans Ubuntu.

La configuration de SFTP est très simple. Avant de passer à cela, vous devez avoir installé OpenSSH côté serveur et le package SSH côté client.

J'ai discuté en détail de la configuration de SSH sur Ubuntu dans un article séparé, je mentionnerai simplement les étapes importantes ici.

Pour installer OpenSSH sur le serveur, vous pouvez utiliser la commande suivante :

sudo apt install openssh-server

Vous avez également besoin de SSH sur le système à partir duquel vous allez accéder au serveur SFTP.

sudo apt install ssh

Une fois cela fait, vous aurez tout prêt pour configurer SFTP. Cela se fait en trois étapes et je vais vous le montrer un par un.

Étape 1 :Créer des groupes, des utilisateurs et des répertoires

Pour utiliser SFTP (ou tout autre service en général) en toute sécurité, il est préférable de créer des groupes et des utilisateurs pour utiliser ce service et uniquement ce service. "Il est préférable de donner un droit spécifique à une entité spécifique" .

Si vous souhaitez donner un accès SFTP ainsi qu'un accès normal au système, créez des utilisateurs de sorte qu'il soit facile de les identifier en fonction du service. Par exemple, si seeni est utilisé pour un accès normal au système alors seenisftp peut être utilisé pour l'accès SFTP. L'utilisation de cette méthode sera plus facile du côté de l'administration.

Créons un groupe nommé "sftpg ” en utilisant la commande groupadd :

sudo groupadd sftpg

Créons un utilisateur nommé "seenisftp" et ajoutez-le au groupe ci-dessus et donnez-lui un mot de passe.

sudo useradd -g sftpg seenisftp 
sudo passwd seenisftp

Dans la commande useradd, -g L'option indique au groupe à quel utilisateur doit être ajouté. Vous pouvez répertorier tous les utilisateurs sous Linux et vérifier que le nouvel utilisateur a été ajouté.

Supposons que vous souhaitiez utiliser le répertoire /data/ comme racine pour sftp et /data/USERNAME pour chaque utilisateur. Ainsi, lorsque les utilisateurs se connectent via sftp, ils doivent se trouver dans /data/USERNAME comme répertoire par défaut (comme si vous étiez dans /home/USERNAME répertoire lorsque vous vous connectez au système Linux via SSH). Supposons également qu'ils puissent lire les fichiers de ce répertoire, mais ne peuvent les télécharger que sur téléchargements répertoire.

Créons les répertoires et modifions leur accès et leur propriété comme suit (lisez à propos des autorisations de fichiers sous Linux pour en savoir plus).

sudo mkdir -p /data/seenisftp/upload
sudo chown -R root.sftpg /data/seenisftp
sudo chown -R seenisftp.sftpg /data/seenisftp/upload

Une chose qui pourrait prêter à confusion est de donner la propriété du répertoire de l'utilisateur à la racine elle-même. Ceci est obligatoire pour chrooter dans SFTP. Assurez-vous donc que le propriétaire de /data/USERNAME est racine .

À partir de maintenant, nous avons un utilisateur nommé seenisftp avec le groupe sftpg et avec des autorisations d'accès définies pour /data/seenisftp .

Étape 2 :Configurer sshd_config

Ensuite, vous devez configurer le serveur ssh afin que chaque fois qu'un utilisateur appartenant au groupe sftpg se connecte, il accède à sftp au lieu du shell normal, vous obtenez via ssh. Ajoutez l'extrait suivant à /etc/ssh/sshd_config s'il n'est pas déjà présent.

Match Group sftpg
        ChrootDirectory /data/%u
        ForceCommand internal-sftp

Dans l'extrait de code ci-dessus, ChrootDirectory permet au répertoire spécifié d'être créé en tant que nœud racine ("/" répertoire ) dans l'arborescence des répertoires. L'utilisateur connecté ne peut rien voir au-dessus de ce répertoire. Cela empêchera donc l'utilisateur actuel d'accéder aux fichiers d'un autre utilisateur via sftp . %u est le code d'échappement pour le remplir avec le nom d'utilisateur actuel au moment de la connexion. Quand voirisftp se connecte via sftp , il sera dans /data/seenisftp comme répertoire racine. Il ne pourra rien voir au-dessus.

Étape 3 :Redémarrez le service

Pour apporter les modifications que nous avons apportées à sshd_config live, redémarrez le service comme suit.

sudo systemctl restart sshd

Accéder à SFTP via la ligne de commande Linux

Vous pouvez vous connecter à SFTP comme vous le feriez normalement avec SSH.

sftp [email protected]

Exemples de commandes SFTP

Les commandes SFTP sont généralement au format suivant.

COMMAND [SOURCE] [DESTINATION]

Pour toute commande, les arguments peuvent être soit des chemins d'accès au système local, soit des chemins d'accès au système distant. Il n'y a pas de distinction visible spécifique entre eux. Vous pouvez spécifier le chemin normalement après avoir déterminé si l'argument est local ou distant.

OBTENIR – télécharger le contenu du serveur distant vers le système local. La commande ci-dessous télécharge le fichier distant poster.img aux ~/Pictures du système local répertoire.

GET poster.img ~/Pictures

METTRE – Télécharger le contenu du système local vers le système distant. La commande ci-dessous télécharge le ~/Pictures/poster2.jpg dans mes téléchargements répertoire.

PUT ~/Pictures/poster2.jpg uploads/

RM – Pour supprimer les fichiers du système distant. Ceci est très similaire à rm commande. Vous pouvez voir cette commande ci-dessous qui supprime une image sur uploads/poster3.jpg

RM uploads/poster3.jpg

Les commandes ci-dessus sont très basiques et suffisent pour explorer le serveur FTP/SFTP. Si vous voulez en savoir plus, utilisez help commandez ou utilisez cette ressource.

J'espère que cet article vous a aidé à configurer le serveur SFTP sous Linux.

Dites-nous dans les commentaires quelle est la configuration de votre système de fichiers SFTP. Est-ce comme mentionné dans cet article ou un répertoire groupé ou autre chose ?

Si vous avez trouvé cet article utile, partagez-le avec vos amis. Si vous avez des suggestions, n'hésitez pas à les déposer ci-dessous.


Linux
  1. Un guide du terminal Linux pour les débutants

  2. 7 étapes pour sécuriser votre serveur Linux

  3. Qu'est-ce que Linux ? Un guide pour les utilisateurs non techniques

  4. Comment installer le serveur Web Nginx sur Linux

  5. Commande Linux pour attendre qu'un serveur SSH soit opérationnel

10 configurations Sudoers utiles pour définir « sudo » sous Linux

Comment configurer le serveur Chroot SFTP sous Linux

Configuration de la partition LVM sur le serveur Linux

Guide de démarrage rapide d'Ansible pour les administrateurs système Linux

Serveur de surveillance Graylog sur Ubuntu Linux pour la surveillance du serveur/des services

Réglage du fuseau horaire sous Linux