SFTP-Zugriff ohne Shell oder Chroot SFTP in Ubuntu

In letzter Zeit wurde viel über das FTP-Protokoll geredet, und alles deutet darauf hin, dass es veraltet ist und nicht mehr sicher ist. All dies wird noch verstärkt, da wir heute eine sicherere Alternative haben, das sogenannte SFTP (Secure File Transfer Protocol) . In diesem Artikel werde ich zeigen, wie Sie unseren SFTP-Server so konfigurieren, dass nur die Verwendung von SFTP und nicht die Verwendung von SSH-Befehlen (Chroot SFTP) zulässig ist .

Alle Tests wurden auf einem DigitalOcean VPS-Server mit dem Betriebssystem Ubuntu 14.04 x64 durchgeführt.

Einführung in den SFTP-Zugriff ohne Shell in Ubuntu

Das erste, was wir wissen müssen, ist, dass das SFTP-Protokoll sicherer ist, da die Authentifizierung über SSH erfolgt. Daher wird SFTP als Erweiterung des SSH-Protokolls betrachtet, das speziell für die Übertragung und Verwaltung von Dateien entwickelt wurde .

Das Problem, das bei der Standardkonfiguration in Ubuntu auftritt, ist, dass ein Benutzer, der Zugriff über SFTP benötigt, auch Zugriff über SSH haben muss, um alle Arten von Befehlen ausführen zu können, die unseren Server gefährden können.

In diesem Artikel erfahren Sie, wie Sie einem Benutzer den Zugriff über SFTP ermöglichen, ohne jedoch den SSH-Zugriff zuzulassen. Außerdem werden wir den Benutzer in seinem Basisordner “einschließen”, damit er nicht frei auf die restlichen Dateien auf dem Server zugreifen kann, da dies seine Sicherheit gefährden könnte. Dies wird als Chroot-to-SFTP-Benutzer bezeichnet, dh Einschränken ihrer Berechtigungen, sodass sie nur auf Dateien / Ordner in ihrem Basisordner zugreifen können.

Konfigurieren Sie den SFTP-Server so, dass der SSH-Zugriff eingeschränkt wird (Zugriff auf das Terminal einschränken).

In diesem Abschnitt könnte ich verschiedene Konfigurationen entsprechend den organisatorischen Anforderungen der Benutzer zeigen. Ich werde eine sehr einfache Konfiguration zeigen, die es Ihnen ermöglicht, den Prozess zu verstehen, damit Sie ihn später an Ihre Bedürfnisse anpassen können.

See also  Option zum Installieren von Anwendungen aus unbekannten Quellen in MIUI

Zuerst erstellen wir einen Benutzer namens “sftptest”, auf den wir SFTP-Zugriff gewähren. Dazu führen wir den Befehl aus:
adduser sftptest

Dann entfernen wir die Berechtigungen für den Benutzer, um mit dem folgenden Befehl auf die Shell / das Terminal zuzugreifen:
chsh -s /bin/false sftptest

Jetzt kann der Benutzer nicht über SSH zugreifen oder Befehle im Terminal ausführen.

Der nächste Schritt besteht darin, eine Benutzergruppe mit dem Namen “sftpusers” zu erstellen, auf die wir Ihren Zugriff einschränken, sodass Sie nur SFTP verwenden können:
addgroup sftpusers

Jetzt fügen wir dieser Gruppe den Benutzer hinzu, den wir zuvor erstellt haben:
gpasswd -a sftptest sftpusers

Dann modifizieren wir die Datei /etc/ssh/sshd_config , ich benutze den nano Editor des Terminals.

Als erstes muss nach der Zeile gesucht werden:
Subsystem sftp /usr/lib/openssh/sftp-server

Wir lassen es kommentiert (indem wir das # -Zeichen am Anfang der Zeile einfügen ) und fügen es direkt unter der folgenden Zeile ein, so dass das Ergebnis wie folgt aussieht:
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Am Ende der Datei (sehr wichtig, dass sie am Ende ist oder nicht funktioniert) fügen wir die folgenden Zeilen hinzu:

 Match Group sftpusers     ChrootDirectory /home     ForceCommand internal-sftp     AllowTCPForwarding no     X11Forwarding no 

Schließlich starten wir den SSH-Dienst mit dem Befehl neu:
service ssh restart

Jetzt werden alle Benutzer, die über SFTP zugreifen, im Ordner /home gesperrt. Es ist sehr wichtig, dass dieser Ordner den Root-Benutzer besitzt, da er sonst nicht funktioniert. Mit anderen Worten, der Ordner, in dem wir den Chroot ausführen, muss den Root-Benutzer als Eigentümer haben. Der /home Ordner in Ubuntu besitzt standardmäßig den Root-Benutzer, daher müssen wir nichts ändern, aber Sie wissen, dass der Befehl zum Ändern des Besitzes in einen Ordner ungefähr so ??lautet:
chown root:root /carpeta/usuario/sftp/archivos

Wenn Sie mehrere Benutzer haben und möchten, dass diese nicht auf die Ordner der anderen Benutzer zugreifen können, müssen Sie die Berechtigungen ihres Basisordners mit dem folgenden Befehl ändern:
chmod 700 /home/usuario

In unserem Beispiel wäre der Befehl:
chmod 700 /home/sftptest

Sie sollten wissen, dass diese Verzeichnisstruktur / Räumlichkeiten den Zugriff anderer Benutzer auf den Basisordner eines Benutzers nicht zulässt, jedoch die Auflistung aller Benutzer mit SFTP-Zugriff zulässt. Wenn Sie eine restriktivere Konfiguration benötigen, müssen Sie möglicherweise die ChrootDirectory %h Match User usuario und ChrootDirectory %h in der Konfiguration der /etc/ssh/sshd_config vielleicht später) .

Lassen Sie zum Schluss den Hinweis, dass Sie für den Zugriff über SFTP FileZilla verwenden können, indem Sie das Feld Server sftp:// gefolgt von der IP- sftp://128.50.50.50 Ihres Servers sftp://128.50.50.50 , z. B. sftp://128.50.50.50 .

Ich hoffe, Sie fanden den Artikel nützlich und wenn Sie irgendwelche Zweifel haben, zögern Sie nicht, die Kommentare zu verwenden.

See also  Probleme beim Hochladen von Dateien zu WordPress

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *