GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So richten Sie einen SFTP-Server auf Debian 11 Server 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

  • 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. Ein Debian 11-Server
  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 apt update
sudo apt upgrade -y

2. Sicherstellen, dass der SSH-Dienst installiert ist

Stellen Sie sicher, dass ssh installiert ist:

$ 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.

Nachdem es installiert ist, starten Sie den Dienst

sudo systemctl start sshd

Bestätigen Sie seinen Status

$ 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. 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
New password:
Retype new password:
passwd: password 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
● 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. Ü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]'s password:
Connected to 18.236.122.10.
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 dieser Anleitung haben wir es geschafft, einen sftp-Server in einem Debian 11 einzurichten.


Debian
  1. So richten Sie einen Samba-Server unter Debian 10 Buster ein

  2. Festlegen einer statischen IP auf Debian 11 - Wie geht das?

  3. So richten Sie einen SFTP-Server unter Arch Linux ein

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

  5. So richten Sie einen OpenVPN-Server unter Debian 10 ein

So richten Sie einen Mailserver mit Modoboa unter Debian 10 ein

So legen Sie eine statische IP unter Debian 11 fest

So richten Sie Rsyslog Server Debian 10/11 ein

So richten Sie NTP-Server und -Client unter Debian 11 ein

So richten Sie einen sicheren FTP-Server unter Debian 10 mit Pure-FTPd ein

So richten Sie OSM Nominatim Geocoding Server unter Debian 10 ein