So einschränken
- 1941
- 427
- Tom Jakobs
Es gibt mehrere Gründe, eine SSH -Benutzersitzung auf ein bestimmtes Verzeichnis zu beschränken, insbesondere auf Webservern, aber das offensichtliche ist die Systemsicherheit. Um SSH -Benutzer in einem bestimmten Verzeichnis zu sperren, können wir verwenden Chroot Mechanismus.
Wurzel ändern (Chroot) In Unix-ähnlichen Systemen wie Linux ist ein Mittel, um bestimmte Benutzervorgänge vom Rest des Linux-Systems zu trennen. ändert das scheinbare Root -Verzeichnis für den aktuell ausgeführten Benutzerprozess und seinen untergeordneten (übergeordneten) Prozess mit einem neuen Root -Verzeichnis namens a chrotedes Gefängnis.
In diesem Tutorial zeigen wir Ihnen, wie Sie den SSH -Benutzerzugriff auf ein bestimmtes Verzeichnis unter Linux einschränken können. Beachten Sie, dass wir alle Befehle als Root ausführen. Verwenden Sie den Sudo -Befehl, wenn Sie als normaler Benutzer auf dem Server angemeldet sind.
Inhaltsverzeichnis
1- Schritt 1: Erstellen Sie das SSH -Chroot -Gefängnis
- Schritt 2: Setup Interactive Shell für das SSH -Chroot -Gefängnis einrichten
- Schritt 3: SSH -Benutzer erstellen und konfigurieren
- Schritt 4: Konfigurieren Sie SSH, um das Chroot -Gefängnis zu verwenden
- Schritt 5: Testen von SSH mit Chroot -Gefängnis
- Schritt 6. Erstellen Sie das Heimverzeichnis des SSH -Benutzers und fügen Sie Linux -Befehle hinzu
- Schritt 7. Testen von SFTP mit Chroot -Gefängnis
Schritt 1: Erstellen Sie das SSH -Chroot -Gefängnis
1. Erstellen Sie zunächst das Chroot -Gefängnis mit dem folgenden MKDIR -Befehl:
# Mkdir -p /Home /Test
2. Identifizieren Sie als nächstes die erforderlichen Dateien gemäß dem sshd_config Mann Seite, die Chrootdirectory
Die Option gibt den Pfadnamen des Verzeichnisses zu Chroot nach der Authentifizierung an. Das Verzeichnis muss die erforderlichen Dateien und Verzeichnisse enthalten, um die Sitzung eines Benutzers zu unterstützen.
Für eine interaktive Sitzung erfordert dies üblicherweise mindestens eine Hülle Sch
, und grundlegend /dev
Knoten wie Null, Zero, Stdin, Stdout, Stderr und Tty -Geräte:
# ls -l /dev /null, null, stdin, stdout, stderr, random, ttyAuflistung erforderliche Dateien
3. Erstellen Sie nun die /dev
Dateien wie folgt mit der Mknod -Befehl. In dem folgenden Befehl die -M
Flag wird verwendet, um die Bits Dateiberechtigungen anzugeben, C
bedeutet eine Zeichendatei und die beiden Zahlen sind wichtige und kleinere Zahlen, auf die die Dateien verweisen.
# MKDIR -P/HOME/TEST/DEV/ # CD/HOME/TEST/DEV/ # MKNOD -M 666 NULL C 1 3 # MKNOD -M 666 TTY C 5 0 # MKNOD -M 666 Zero C 1 5 # MKNOD -MKNOD - M 666 zufällig C 1 8Erstellen /Entwickler und erforderliche Dateien
4. Legen Sie anschließend die entsprechende Erlaubnis im Chroot -Gefängnis ein. Beachten Wurzel Benutzer und von keinem normalen Benutzer oder einer Gruppe beschreibbar:
# Chown Root: Root /Home /Test # Chmod 0755 /Home /Test # ls -ld /home /testLegen Sie die Berechtigungen auf Verzeichnis fest
Schritt 2: Setup Interactive Shell für das SSH -Chroot -Gefängnis einrichten
5. Erstellen Sie zunächst die Behälter
Verzeichnis und dann das kopieren /Bin/Bash
Dateien in die Behälter
Verzeichnis unter Verwendung des CP -Befehls wie folgt:
# Mkdir -p/home/test/bin # cp -v/bin/bash/home/test/bin/Kopieren Sie Dateien in das Bin -Verzeichnis
6. Identifizieren Sie nun die für die gemeinsam genutzte Bash libs
, wie unten und kopieren Sie sie in die lib
Verzeichnis:
# ldd/bin/bash # mkdir -p/home/test/lib64 # cp -v/lib64/libtinfo.So.5, libdl.So.2, libc.So.6, LD-Linux-X86-64.So.2/home/test/lib64/Kopieren Sie freigegebene Bibliotheksdateien
Schritt 3: SSH -Benutzer erstellen und konfigurieren
7. Erstellen Sie nun den SSH -Benutzer mit dem Befehl userAdd und legen Sie ein sicheres Kennwort für den Benutzer fest:
# UserAdd Tecmint # Passwd Tecmint
8. Erstellen Sie das CHROOT -Verzeichnis General Configurations Directory, /home/test/etc
und kopieren Sie die aktualisierten Kontodateien (/etc/passwd Und /etc/Gruppe) in dieses Verzeichnis wie folgt:
# Mkdir/home/test/etc # cp -vf/etc/Passwd, Gruppe/home/test/etc/Kopiedateien kopieren Notiz: Jedes Mal, wenn Sie dem System mehr SSH -Benutzer hinzufügen, müssen Sie die aktualisierten Kontodateien in die kopieren
/home/test/etc
Verzeichnis. Schritt 4: Konfigurieren Sie SSH, um das Chroot -Gefängnis zu verwenden
9. Öffnen Sie nun die sshd_config
Datei.
# vi/etc/ssh/sshd_config
und fügen Sie die folgenden Zeilen in der Datei hinzu/ändern Sie/ändern Sie sie.
#Benutzername definieren, um das Chroot -Gefängnis auf anzuwenden Passen Sie den Benutzer Tecmint an #Pezifify Chroot Gefängnis Chrootdirectory /home /testKonfigurieren Sie das SSH -Chroot -Gefängnis
Speichern Sie die Datei und beenden und starten Sie die SSHD -Dienste neu:
# SystemCTL Neustart SSHD oder # Service SSHD Neustart
Schritt 5: Testen von SSH mit Chroot -Gefängnis
10. Testen Sie zu diesem Zeitpunkt, wenn das Chroot -Gefängnis -Setup wie erwartet funktioniert:
# SSH [E -Mail geschützt] -Bash-4.1 $ ls -bash -4.1 $ Datum -bash -4.1 $ unameTesten des SSH -Benutzer -Chroot -Gefängnisses
Aus dem obigen Screenshot können wir sehen, dass der SSH -Benutzer im chrotedierten Gefängnis gesperrt ist und keine externen Befehle ausführen kann (LS, Datum, Uname usw.).
Der Benutzer kann nur Bash und seine integrierten Befehle wie (PWD, History, Echo usw.) ausführen, wie unten gesehen:
# SSH [E -Mail geschützt] -Bash-4.1 $ pwd -bash -4.1 $ Echo "Tecmint -schnellste wachsende Linux -Site" -Bash -4.1 $ GeschichteSSH-integrierte Befehle
Schritt 6. Erstellen Sie das Heimverzeichnis des SSH -Benutzers und fügen Sie Linux -Befehle hinzu
11. Aus dem vorherigen Schritt können wir feststellen, dass der Benutzer im Root -Verzeichnis gesperrt ist. Wir können ein Heimverzeichnis für den SSH -Benutzer erstellen (tun Sie dies für alle zukünftigen Benutzer):
# Mkdir -p/home/test/home/tecmint # chown -r tecmint: tecmint/home/test/home/tecmint # chmod -r 0700/home/test/home/tecmintErstellen Sie das SSH -Benutzer -Home -Verzeichnis
12. Installieren Sie als Nächstes einige Benutzerbefehle wie LS, Datum und MKDIR in der Behälter
Verzeichnis:
# cp -v/bin/ls/home/test/bin/ # cp -v/bin/date/home/test/bin/ # cp -v/bin/mkdir/home/test/bin/Befehle zum SSH -Benutzer hinzufügen
13. Überprüfen Sie als Nächstes die freigegebenen Bibliotheken auf die obigen Befehle und verschieben Sie sie in das Verzeichnis der Chroted -Gefängnisbibliotheken:
# ldd /bin /ls # cp -v /lib64 /libselinux.So.1, libcap.So.2, Libacl.So.1, libc.So.6, libpcre.So.1, libdl.So.2, LD-Linux-X86-64.So.2, Libattr.So.1, libpThread.So.0/home/test/lib64/Kopieren Sie freigegebene Bibliotheken
Schritt 7. Testen von SFTP mit Chroot -Gefängnis
14. Führen Sie einen endgültigen Test mit SFTP durch; Überprüfen Sie, ob die Befehle, die Sie gerade installiert haben, funktionieren.
Fügen Sie die folgende Zeile in die hinzu /etc/ssh/sshd_config
Datei:
#Enable SFTP zu Chroted Jail ForceCommand Internal-SFTP
Speichern Sie die Datei und beenden Sie. Starten Sie dann die SSHD -Dienste neu:
# SystemCTL Neustart SSHD oder # Service SSHD Neustart
15. Testen Sie nun mit SSH, und Sie erhalten den folgenden Fehler:
# SSH [E -Mail geschützt]Testen Sie das SSH -Chroot -Gefängnis
Versuchen Sie, SFTP wie folgt zu verwenden:
# SFTP [E -Mail geschützt]Testen von SFTP SSH -Benutzer
Sie könnten auch mögen:
- So beschränken Sie SFTP -Benutzer mithilfe von Chroot -Gefängnis auf Home -Verzeichnisse
- Grundlegende SSH -Befehlsnutzung und -konfiguration unter Linux
- 5 Best Practices, um SSH-Brute-Force-Anmeldeangriffe unter Linux zu verhindern
- 5 Best OpenSSH Server Beste Sicherheitspraktiken
Das war es fürs Erste! In diesem Artikel haben wir Ihnen gezeigt, wie Sie einen SSH -Benutzer in einem bestimmten Verzeichnis (chrotedes Gefängnis) in Linux einschränken können. Verwenden Sie den Kommentarbereich unten, um uns Ihre Gedanken zu diesem Leitfaden anzubieten.
- « 4 Nützliche Befehle zum Löschen von Linux -Terminalbildschirm
- 6 wichtige Leistungsmetriken zur Überwachung auf Linux -Servern - Teil 1 »