GNU/Linux >> Tutoriels Linux >  >> Debian

Comment configurer un serveur SFTP sur le serveur Debian 11

Le protocole de transfert de fichiers est un protocole de communication standard utilisé pour le transfert de fichiers informatiques d'un serveur à un client sur un réseau informatique.

FTP n'est pas populaire aujourd'hui car il manque de sécurité. Lorsqu'un fichier est envoyé à l'aide de ce protocole, les données, le nom d'utilisateur et le mot de passe sont tous partagés en texte brut, ce qui signifie qu'un pirate peut accéder à ces informations avec peu ou pas d'effort. Pour que les données soient sécurisées, vous devez utiliser une version mise à jour de FTP comme SFTP.

Le protocole de transfert de fichiers sécurisé SFTP est un protocole de transfert de fichiers qui fournit un accès sécurisé à un ordinateur distant pour fournir des communications sécurisées. Il exploite SSH - Secure Socket Shell et est souvent appelé "Secure Shell File Transfer Protocol".

Contenu associé

  • Télécharger des fichiers à partir du serveur SFTP à l'aide d'un script python
  • Répertorier, charger et télécharger des fichiers depuis un serveur SFTP à l'aide de golang
  • Comment configurer un serveur SFTP sur le serveur OpenSUSE Leap 15.3
  • Comment installer et configurer le serveur sftp dans Ubuntu 20.04
  • Comment configurer un serveur SFTP sur le serveur CentOS 8/RHEL 8

Prérequis

Pour suivre ce guide, assurez-vous d'avoir les éléments suivants :

  1. Un serveur Debian 11
  2. Accès root au serveur ou à un utilisateur disposant d'un accès root
  3. Accès Internet depuis le serveur

Table des matières

  1. S'assurer que le serveur est à jour
  2. S'assurer que le service SSH est installé
  3. Créer des utilisateurs et des groupes et ajouter les répertoires nécessaires
  4. Configuration du service ssh
  5. Vérifier que la configuration fonctionne comme prévu

1. S'assurer que le serveur est à jour

Avant de continuer, assurez-vous que votre système est à jour. Utilisez cette commande pour actualiser les packages système et les mettre à jour.

sudo apt update
sudo apt upgrade -y

2. S'assurer que le service SSH est installé

Vérifiez que le ssh est installé :

$ sudo apt install -y openssh-server
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
openssh-server is already the newest version (1:8.4p1-5).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Maintenant qu'il est installé, démarrez le service

sudo systemctl start sshd

Confirmer son statut

$ sudo systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-03 10:18:03 UTC; 2 days ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 665 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 682 (sshd)
      Tasks: 1 (limit: 4626)
     Memory: 6.2M
        CPU: 9.132s
     CGroup: /system.slice/ssh.service
             └─682 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

Dec 05 09:20:46 ip-10-2-40-122 sshd[14717]: Received disconnect from 221.181.185.94 port 47597:11:  [preauth]
Dec 05 09:20:46 ip-10-2-40-122 sshd[14717]: Disconnected from authenticating user root 221.181.185.94 port 47597 [preauth]
Dec 05 10:34:30 ip-10-2-40-122 sshd[14797]: Received disconnect from 222.186.30.76 port 23207:11:  [preauth]
Dec 05 10:34:30 ip-10-2-40-122 sshd[14797]: Disconnected from authenticating user root 222.186.30.76 port 23207 [preauth]
Dec 05 10:34:41 ip-10-2-40-122 sshd[14799]: Received disconnect from 221.181.185.151 port 18104:11:  [preauth]
Dec 05 10:34:41 ip-10-2-40-122 sshd[14799]: Disconnected from authenticating user root 221.181.185.151 port 18104 [preauth]
Dec 05 11:11:54 ip-10-2-40-122 sshd[14830]: Received disconnect from 221.131.165.65 port 19729:11:  [preauth]
Dec 05 11:11:54 ip-10-2-40-122 sshd[14830]: Disconnected from authenticating user root 221.131.165.65 port 19729 [preauth]
Dec 05 11:19:03 ip-10-2-40-122 sshd[14840]: Accepted publickey for admin from 105.231.148.146 port 60649 ssh2: RSA SHA256:nDQ1FMciYtGpPYjdOwbUTVg7kQxEFtAjoSdWulRilIA
Dec 05 11:19:03 ip-10-2-40-122 sshd[14840]: pam_unix(sshd:session): session opened for user admin(uid=1000) by (uid=0)

3. Créer des utilisateurs et des groupes et ajouter les répertoires nécessaires

Ensuite, nous nous assurerons que les utilisateurs nécessaires sont présents dans le système. Dans mon cas, j'aimerais que les utilisateurs sftp soient chez /srv/sftp

Créons la maison /srv/sftp avec cette commande :

sudo mkdir /srv/sftp

Alors créons un groupe parapluie pour SFTP uniquement

sudo groupadd sftpusers

Créez ensuite un utilisateur sftp uniquement appelé citizix :

sudo useradd -G sftpusers -d /srv/sftp/citizix -s /sbin/nologin citizix

Les options ci-dessus effectuent les actions suivantes :

  • -G sftpusers  :Créer un utilisateur, ajouter à sftpusers groupe
  • -d /srv/sftp/citizix  :Définissez le répertoire personnel sur /srv/sftp/citizix
  • -s /sbin/nologin :Nous ne voulons pas que l'utilisateur se connecte, donc pas de shell de connexion ssh
  • Enfin, le nom d'utilisateur est citizix

Ajoutez ensuite un mot de passe à l'utilisateur créé à l'aide de cette commande :

$ sudo passwd citizix
New password:
Retype new password:
passwd: password updated successfully

3. Configuration du service ssh

Maintenant que nous avons installé le logiciel nécessaire et créé les utilisateurs et les groupes, configurons ssh.

Assurez-vous que l'authentification par mot de passe est activée pour ssh. Modifiez le fichier de configuration ici /etc/ssh/sshd_config :

sudo vim /etc/ssh/sshd_config

Assurez-vous ensuite que cette ligne n'est pas commentée :

PasswordAuthentication yes

Ensuite, nous devons ajouter des règles pour les utilisateurs dans sftpusers groupe à considérer comme sftp. Modifiez le fichier de configuration :

sudo vim /etc/ssh/sshd_config

Ajoutez ce contenu en bas du fichier :

Match Group sftpusers  
    X11Forwarding no  
    AllowTcpForwarding no  
    ChrootDirectory /srv/sftp
    ForceCommand internal-sftp

Redémarrez ensuite sshd pour recharger la configuration :

sudo systemctl restart sshd

Vérifiez que sshd fonctionne comme prévu :

$ sudo systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-12-05 11:22:02 UTC; 12s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 15292 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 15293 (sshd)
      Tasks: 1 (limit: 4626)
     Memory: 1.0M
        CPU: 159ms
     CGroup: /system.slice/ssh.service
             └─15293 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

Dec 05 11:22:02 ip-10-2-40-122 systemd[1]: Starting OpenBSD Secure Shell server...
Dec 05 11:22:02 ip-10-2-40-122 sshd[15293]: Server listening on 0.0.0.0 port 22.
Dec 05 11:22:02 ip-10-2-40-122 sshd[15293]: Server listening on :: port 22.
Dec 05 11:22:02 ip-10-2-40-122 systemd[1]: Started OpenBSD Secure Shell server.

4. Vérifier que la configuration fonctionne comme prévu

Après avoir réussi à créer l'utilisateur et à ajouter des configurations sftp, testons la configuration à l'aide de la commande :

❯ sftp [email protected]
[email protected]'s password:
Connected to 18.236.122.10.
sftp>

Nous avons maintenant un serveur sftp opérationnel avec un utilisateur configuré !

Les utilisateurs pourront se connecter au serveur et accéder aux fichiers et répertoires situés dans leur répertoire personnel. Si vous souhaitez donner à l'utilisateur d'autres répertoires en dehors de son propre répertoire, assurez-vous simplement que l'utilisateur dispose de suffisamment de droits d'accès. Ces répertoires et fichiers doivent se trouver dans le répertoire sftp – /srv/sftp .

Exemple :si je veux que l'utilisateur accède au répertoire /srv/sftp/paymentfiles , procédez comme suit :

Créer le répertoire

sudo mkdir /srv/sftp/paymentfiles

Attribuez ensuite l'utilisateur (citizix ) accéder en leur faisant posséder le répertoire :

sudo chown citizix:sftpusers /srv/sftp/paymentfiles

C'est ça. Les utilisateurs devraient maintenant y avoir accès.

Conclusion

Nous avons réussi à configurer un serveur sftp dans une Debian 11 dans ce guide.


Debian
  1. Comment configurer un serveur Samba sur Debian 10 Buster

  2. Définir une IP Statique sur Debian 11 - Comment faire ?

  3. Comment configurer un serveur SFTP sur Arch Linux

  4. Comment configurer un serveur SFTP sur le serveur OpenSUSE Leap 15.3

  5. Comment configurer un serveur OpenVPN sur Debian 10

Comment configurer un serveur de messagerie avec Modoboa sur Debian 10

Comment définir une adresse IP statique sur Debian 11

Comment configurer le serveur Rsyslog Debian 10/11

Comment configurer le serveur et le client NTP sur Debian 11

Comment configurer un serveur FTP sécurisé sur Debian 10 avec Pure-FTPd

Comment configurer le serveur de géocodage OSM Nominatim sur Debian 10