Gefängnis SSH -Benutzer zum Heimverzeichnis unter Linux

Gefängnis SSH -Benutzer zum Heimverzeichnis unter Linux

Wenn Sie einen SSH -Benutzer in sein Home -Verzeichnis einhalten.

Der inhaftierte Benutzer hat immer noch Zugriff auf sein Heimverzeichnis, kann aber den Rest des Systems nicht durchqueren. Dies hält alles andere im System privat und verhindert, dass alles von einem SSH -Benutzer manipuliert wird. Es ist ein ideales Setup für ein System, das verschiedene Benutzer hat und die Dateien jedes Benutzers müssen privat und isoliert von den anderen bleiben.

In diesem Handbuch zeigen wir Ihnen die Schritt -für -Schritt -Anweisungen zum Einhalten eines SSH -Benutzer.

In diesem Tutorial lernen Sie:

  • Wie man SSH -Benutzer in das Heimverzeichnis inhaftiert
Gefängnis SSH -Benutzer zum Heimverzeichnis unter Linux Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Jede Linux -Distribution
Software OpenSsh Server
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Gefängnis Benutzer zum Heimverzeichnis mit Chroot



Öffnen Sie ein Terminal und machen Sie sich bereit, viele Befehle einzugeben, da der Vorgang zum Einrichten eines sicheren Chroot ziemlich gezeichnet ist. Sie möchten auf das Root -Benutzerkonto heben oder sudo für jeden Befehl verwenden.

  1. Erstellen Sie zunächst das Chroot -Verzeichnis, das die verschiedenen Knoten, Libs und Shell für unsere inhaftierten Benutzer (en) enthält.
    # mkdir /var /chroot 
  2. Als nächstes kopieren wir einige wichtige /dev Knoten zum Chroot -Verzeichnis, mit dem Benutzer die grundlegende Verwendung des Terminals ermöglichen können.
    # mkdir/var/chroot/dev # cd/var/chroot/dev # mknod -m 666 null c 1 3 # mknod -m 666 tty c 5 0 # mknod -m 666 Zero C 1 5 # MKNOD -M 666 Random C. 1 8 


  3. Setzen Sie als nächstes Berechtigungen im Chroot -Verzeichnis fest. Der Root -Benutzer muss das Verzeichnis besitzen, um sicherzustellen, dass die inhaftierten Benutzer es nicht verlassen können. Andere Benutzer können nur Berechtigungen gelesen und ausführen.
    # Chown Root: root /var /chroot # chmod 755 /var /chroot 
  4. Lassen Sie uns als nächstes unseren inhaftierten Benutzern eine Shell geben. Wir werden die Bash -Shell in diesem Beispiel verwenden, obwohl Sie eine andere verwenden können, wenn Sie wollten.
    # Mkdir/var/chroot/bin # cp/bin/bash/var/chroot/bin 
  5. Die Bash Shell erfordert verschiedene libs zu rennen, damit sie auch in die kopiert werden müssen Chroot Verzeichnis. Sie können sehen, was libs sind mit dem benötigt LDD Befehl:
    # ldd /bin /bash linux-vdso.So.1 (0x00007ffd59492000) libtInfo.So.6 =>/lib/x86_64-linux-gnu/libtinfo.So.6 (0x00007f91714cd000) libdl.So.2 =>/lib/x86_64-linux-gnu/libdl.So.2 (0x00007f91714c7000) libc.So.6 =>/lib/x86_64-linux-gnu/libc.So.6 (0x00007f91712d5000) /lib64 /ld-linux-x86-64.So.2 (0x00007f917163a000) 

    Kopieren Sie diese Dateien in das Chroot -Verzeichnis:

    # Mkdir -p/var/chroot/lib/x86_64-linux-gnu/var/chroot/lib64 # cp/lib/x86_64-linux-gnu/libtinfo.So.6, libdl.So.2, libc.So.6/var/chroot/lib/x86_64-linux-gnu # cp/lib64/ld-linux-x86-64.So.2/var/chroot/lib64 


  6. Jetzt können wir den Benutzer erstellen und ein Kennwort für das Konto festlegen.
    # UserAdd Beispiel # Passwd Beispiel 
  7. Ergänzen Sie die /etc/passwd Und /etc/Gruppe Dateien in das Chroot -Verzeichnis.
    # Mkdir/var/chroot/etc # cp/etc/Passwd, Gruppe/var/chroot/etc 
  8. Als nächstes müssen wir einige Bearbeitungen zur SSH -Konfigurationsdatei durchführen. Verwenden Nano oder Ihr bevorzugter Texteditor, um es zu öffnen.
    # sudo nano/etc/ssh/sshd_config 

    Fügen Sie die folgenden Zeilen am Ende der Datei hinzu.

    Stimmen Sie das Beispiel für Benutzer bei 
    Konfigurieren Sie Chroot, um einen SSH -Benutzer zu inhaftieren

    Speichern Sie Ihre Änderungen und starten Sie den SSH -Service neu, damit die Änderungen wirksam werden können.

    # SystemCTL Neustart SSHD neu 


  9. Erstellen Sie ein Home -Verzeichnis für den Benutzer und geben Sie ihm die richtigen Berechtigungen.
    # Mkdir -p/var/chroot/home/Beispiel # Chown Beispiel: Beispiel/var/chroot/home/Beispiel # chmod 700/var/chroot/home/Beispiel 
  10. Zu diesem Zeitpunkt sollte der Benutzer in der Lage sein, native Bash -Befehle anzumelden und zu verwenden, aber er hat keinen Zugriff auf viel. Lassen Sie uns ihnen Zugang zu einigen weiteren Grundlagen geben wie LS, Katze, Echo, RM, VI, Datum, Mkdir. Anstatt alle freigegebenen Bibliotheken für diese Befehle manuell zu kopieren, können Sie das folgende Skript verwenden, um den Prozess zu optimieren.
    #!/bin/bash # Dieses Skript kann verwendet werden, um eine einfache Chroot -Umgebung zu erstellen # von LinuxConfig geschrieben.org # (c) 2020 linuxconfig unter gnu gpl v3.0+ #!/bin/bash chroot = '/var/chroot' mkdir $ chroot für i in $ (ldd $* | grep -v dynamisch | cut -d "" -f 3 | sed 's/: //' | sortieren | uniq ) Do CP-Parents $ i $ chroot erledigt # arch amd64 if [-f /lib64 /ld-linux-x86-64.So.2]; Dann CP-Parents /lib64 /ld-linux-x86-64.So.2 /$ chroot fi # arch i386 if [-f /lib /ld -linux.So.2]; dann CP-Parents /lib /ld-linux.So.2 /$ chroot fi echo "Chroot Gefängnis ist bereit. Um darauf zuzugreifen, führen Sie aus: chroot $ chroot " 
    Kopieren

    Aktivieren wir mit diesem Skript einige dieser Befehle.

    # ./chroot.sh /bin /ls, cat, echo, rm, vi, date, mkdir 

Wir sind endlich fertig. Sie können SSH mit dem Benutzer, den Sie erstellt haben.

# ssh Beispiel@localhost 
Der SSH -Benutzer ist mit dem Chroot inhaftiert, hat jedoch Zugriff auf grundlegende Befehle

Wie Sie sehen können, hat unser Benutzer Zugriff auf die von uns gegebenen Befehle und kann nicht auf den Rest des Systems außerhalb von Chroot zugreifen.

Abschluss

In diesem Leitfaden haben wir gesehen. Es ist ein langer Prozess, aber das von uns bereitgestellte Skript, das Sie bereitgestellt haben, sollten Sie eine große Menge an mühsamer Arbeiten sparen. Das Gefängnis eines Benutzers in ein einzelnes Verzeichnis ist eine sehr gute Möglichkeit, die Privatsphäre für einzelne Benutzer auf einem gemeinsamen Server aufrechtzuerhalten.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Linux -Konfigurationsdateien: Top 30 am wichtigsten
  • So entfernen Sie Bloatware von Ihrem Samsung Android Mobile…
  • Umgang mit Benutzereingaben in Bash -Skripten
  • Kann Linux Viren bekommen?? Erforschung der Verwundbarkeit von Linux…
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Linux -Download
  • Wie man Kali Linux und Windows 10 Dual -Boot -Start hat