GNU/Linux >> Tutoriels Linux >  >> Debian

Comment créer un utilisateur SFTP uniquement dans Debian 11

SFTP (SSH File Transfer Protocol) est un protocole de fichier sécurisé utilisé pour accéder, gérer et transférer des fichiers via une session de transport SSH cryptée. La sécurité d'abord est une règle empirique pour les administrateurs système. Dans certains cas, nous devons autoriser les utilisateurs distants à accéder au système de fichiers sur notre système, mais vous ne voulez pas leur permettre d'obtenir un shell. Cela vous permettra d'avoir un canal sécurisé pour fournir un accès limité à des fichiers et répertoires spécifiques.

Ce tutoriel vous aidera à configurer l'accès SFTP uniquement (sans accès au shell) sur le système Debian 11. Il créera un environnement chroot sur votre système pour limiter l'utilisateur SFTP à un répertoire spécifique uniquement. En outre, cela autorisera uniquement l'accès SFTP sans accès SSH à l'utilisateur.

Prérequis

  • Un système Linux Debian 11 Bullseye en cours d'exécution
  • Vous devez avoir un compte privilégié sudo avec accès au shell

Étape 1 - Créer un nouvel utilisateur

Tout d'abord, créez un nouvel utilisateur pour vous connecter au serveur sftp. La commande suivante créera un nouveau compte nommé sftpuser sans accès au shell. Vous pouvez utiliser n'importe quel nom de votre choix ou exigence.

sudo adduser --shell /bin/false sftpuser 

Étape 2 - Créer un répertoire pour l'accès SFTP

Vous avez créé un utilisateur pour sftp. Maintenant, créez un répertoire à configurer comme chroot pour le sftp. Pour cet exemple, je vais créer un /var/sftp annuaire. Le répertoire doit avoir la propriété root pour être configuré en tant que répertoire chroot. Nous allons donc créer un sous-répertoire sous /var/sftp avec un accès en écriture au compte sftp.

Créez la structure de répertoire avec la commande suivante :

sudo mkdir -p /var/sftp/files 

Ensuite, nous devons définir les autorisations appropriées sur les répertoires à configurer en tant qu'accès chroot avec accès en écriture à l'utilisateur. Ici, /var/sftp doit avoir la propriété root et le groupe avec les autorisations appropriées. Pour définir cette autorisation, saisissez :

sudo chown root:root /var/sftp 
sudo chmod 755 /var/sftp 

Maintenant, changez l'autorisation pour les "files" répertoire pour autoriser l'accès en écriture à sftpuser. Pour définir ces autorisations, saisissez :

sudo chown sftpuser:sftpuser /var/sftp/files 

Une fois que le sftpuser se connecte au serveur, il obtiendra /var/sftp comme répertoire racine. Il ne peut pas accéder au système de fichiers en dehors de celui-ci. De plus, l'utilisateur peut lire/écrire des fichiers uniquement dans le répertoire "files".

Étape 3 - Configurer sshd pour SFTP uniquement

Ensuite, vous devez configurer le serveur SSH pour permettre au "sftpuser" de se connecter au serveur avec sFTP uniquement sans accès au shell. Pour apporter les modifications nécessaires, modifiez le fichier de configuration SSH.

sudo nano /etc/ssh/sshd_config 

et ajoutez les paramètres suivants à la fin du fichier.

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

Vérifiez que tous les paramètres sont corrects. Enregistrez ensuite les modifications et redémarrez le service SSH pour appliquer les modifications.

sudo systemctl restart ssh 

Tout est fait, l'utilisation SFTP uniquement est créée avec succès sur votre système Debian. Essayez maintenant de vous connecter au système distant avec les informations d'identification du nouvel utilisateur et vérifiez si tout fonctionne correctement.

Étape 4 – Se connecter au SFTP

On peut se connecter à un serveur SFTP distant en utilisant une ligne de commande ou des applications graphiques comme Filezilla ou WinSCP. Dans ce tutoriel, je vais vous montrer les deux manières de connecter un serveur SFTP.

Les utilisateurs Linux peuvent utiliser l'utilitaire de ligne de commande sftp pour se connecter à des instances sftp distantes.

sftp [email protected] 

[email protected]'s password:
sftp>

L'interface graphique ou les utilisateurs Windows peuvent utiliser des clients sftp graphiques. Par exemple, utilisez le client Filezilla pour connecter un compte sftp distant uniquement sur le système distant.

Vérifiez qu'il n'y a pas d'accès au shell :

Comme ce compte est configuré pour une connexion SFTP uniquement. Ainsi, si un utilisateur tente de se connecter via SSH, il sera déconnecté immédiatement après une authentification réussie. L'utilisateur recevra le message ci-dessous :

ssh [email protected] 

[email protected]'s password:
This service allows sftp connections only.
Connection to sftp.tecadmin.net closed.

Conclusion

Dans ce guide pratique, vous avez appris à créer un environnement de prison chroot pour les utilisateurs SFTP sans accès shell au serveur. L'environnement Chroot sécurise le système de fichiers en empêchant les utilisateurs d'accéder aux fichiers en dehors du répertoire défini. Ce tutoriel est créé et testé avec le système Debian 11 Bullseye mais cela fonctionnera sur d'autres versions de Debian.


Debian
  1. Comment créer un utilisateur Sudo sur CentOS, Ubuntu et Debian

  2. Comment créer un utilisateur Sudo dans Debian

  3. Comment configurer un serveur SFTP sur le serveur Debian 11

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

  5. Comment restreindre l'accès su à un utilisateur uniquement par PAM sous Linux

Comment créer un utilisateur ssh emprisonné avec Jailkit sur Debian/Ubuntu

Comment ajouter un utilisateur à Sudoers sur Debian 10

Comment installer Fathom sur Debian 11

Comment installer Git sur Debian 10

Comment créer un utilisateur Sudo sur Ubuntu et Debian

Comment créer un utilisateur ou un contact