So erstellen Sie nur SFTP -Benutzer in Debian 11

So erstellen Sie nur SFTP -Benutzer in Debian 11

SFTP (SSH -Dateitransferprotokoll) ist ein sicheres Dateiprotokoll, das zum Zugriff auf, verwaltet und überträgt Dateien über eine verschlüsselte SSH -Transportsitzung. Sicherheit zuerst ist eine Daumenregel für die Systemadministratoren. In einigen Fällen müssen wir Remote -Benutzer erlauben, auf das Dateisystem in unserem System zuzugreifen, aber Sie möchten ihnen nicht erlauben, eine Shell zu erhalten. Auf diese Weise können Sie einen sicheren Kanal haben, um einen begrenzten Zugriff auf bestimmte Dateien und Verzeichnisse zu ermöglichen.

In diesem Tutorial können Sie SFTP -Zugriff (ohne Shell Access) auf dem Debian 11 -System einrichten. Es erstellt eine Chroot -Umgebung in Ihrem System, um den SFTP -Benutzer nur auf ein bestimmtes Verzeichnis zu beschränken. Außerdem ermöglicht SFTP nur Zugriff ohne SSH -Zugriff auf den Benutzer.

Voraussetzungen

  • Ein laufendes Debian 11 Bullseye Linux -System
  • Sie müssen sudo privilegiertes Konto bei Shell Access haben

Schritt 1 - Erstellen Sie einen neuen Benutzer

Erstellen Sie zunächst einen neuen Benutzer, der eine Verbindung zum SFTP -Server herstellt. Der folgende Befehl erstellt ein neues Konto mit dem Namen sftpuser ohne Shell -Zugang. Sie können einen beliebigen Namen Ihrer Wahl oder Anforderung verwenden.

sudo adduser -Shell /bin /false sftpuser  

Schritt 2 - Erstellen Sie ein Verzeichnis für den SFTP -Zugriff

Sie haben einen Benutzer für SFTP erstellt. Erstellen Sie nun ein Verzeichnis, um als Chroot für den SFTP zu konfigurieren. In diesem Beispiel werde ich a erstellen /var/sftp Verzeichnis. Das Verzeichnis muss Root -Eigentümer haben, um als Chroot -Verzeichnis konfiguriert zu werden. Wir erstellen also ein Unterverzeichnis unter /var /sftp mit Schreibzugriff auf SFTP -Konto.

Erstellen Sie die Verzeichnisstruktur mit dem folgenden Befehl:

sudo mkdir -p/var/sftp/Dateien  

Als Nächst. Hier /var /sftp muss die Wurzelbesitz und die Gruppe mit ordnungsgemäßer Erlaubnis haben. Um diese Erlaubnis festzulegen, geben Sie ein:

sudo chown root: root /var /sftp  sudo chmod 755 /var /sftp  

Ändern Sie nun die Erlaubnis für die "Dateien" Verzeichnis, mit dem der Schreibzugriff auf SFTPuser zugelassen werden kann. Um diese Berechtigungen festzulegen, geben Sie ein:

sudo chown sftpuser: sftpuser/var/sftp/Dateien  

Sobald der SFTPuser eine Verbindung zum Server herstellt, erhalten Sie /var /sftp als Stammverzeichnis. Er kann außerhalb dessen nicht auf das Dateisystem zugreifen. Außerdem kann der Benutzer nur Dateien unter dem Verzeichnis „Dateien“ lesen/schreiben.

Schritt 3 - Konfigurieren Sie nur SSHD für SFTP

Als nächstes müssen Sie den SSH -Server so konfigurieren, dass der „SFTPuser“ den Server nur ohne Shell -Zugriff mit SFTP verbinden kann. Um die erforderlichen Änderungen vorzunehmen, bearbeiten Sie die SSH -Konfigurationsdatei.

sudo nano/etc/ssh/sshd_config  

und fügen Sie die folgenden Einstellungen am Ende der Datei hinzu.

Übereinstimmen User SFTPUSER FORCECOMMAND INTERNEHENSFETPKWITALTP-Kennwortauthentifizierung Ja chrootdirectory /var /sftp Perintunnel Keine Zulassungsabwälzung NEIN AUFGABE 
Chroot -Konfiguration für den SFTP -Benutzer

Überprüfen Sie, ob alle Einstellungen korrekt sind. Speichern Sie dann die Änderungen und starten Sie den SSH -Dienst neu, um Änderungen anzuwenden.

sudo systemctl starten ssh neu  

Alles, was erledigt hat, wird nur SFTP -Nutzung in Ihrem Debian -System erfolgreich erstellt. Versuchen Sie nun, sich mit den Anmeldeinformationen des neuen Benutzers im Remote -System anzumelden, und überprüfen Sie, ob alles richtig funktioniert.

Schritt 4 - Verbindung zu SFTP herstellen

Man kann eine Verbindung zu einem Remote -SFTP -Server mit einer Befehlszeile oder grafischen Anwendungen wie Filezilla oder WinSCP herstellen. In diesem Tutorial zeige ich Ihnen beide Möglichkeiten, SFTP -Server zu verbinden.

Linux-Benutzer können das SFTP-Befehlszeilendienstprogramm verwenden, um eine Verbindung zu Remote-SFTP-Instanzen herzustellen.

SFTP [E -Mail geschützt]  [E -Mail geschützt] Passwort: SFTP> 

GUI -Schnittstelle oder Windows -Benutzer können grafische SFTP -Clients verwenden. Verwenden Sie beispielsweise den Dateizilla -Client, um das Remote -SFTP -Konto im Remote -System zu verbinden.

Überprüfen Sie keinen Shell -Zugriff:

Da dieses Konto nur für SFTP -Verbindung konfiguriert ist. Wenn also ein Benutzer versuchte, eine Verbindung über SSH herzustellen, wird sofort nach der erfolgreichen Authentifizierung getrennt. Der Benutzer wird unterhalb der Nachricht erhalten:

SSH [E -Mail geschützt]  [E -Mail Protected] Passwort: Dieser Dienst ermöglicht nur SFTP -Verbindungen. Verbindung zu SFTP.Tecadmin.Netz geschlossen. 

Abschluss

In dieser Anleitung haben Sie gelernt, die Chroot-Gefängnisumgebung für SFTP-Benutzer ohne Shell-Zugriff auf den Server zu erstellen. Die Chroot -Umgebung sichert das Dateisystem, indem sie verhindert, dass Benutzer auf Dateien außerhalb des definierten Verzeichnisses zugreifen. Dieses Tutorial wird mit Debian 11 Bullseye System erstellt und getestet, aber dies wird auf anderen Debian -Versionen funktionieren.