Android

So richten Sie das sftp-chroot-Gefängnis ein

So richten Sie Rohlinge schnell zum Drechseln her

So richten Sie Rohlinge schnell zum Drechseln her

Inhaltsverzeichnis:

Anonim

In diesem Tutorial wird erklärt, wie eine SFTP-Chroot-Jail-Umgebung eingerichtet wird, die Benutzer auf ihre Home-Verzeichnisse beschränkt. Die Benutzer haben nur SFTP-Zugriff, der SSH-Zugriff wird deaktiviert. Diese Anweisungen sollten für jede moderne Linux-Distribution funktionieren, einschließlich Ubuntu, CentOS, Debian und Fedora.

Erstellen einer SFTP-Gruppe

Anstatt den OpenSSH-Server für jeden Benutzer einzeln zu konfigurieren, erstellen wir eine neue Gruppe und fügen alle unsere chroot-Benutzer dieser Gruppe hinzu.

Führen Sie den folgenden Befehl groupadd , um die Benutzergruppe groupadd zu erstellen:

sudo groupadd sftponly Sie können die Gruppe wie gewünscht benennen.

Hinzufügen von Benutzern zur SFTP-Gruppe

Im nächsten Schritt fügen Sie die Benutzer hinzu, die Sie auf die Gruppe " sftponly beschränken sftponly .

Wenn dies ein neues Setup ist und der Benutzer nicht existiert, können Sie ein neues Benutzerkonto erstellen, indem Sie Folgendes eingeben:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • Mit der Option -g sftponly wird der Benutzer der Gruppe sftponly hinzugefügt. Mit der Option -s /bin/false die Anmeldeshell des Benutzers festgelegt. Wenn Sie die Anmeldeshell auf /bin/false der Benutzer nicht über SSH am Server anmelden. Die Optionen -m -d /home/username weisen useradd an, das Benutzerverzeichnis zu erstellen.

Richten Sie ein sicheres Kennwort für den neu erstellten Benutzer ein:

sudo passwd username

Wenn der Benutzer, den Sie einschränken möchten, bereits vorhanden ist, fügen Sie ihn der Gruppe " sftponly " hinzu und ändern Sie die Shell des Benutzers:

sudo usermod -G sftponly -s /bin/false username2

Das Benutzer-Ausgangsverzeichnis muss im Besitz von root sein und über 755 Berechtigungen verfügen:

sudo chown root: /home/username sudo chmod 755 /home/username

Da die Home-Verzeichnisse des Benutzers dem Root-Benutzer gehören, können diese Benutzer keine Dateien und Verzeichnisse in ihren Home-Verzeichnissen erstellen. Wenn sich keine Verzeichnisse im Haus des Benutzers befinden, müssen Sie neue Verzeichnisse erstellen, auf die der Benutzer uneingeschränkt zugreifen kann. Beispielsweise können Sie die folgenden Verzeichnisse erstellen:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

Wenn eine Webanwendung das public_html des Benutzers als Dokumentstamm verwendet, können diese Änderungen zu Berechtigungsproblemen führen. Wenn Sie beispielsweise WordPress ausführen, müssen Sie einen PHP-Pool erstellen, der als Benutzer ausgeführt wird, dem die Dateien gehören, und den Webserver der Gruppe sftponly sftponly .

SSH konfigurieren

SFTP ist ein Subsystem von SSH und unterstützt alle SSH-Authentifizierungsmechanismen.

Öffnen Sie die SSH-Konfigurationsdatei /etc/ssh/sshd_config mit Ihrem Texteditor:

sudo nano /etc/ssh/sshd_config

Suchen Sie nach der Zeile, die mit Subsystem sftp beginnt, normalerweise am Ende der Datei. Wenn die Zeile mit einem Hash # beginnt, entfernen Sie das Hash # und ändern Sie es so, dass es wie folgt aussieht:

/ etc / ssh / sshd_config

Subsystem sftp internal-sftp

Gegen Ende der Datei wird der folgende Einstellungsblock angezeigt:

/ etc / ssh / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

Die ChrootDirectory Direktive gibt den Pfad zum chroot-Verzeichnis an. %h bedeutet das Ausgangsverzeichnis des Benutzers. Dieses Verzeichnis muss dem Root-Benutzer gehören und darf von keinem anderen Benutzer oder keiner anderen Gruppe beschreibbar sein.

Seien Sie besonders vorsichtig, wenn Sie die SSH-Konfigurationsdatei ändern. Die falsche Konfiguration kann dazu führen, dass der SSH-Dienst nicht gestartet werden kann.

Sobald Sie fertig sind, speichern Sie die Datei und starten Sie den SSH-Dienst neu, um die Änderungen zu übernehmen:

sudo systemctl restart ssh

In CentOS und Fedora heißt der ssh-Dienst sshd :

sudo systemctl restart sshd

Testen der Konfiguration

Nachdem Sie die SFTP-Chroot konfiguriert haben, können Sie versuchen, sich mit den Anmeldeinformationen des Chroot-Benutzers über SFTP am Remotecomputer anzumelden. In den meisten Fällen verwenden Sie einen Desktop-SFTP-Client wie FileZilla. In diesem Beispiel wird jedoch der Befehl sftp verwendet.

Öffnen Sie eine SFTP-Verbindung mit dem Befehl sftp, gefolgt vom Benutzernamen des Remoteservers und der Server-IP-Adresse oder dem Domänennamen:

sftp [email protected]

Sie werden aufgefordert, das Benutzerpasswort einzugeben. Sobald die Verbindung hergestellt ist, zeigt der Remote-Server eine Bestätigungsmeldung und die Eingabeaufforderung sftp> :

[email protected]'s password: sftp>

Führen Sie den Befehl pwd wie unten gezeigt aus. Wenn alles wie erwartet funktioniert, sollte der Befehl / .

sftp> pwd Remote working directory: /

Sie können die entfernten Dateien und Verzeichnisse auch mit dem Befehl ls auflisten und die zuvor erstellten Verzeichnisse anzeigen:

sftp> ls public_html uploads

Fazit

In diesem Lernprogramm haben Sie gelernt, wie Sie eine SFTP-Chroot-Jail-Umgebung auf Ihrem Linux-Server einrichten und den Benutzerzugriff auf das Basisverzeichnis einschränken.

Standardmäßig überwacht SSH Port 22. Durch Ändern des Standard-SSH-Ports wird Ihrem Server eine zusätzliche Sicherheitsebene hinzugefügt, indem das Risiko automatisierter Angriffe verringert wird. Möglicherweise möchten Sie auch eine SSH-Schlüssel-basierte Authentifizierung einrichten und eine Verbindung zum Server herstellen, ohne ein Kennwort einzugeben.

SSH SFTP-Sicherheit