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

Richten Sie SFTP ein und verhindern Sie SSH unter Ubuntu 20.04

Richten Sie SFTP ein und verhindern Sie SSH unter Ubuntu 20.04. SFTP (Secure File Transfer Protocol), eine sichere Möglichkeit, Dateien über verschlüsselte SSH-Verbindungen auf Server zu übertragen. Auf allen Servern mit SSH ist SFTP standardmäßig aktiviert.

In dieser Anleitung erfahren Sie, wie Sie den SFTP-Zugriff auf ein Verzeichnis für einen bestimmten Benutzer einschränken und den SSH-Zugriff verhindern.

Dieses Setup wird auf einer virtuellen Maschine mit dem Betriebssystem Ubuntu 20.04 getestet. Dieses Tutorial sollte also auf allen Servern mit Ubuntu funktionieren.

Voraussetzungen

SSH-Zugriff auf den Server mit sudo-Berechtigungen.

Schritt 1:Neuen Benutzer erstellen

Erstellen Sie einen neuen Benutzer, der über SFTP-Zugriff verfügt, um bestimmte Aktionen für ein bestimmtes Verzeichnis auszuführen.

sudo adduser username

Sie werden aufgefordert, ein Passwort und andere optionale Details einzurichten, die Sie einrichten oder ignorieren können.

Wenn Sie die SSH-Schlüssel-basierte Anmeldung verwenden möchten, überprüfen Sie, wie Sie den SSH-Zugriff auf Ihrem Ubuntu einrichten.

Schritt 2:SFTP-Zugriff einrichten

Um den SFTP-Zugriff einzurichten, müssen Sie die richtigen Verzeichnisberechtigungen konfigurieren. Das übergeordnete Verzeichnis des neuen Verzeichnisses, das Sie erstellen möchten, sollte root und keinem anderen Benutzer gehören.

Wenn Sie beispielsweise ein Verzeichnis mit dem Namen /sftp/folder erstellen , die sftp Verzeichnis sollte root gehören und die folder Verzeichnis sollte dem jeweiligen Benutzer gehören wer darauf zugreift.

Verzeichnisse erstellen.

sudo mkdir -p /sftp/folder

Richtige Berechtigungen konfigurieren.

sudo chmod 755 /sftp
sudo chown root:root /sftp
sudo chmod -R 755 /sftp/folder
sudo chown username:username /sftp/folder

Schritt 3:SSH-Zugriff verhindern und SFTP-Zugriff einschränken

Jetzt können wir die SSH-Konfiguration ändern, um den SSH-Zugriff für den Benutzer zu verhindern und den Benutzer darauf zu beschränken, nur auf das bestimmte Verzeichnis zuzugreifen.

Bearbeiten Sie Ihre SSH-Konfigurationsdatei.

sudo nano /etc/ssh/sshd_config

Fügen Sie am Ende der Datei Folgendes hinzu.

Match User username
  ForceCommand internal-sftp
  PasswordAuthentication yes
  ChrootDirectory /sftp
  PermitTunnel no
  AllowAgentForwarding no
  AllowTcpForwarding no
  X11Forwarding no
  • Match User weist den SSH-Server an, die folgenden Befehle nur auf den angegebenen Benutzer anzuwenden.
  • ForceCommand internal-sftp zwingt den SSH-Server, den SFTP-Server bei der Anmeldung auszuführen und den SSH-Zugriff zu verhindern.
  • PasswordAuthentication yes ermöglicht die Kennwortauthentifizierung für diesen Benutzer. Wenn Sie die SSH-Schlüssel-basierte Anmeldung verwenden, können Sie die passwortbasierte Authentifizierung verhindern, indem Sie den Wert auf no setzen .
  • ChrootDirectory /sftp stellt sicher, dass dem Benutzer kein Zugriff auf etwas anderes als /sftp gewährt wird Verzeichnis.
  • AllowAgentForwarding no , AllowTcpForwarding no , und X11Forwarding no deaktiviert Portweiterleitung, Tunneling bzw. X11-Weiterleitung.

Drücken Sie CTRL + X gefolgt von Y und dann ENTER um die Datei zu speichern und zu beenden.

Jetzt sind die Konfigurationen vorhanden, die nur den SFTP-Zugriff erlauben und die SSH-Anmeldung für den Benutzer verhindern.

Starten Sie den SSH-Dienst neu, damit die Änderungen wirksam werden.

sudo systemctl restart sshd

Weitere Einzelheiten zum Konfigurieren des Zugriffs für mehrere Benutzernamen finden Sie in dieser Chroot-Einrichtungsanleitung.

Schritt 4:Überprüfen Sie die SFTP-Einrichtung

Versuchen Sie, sich mit Ihren SFTP-Details mit dem SSH-Befehl beim Server anzumelden. Ihnen wird der Zugriff auf SSH verweigert.

ssh [email protected]_ip

Sie erhalten eine Ausgabe ähnlich der untenstehenden.

Output
This service allows sftp connections only.
Connection to server_ip closed.

Überprüfen Sie jetzt mit dem sftp-Befehl.

sftp [email protected]_ip

Jetzt sollten Sie beim Server angemeldet sein und Zugriff auf das zuvor konfigurierte Verzeichnis haben.

Output
Connected to server_ip
sftp>

Verwenden Sie den ls Befehl zum Auflisten der Verzeichnisse sehen Sie das Verzeichnis mit dem Namen folder Sie haben Berechtigungen erstellt und konfiguriert.

sftp> ls
Output
folder

Schlussfolgerung

Jetzt haben Sie gelernt, wie Sie SFTP einrichten und den SSH-Zugriff für Benutzer über ein bestimmtes Verzeichnis verhindern.

Vielen Dank für Ihre Zeit. Wenn Sie auf ein Problem oder Feedback stoßen, hinterlassen Sie bitte unten einen Kommentar.


Linux
  1. So richten Sie den MySecureShell-SFTP-Server unter Ubuntu 18.04 ein

  2. So installieren und richten Sie einen sftp-Server in Ubuntu 20.04 ein

  3. Wie lässt man SFTP zu und verbietet SSH?

  4. Ssh – Beschränken eines Ssh/scp/sftp-Benutzers auf ein Verzeichnis?

  5. OpenVPN-Server unter Ubuntu 20.04 installieren und einrichten

So installieren und konfigurieren Sie RabbitMQ unter Ubuntu 16.04

So installieren und konfigurieren Sie Apache Spark unter Ubuntu 21.04

So richten Sie Google Drive unter Ubuntu 20.04 ein und verwenden es

So installieren und konfigurieren Sie Zsh in Ubuntu 20.04

Ändern Sie Ihren SSH-Port in Ubuntu und Debian

So installieren und konfigurieren Sie Sendmail unter Ubuntu