So einschränken

So einschränken

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 
Auflistung 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 8 
Erstellen /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 /test 
Legen 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 /test 
Konfigurieren 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 $ uname 
Testen 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 $ Geschichte 
SSH-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/tecmint 
Erstellen 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.