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 aufno
setzen .ChrootDirectory /sftp
stellt sicher, dass dem Benutzer kein Zugriff auf etwas anderes als/sftp
gewährt wird Verzeichnis.AllowAgentForwarding no
,AllowTcpForwarding no
, undX11Forwarding 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.