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

So erstellen Sie einen Nur-SFTP-Benutzer in Debian 11

SFTP (SSH File Transfer Protocol) ist ein sicheres Dateiprotokoll, das für den Zugriff, die Verwaltung und die Übertragung von Dateien über eine verschlüsselte SSH-Transportsitzung verwendet wird. Security first ist eine Faustregel für die Systemadministratoren. In einigen Fällen müssen wir entfernten Benutzern den Zugriff auf das Dateisystem auf unserem System erlauben, aber Sie möchten ihnen nicht erlauben, eine Shell zu erhalten. Dadurch erhalten Sie einen sicheren Kanal, um eingeschränkten Zugriff auf bestimmte Dateien und Verzeichnisse zu gewähren.

Dieses Tutorial hilft Ihnen beim Einrichten des reinen SFTP-Zugriffs (ohne Shell-Zugriff) auf dem Debian 11-System. Es wird eine Chroot-Umgebung auf Ihrem System erstellt, um den SFTP-Benutzer nur auf ein bestimmtes Verzeichnis zu beschränken. Außerdem wird dem Benutzer nur SFTP-Zugriff ohne SSH-Zugriff gewährt.

Voraussetzungen

  • Ein laufendes Debian 11 Bullseye Linux-System
  • Sie müssen über ein sudo-privilegiertes Konto mit Shell-Zugriff verfügen

Schritt 1 – Erstellen Sie einen neuen Benutzer

Erstellen Sie zunächst einen neuen Benutzer, um sich mit dem sftp-Server zu verbinden. Der folgende Befehl erstellt ein neues Konto namens sftpuser ohne Shell-Zugriff. 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, das als Chroot für sftp konfiguriert werden soll. Für dieses Beispiel erstelle ich ein /var/sftp Verzeichnis. Das Verzeichnis muss Root-Eigentümer sein, um es als Chroot-Verzeichnis zu konfigurieren. Also erstellen wir ein Unterverzeichnis unter /var/sftp mit Schreibzugriff auf das sftp-Konto.

Erstellen Sie die Verzeichnisstruktur mit dem folgenden Befehl:

sudo mkdir -p /var/sftp/files 

Als nächstes müssen wir die richtige Berechtigung für Verzeichnisse festlegen, um sie als Chroot-Zugriff mit Schreibzugriff für den Benutzer zu konfigurieren. Hier muss /var/sftp den Root-Besitz und die Gruppe mit der entsprechenden Berechtigung haben. Geben Sie zum Festlegen dieser Berechtigung Folgendes ein:

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

Ändern Sie nun die Berechtigung für die "files" Verzeichnis, um Schreibzugriff auf sftpuser zu ermöglichen. Geben Sie zum Festlegen dieser Berechtigungen Folgendes ein:

sudo chown sftpuser:sftpuser /var/sftp/files 

Sobald der sftpuser eine Verbindung zum Server herstellt, erhält er /var/sftp als Stammverzeichnis. Er kann nicht auf das Dateisystem außerhalb zugreifen. Außerdem kann der Benutzer Dateien nur im Verzeichnis „Dateien“ lesen/schreiben.

Schritt 3 – sshd nur für SFTP konfigurieren

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

sudo nano /etc/ssh/sshd_config 

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

Match User sftpuser
	ForceCommand internal-sftp
	PasswordAuthentication yes
	ChrootDirectory /var/sftp
	PermitTunnel no
	AllowAgentForwarding no
	AllowTcpForwarding no
	X11Forwarding no

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

sudo systemctl restart ssh 

Alles erledigt, die reine SFTP-Nutzung wurde erfolgreich auf Ihrem Debian-System erstellt. Versuchen Sie nun, sich mit den Anmeldeinformationen des neuen Benutzers beim Remote-System anzumelden, und überprüfen Sie, ob alles ordnungsgemäß funktioniert.

Schritt 4 – Mit SFTP verbinden

Man kann über eine Befehlszeile oder grafische Anwendungen wie Filezilla oder WinSCP eine Verbindung zu einem entfernten SFTP-Server 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 entfernten sftp-Instanzen herzustellen.

sftp [email protected] 

[email protected]'s password:
sftp>

GUI-Schnittstelle oder Windows-Benutzer können grafische SFTP-Clients verwenden. Verwenden Sie beispielsweise den Filezilla-Client, um eine Verbindung zum Remote-SFTP-Konto auf dem Remote-System herzustellen.

Kein Shell-Zugriff bestätigen:

Da dieses Konto nur für SFTP-Verbindungen konfiguriert ist. Wenn also ein Benutzer versucht, sich über SSH zu verbinden, wird die Verbindung sofort nach erfolgreicher Authentifizierung getrennt. Der Benutzer erhält die folgende Nachricht:

ssh [email protected] 

[email protected]'s password:
This service allows sftp connections only.
Connection to sftp.tecadmin.net closed.

Schlussfolgerung

In dieser Anleitung haben Sie gelernt, eine Chroot-Jail-Umgebung 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 wurde mit dem Debian 11 Bullseye-System erstellt und getestet, aber es funktioniert auch mit anderen Debian-Versionen.


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

  2. Centos – Wie erstelle ich einen Sftp-Benutzer in Centos?

  3. So erstellen und löschen Sie einen Benutzer unter Debian 9

  4. So erstellen Sie einen SFTP-Benutzer ohne Shell-Zugriff unter CentOS 8

  5. So beschränken Sie den su-Zugriff auf einen Benutzer nur durch PAM in Linux

So erstellen Sie einen inhaftierten ssh-Benutzer mit Jailkit unter Debian/Ubuntu

So fügen Sie einen Benutzer zu Sudoers unter Debian 10 hinzu

So installieren Sie Fathom unter Debian 11

So installieren Sie Git unter Debian 10

So erstellen Sie einen Sudo-Benutzer unter Ubuntu und Debian

So erstellen Sie einen Benutzer oder Kontakt