GNU/Linux >> Tutoriels Linux >  >> Debian

Comment configurer un serveur SFTP avec Chroot dans Debian 10

SFTP signifie Secure File Transfer Protocol / SSH File Transfer Protocol, c'est l'une des méthodes les plus courantes utilisées pour transférer des fichiers en toute sécurité via ssh de notre système local vers un serveur distant et vice-versa. Le principal avantage de sftp est que nous n'avons pas besoin d'installer de package supplémentaire à l'exception de 'openssh-server ', dans la plupart des distributions Linux, le package 'openssh-server' fait partie de l'installation par défaut. L'autre avantage de sftp est que nous pouvons permettre à l'utilisateur d'utiliser sftp uniquement et non ssh.

Récemment Debian 10, le nom de code 'Buster' a été publié, dans cet article, nous allons montrer comment configurer sftp avec Chroot 'Jail' comme environnement dans le système Debian 10. Ici, un environnement de type Chroot Jail signifie que les utilisateurs ne peuvent pas aller au-delà de leurs répertoires personnels respectifs ou que les utilisateurs ne peuvent pas changer de répertoire à partir de leurs répertoires personnels. Voici les détails de l'atelier :

  • SE =Debian 10
  • Adresse IP =192.168.56.151

Passons aux étapes de configuration SFTP,

Étape :1) Créez un groupe pour sftp à l'aide de la commande groupadd

Ouvrez le terminal, créez un groupe avec un nom "sftp_users ” en utilisant la commande groupadd ci-dessous,

[email protected]:~# groupadd sftp_users

Étape :2) Ajouter des utilisateurs au groupe "sftp_users" et définir les autorisations

Si vous souhaitez créer un nouvel utilisateur et ajouter cet utilisateur au groupe "sftp_users", exécutez la commande suivante,

Syntaxe : #  useradd -m -G sftp_users

Supposons que le nom d'utilisateur est 'Jonathan'

[email protected]:~# useradd -m -G sftp_users jonathan

définissez le mot de passe à l'aide de la commande chpasswd suivante,

[email protected]:~# echo "jonathan:<enter_password>" | chpasswd

Si vous souhaitez ajouter des utilisateurs existants au groupe 'sftp_users' puis exécuter sous la commande usermod, supposons que le nom d'utilisateur déjà existant est 'chris'

[email protected]:~# usermod -G sftp_users chris

Définissez maintenant les autorisations requises sur les utilisateurs,

[email protected]:~# chown root /home/jonathan /home/chris/

Créez un dossier de téléchargement dans le répertoire personnel de l'utilisateur et définissez le propriétaire correct,

[email protected]:~# mkdir /home/jonathan/upload
[email protected]:~# mkdir /home/chris/upload
[email protected]:~# chown jonathan /home/jonathan/upload
[email protected]:~# chown chris /home/chris/upload

Remarque : Des utilisateurs comme Jonathan et Chris peuvent télécharger des fichiers et des répertoires pour télécharger un dossier à partir de leurs systèmes locaux.

Étape :3) Modifier le fichier de configuration sftp (/etc/ssh/sshd_config)

Comme nous l'avons déjà dit, les opérations sftp sont effectuées via ssh, donc son fichier de configuration est "/etc/ssh/sshd_config ", Avant d'apporter des modifications, je suggérerais d'abord de prendre la sauvegarde, puis de modifier ce fichier et d'ajouter le contenu suivant,

[email protected]:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config-org
[email protected]:~# vim /etc/ssh/sshd_config
………
#Subsystem      sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory %h
  ForceCommand internal-sftp
…………

Enregistrez et quittez le fichier.

Pour apporter les modifications ci-dessus à l'effet, redémarrez le service ssh à l'aide de la commande systemctl suivante

[email protected]:~# systemctl restart sshd

Dans le fichier "sshd_config" ci-dessus, nous avons commenté la ligne qui commence par "Sous-système" et ajouté une nouvelle entrée "Sous-système       sftp    internal-sftp" et de nouvelles lignes comme,

"Match Group sftp_users" -> Cela signifie que si un utilisateur fait partie du groupe "sftp_users", appliquez les règles mentionnées ci-dessous à cette entrée.

"RépertoireChroot %h ” –> Cela signifie que les utilisateurs ne peuvent changer de répertoire que dans leurs répertoires personnels respectifs, ils ne peuvent pas aller au-delà de leurs répertoires personnels, ou en d'autres termes, nous pouvons dire que les utilisateurs ne sont pas autorisés à changer de répertoire, ils obtiendront un environnement de type jai dans leurs répertoires et pourront n'accède pas aux répertoires des autres utilisateurs et systèmes.

"ForceCommand interne-sftp ” –> Cela signifie que les utilisateurs sont limités à la commande sftp uniquement.

Étape 4) Tester et vérifier sftp

Connectez-vous à tout autre système Linux qui se trouve sur le même réseau que votre serveur sftp, puis essayez de vous connecter au serveur ssh sftp via les utilisateurs que nous avons mappés dans le groupe "sftp_users".

[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Write failed: Broken pipe
[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Write failed: Broken pipe
[[email protected] ~]#

Ci-dessus confirme que les utilisateurs ne sont pas autorisés à utiliser SSH, essayez maintenant sftp en utilisant les commandes suivantes,

[[email protected] ~]# sftp [email protected]
[email protected]'s password:
Connected to 192.168.56.151.
sftp> ls -l
drwxr-xr-x    2 root     1001         4096 Sep 14 07:52 debian10-pkgs
-rw-r--r--    1 root     1001          155 Sep 14 07:52 devops-actions.txt
drwxr-xr-x    2 1001     1002         4096 Sep 14 08:29 upload

Essayons de télécharger un fichier en utilisant sftp 'get ‘ commande

sftp> get devops-actions.txt
Fetching /devops-actions.txt to devops-actions.txt
/devops-actions.txt                                                                               100%  155     0.2KB/s   00:00
sftp>
sftp> cd /etc
Couldn't stat remote file: No such file or directory
sftp> cd /root
Couldn't stat remote file: No such file or directory
sftp>

La sortie ci-dessus confirme que nous sommes en mesure de télécharger le fichier de notre serveur sftp sur la machine locale et en dehors de cela, nous avons également testé que les utilisateurs ne peuvent pas changer de répertoire.

Essayons de télécharger un fichier sous "télécharger ” dossier,

sftp> cd upload/
sftp> put metricbeat-7.3.1-amd64.deb
Uploading metricbeat-7.3.1-amd64.deb to /upload/metricbeat-7.3.1-amd64.deb
metricbeat-7.3.1-amd64.deb                                                                        100%   38MB  38.4MB/s   00:01
sftp> ls -l
-rw-r--r--    1 1001     1002     40275654 Sep 14 09:18 metricbeat-7.3.1-amd64.deb
sftp>

Cela confirme que nous avons réussi à télécharger un fichier de notre système local vers le serveur sftp.

Testez maintenant le serveur SFTP avec l'outil winscp, entrez l'adresse IP du serveur SFTP avec les informations d'identification de l'utilisateur,

Cliquez sur Connexion, puis essayez de télécharger et de télécharger des fichiers

Essayez maintenant de télécharger des fichiers dans le dossier de téléchargement,

La fenêtre ci-dessus confirme que le téléchargement fonctionne également correctement, c'est tout de cet article. Si ces étapes vous aident à configurer le serveur SFTP avec un environnement chroot dans Debian 10, veuillez partager vos commentaires et commentaires.


Debian
  1. Comment installer et configurer VNC sur Debian 9

  2. Comment configurer un serveur FTP avec VSFTPD sur Debian 9

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

  4. Comment configurer un pare-feu avec CSF sur Debian 9

  5. Comment configurer un pare-feu avec UFW sur Debian 9

Comment configurer le serveur et le client NTP sur Debian 10

Comment installer et configurer le serveur Web Apache avec l'hôte virtuel sur Debian 10

Comment configurer LAMP avec Debian 11

Comment configurer la liaison avec Debian 11

Comment configurer le serveur Samba avec Debian 11

Comment installer Nginx avec PHP-FPM sur Debian 11