So einschränken

- 1988
- 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, tty

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 8

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 /test

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/

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/

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/

/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 /test

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 $ uname

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 $ Geschichte

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/tecmint

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/

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/

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]

Versuchen Sie, SFTP wie folgt zu verwenden:
# SFTP [E -Mail geschützt]

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 »