GNU/Linux >> Tutoriels Linux >  >> Arch Linux

Comment configurer un serveur SFTP sur Arch Linux

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é

  • Comment travailler avec le client SFTP sous Linux – 10 commandes sftp
  • Comment configurer un serveur SFTP sur le serveur Debian 11
  • 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. Machine Arch Linux
  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 pacman -Syyu

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

Vérifiez que le ssh est installé :

$ sudo pacman -Qi openssh
Name            : openssh
Version         : 8.6p1-1
Description     : Premier connectivity tool for remote login with the SSH protocol
Architecture    : x86_64
URL             : https://www.openssh.com/portable.html
Licenses        : custom:BSD
Groups          : None
Provides        : None
Depends On      : glibc  krb5  openssl  libedit  ldns  libxcrypt  libcrypt.so=2-64  zlib  pam
Optional Deps   : xorg-xauth: X11 forwarding
                  x11-ssh-askpass: input passphrase in X
                  libfido2: FIDO/U2F support
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 5.79 MiB
Packager        : Giancarlo Razzolini <[email protected]>
Build Date      : Mon 19 Apr 2021 11:32:46 AM UTC
Install Date    : Thu 03 Jun 2021 03:23:32 AM UTC
Install Reason  : Explicitly installed
Install Script  : Yes
Validated By    : Signature

Si ssh n'est pas installé, installez-le avec cette commande :

sudo pacman -S openssh

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

sudo systemctl start sshd

Confirmer son statut

$ sudo systemctl status sshd
● sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
     Active: active (running) since Fri 2021-12-03 10:19:02 UTC; 17min ago
   Main PID: 467 (sshd)
      Tasks: 1 (limit: 4606)
     Memory: 5.0M
     CGroup: /system.slice/sshd.service
             └─467 sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups

Dec 04 14:53:30 ip-10-2-40-103 sshd[13109]: Unable to negotiate with 141.98.10.246 port 34078: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:53:42 ip-10-2-40-103 sshd[13111]: Unable to negotiate with 141.98.10.246 port 38674: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:53:53 ip-10-2-40-103 sshd[13115]: Unable to negotiate with 141.98.10.246 port 43268: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:05 ip-10-2-40-103 sshd[13117]: Unable to negotiate with 141.98.10.246 port 47864: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:17 ip-10-2-40-103 sshd[13119]: Unable to negotiate with 141.98.10.246 port 52460: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:41 ip-10-2-40-103 sshd[13123]: Unable to negotiate with 141.98.10.246 port 33418: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:53 ip-10-2-40-103 sshd[13127]: Unable to negotiate with 141.98.10.246 port 38014: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:55:05 ip-10-2-40-103 sshd[13129]: Unable to negotiate with 141.98.10.246 port 42614: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 15:16:10 ip-10-2-40-103 sshd[13191]: Received disconnect from 61.177.173.21 port 60983:11:  [preauth]
Dec 04 15:16:10 ip-10-2-40-103 sshd[13191]: Disconnected from authenticating user root 61.177.173.21 port 60983 [preauth]

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
Changing password for user citizix.
New password:
Retype new password:
passwd: all authentication tokens 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
● sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2021-12-04 15:48:19 UTC; 18s ago
   Main PID: 14269 (sshd)
      Tasks: 1 (limit: 4606)
     Memory: 892.0K
     CGroup: /system.slice/sshd.service
             └─14269 sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups

Dec 04 15:48:19 ip-10-2-40-103 systemd[1]: Started OpenSSH Daemon.
Dec 04 15:48:19 ip-10-2-40-103 sshd[14269]: Server listening on 0.0.0.0 port 22.
Dec 04 15:48:19 ip-10-2-40-103 sshd[14269]: Server listening on :: port 22.

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]10.2.11.8's password:
Connected to 10.2.11.8.
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 un serveur Archlinux dans ce guide.


Arch Linux
  1. Comment configurer des jails chroot Linux

  2. Comment configurer un serveur SFTP sur Rocky Linux/CentOS 8 Server

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

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

  5. Comment configurer un serveur Wekan Kanban sous Linux

Comment connecter l'iPhone à Arch Linux

Comment installer Skype sur Arch Linux

Comment installer Nginx sur un serveur cloud Arch Linux

Comment installer Apache sur Arch Linux

Comment configurer un démon Rsync sur votre serveur Linux

Comment configurer un pare-feu sur votre serveur Linux