GNU/Linux >> LINUX-Kenntnisse >  >> Arch Linux

So richten Sie einen SFTP-Server unter Arch Linux ein

Das File Transfer Protocol ist ein Standardkommunikationsprotokoll, das für die Übertragung von Computerdateien von einem Server zu einem Client in einem Computernetzwerk verwendet wird.

FTP ist heute nicht beliebt, weil es an Sicherheit mangelt. Wenn eine Datei mit diesem Protokoll gesendet wird, werden die Daten, der Benutzername und das Passwort im Klartext geteilt, was bedeutet, dass ein Hacker mit wenig bis gar keinem Aufwand auf diese Informationen zugreifen kann. Damit die Daten sicher sind, müssen Sie eine aktualisierte FTP-Version wie SFTP verwenden.

SFTP Secure File Transfer Protocol ist ein Dateiübertragungsprotokoll, das sicheren Zugriff auf einen Remote-Computer bietet, um sichere Kommunikation zu ermöglichen. Es nutzt SSH – Secure Socket Shell und wird häufig auch als „Secure Shell File Transfer Protocol“ bezeichnet.

Verwandte Inhalte

  • Arbeiten mit dem SFTP-Client unter Linux – 10 sftp-Befehle
  • So richten Sie einen SFTP-Server auf Debian 11 Server ein
  • Dateien vom SFTP-Server mit einem Python-Skript herunterladen
  • Auflisten, Hochladen und Herunterladen von Dateien von einem SFTP-Server mit Golang
  • So richten Sie einen SFTP-Server auf OpenSUSE Leap 15.3 Server ein
  • So installieren und konfigurieren Sie den sftp-Server in Ubuntu 20.04
  • So richten Sie einen SFTP-Server auf CentOS 8 /RHEL 8 Server ein

Voraussetzungen

Um dieser Anleitung zu folgen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  1. Arch-Linux-Maschine
  2. Root-Zugriff auf den Server oder ein Benutzer mit Root-Zugriff
  3. Internetzugang vom Server

Inhaltsverzeichnis

  1. Sicherstellen, dass der Server auf dem neuesten Stand ist
  2. Sicherstellen, dass der SSH-Dienst installiert ist
  3. Erstellen von Benutzern und Gruppen und Hinzufügen der erforderlichen Verzeichnisse
  4. SSH-Dienst konfigurieren
  5. Überprüfen, ob die Einrichtung wie erwartet funktioniert

1. Sicherstellen, dass der Server auf dem neuesten Stand ist

Bevor Sie fortfahren, stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist. Verwenden Sie diesen Befehl, um die Systempakete zu aktualisieren und zu aktualisieren.

sudo pacman -Syyu

2. Sicherstellen, dass der SSH-Dienst installiert ist

Stellen Sie sicher, dass ssh installiert ist:

$ 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

Wenn ssh nicht installiert ist, installieren Sie es mit diesem Befehl:

sudo pacman -S openssh

Nachdem es installiert ist, starten Sie den Dienst

sudo systemctl start sshd

Bestätigen Sie seinen Status

$ 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. Erstellen von Benutzern und Gruppen und Hinzufügen der erforderlichen Verzeichnisse

Als nächstes werden wir sicherstellen, dass die erforderlichen Benutzer im System vorhanden sind. In meinem Fall möchte ich die sftp-Benutzer zu Hause als /srv/sftp haben

Lassen Sie uns das Zuhause /srv/sftp erstellen mit diesem Befehl:

sudo mkdir /srv/sftp

Dann lassen Sie uns eine Dachgruppe nur für SFTP erstellen

sudo groupadd sftpusers

Erstellen Sie dann einen reinen sftp-Benutzer namens citizix:

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

Die obigen Optionen bewirken Folgendes:

  • -G sftpusers :Benutzer erstellen, an sftpusers anhängen Gruppe
  • -d /srv/sftp/citizix :Legen Sie das Home-Verzeichnis als /srv/sftp/citizix fest
  • -s /sbin/nologin :Wir wollen nicht, dass sich der Benutzer anmeldet, also keine SSH-Anmelde-Shell
  • Zu guter Letzt der Nutzername als citizix

Fügen Sie dann mit diesem Befehl ein Passwort zum erstellten Benutzer hinzu:

$ sudo passwd citizix
Changing password for user citizix.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

3. SSH-Dienst konfigurieren

Nachdem wir nun die notwendige Software installiert und die Benutzer und Gruppen erstellt haben, lassen Sie uns ssh konfigurieren.

Stellen Sie sicher, dass die Kennwortauthentifizierung für ssh aktiviert ist. Bearbeiten Sie die Konfigurationsdatei hier /etc/ssh/sshd_config :

sudo vim /etc/ssh/sshd_config

Stellen Sie dann sicher, dass diese Zeile nicht kommentiert ist:

PasswordAuthentication yes

Als Nächstes müssen wir Regeln für die Benutzer in den sftpusers hinzufügen Gruppe als sftp betrachtet werden. Bearbeiten Sie die Konfigurationsdatei:

sudo vim /etc/ssh/sshd_config

Fügen Sie diesen Inhalt am Ende der Datei hinzu:

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

Starten Sie dann sshd neu, um die Konfiguration neu zu laden:

sudo systemctl restart sshd

Prüfen Sie, ob sshd läuft wie erwartet:

$ 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. Überprüfen, ob die Einrichtung wie erwartet funktioniert

Nachdem Sie den Benutzer erfolgreich erstellt und sftp-Konfigurationen hinzugefügt haben, testen Sie die Einrichtung mit dem Befehl:

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

Jetzt haben wir den sftp-Server eingerichtet und laufen mit einem konfigurierten Benutzer!

Die Benutzer können sich beim Server anmelden und auf Dateien und Verzeichnisse zugreifen, die sich in ihrem Home-Verzeichnis befinden. Wenn Sie dem Benutzer andere Verzeichnisse außerhalb seines eigenen Verzeichnisses zuweisen möchten, stellen Sie einfach sicher, dass der Benutzer über ausreichende Zugriffsrechte verfügt. Diese Verzeichnisse und Dateien müssen sich im sftp-Verzeichnis befinden – /srv/sftp .

Beispiel:Wenn ich möchte, dass der Benutzer auf das Verzeichnis /srv/sftp/paymentfiles zugreift , gehen Sie wie folgt vor:

Erstellen Sie das Verzeichnis

sudo mkdir /srv/sftp/paymentfiles

Weisen Sie dann den Benutzer (citizix ) zugreifen, indem Sie sie zum Eigentümer des Verzeichnisses machen:

sudo chown citizix:sftpusers /srv/sftp/paymentfiles

Das ist es. Benutzer sollten jetzt Zugriff haben.

Schlussfolgerung

In diesem Handbuch haben wir es geschafft, einen sftp-Server in einem Archlinux-Server einzurichten.


Arch Linux
  1. So richten Sie Linux-Chroot-Jails ein

  2. So richten Sie einen SFTP-Server auf Rocky Linux/CentOS 8 Server ein

  3. So richten Sie einen SFTP-Server auf Debian 11 Server ein

  4. So richten Sie einen SFTP-Server auf OpenSUSE Leap 15.3 Server ein

  5. So richten Sie einen Wekan Kanban-Server unter Linux ein

So verbinden Sie das iPhone mit Arch Linux

So installieren Sie Skype unter Arch Linux

So installieren Sie Nginx auf einem Arch Linux Cloud Server

So installieren Sie Apache unter Arch Linux

So richten Sie einen Rsync-Daemon auf Ihrem Linux-Server ein

So richten Sie eine Firewall auf Ihrem Linux-Server ein