In diesem Tutorial werden wir uns speziell mit der Debian-Chroot-Umgebung befassen. Das Ausführen eines Linux-Systems in einer Chroot-Umgebung ermöglicht es einem Systemadministrator, die Auswirkungen auf einen Produktionsserver zu verringern, wenn der Server kompromittiert wird.
Root ändern ändert das Root-Verzeichnis in alle derzeit laufenden Prozesse und seine Kinder in ein Chroot-Gefängnis. Das Testen verschiedener Paketinstallationen und Serverkonfigurationen in einer Chroot-Umgebung kann ein weiterer praktischer Weg sein, um ein Chroot-Gefängnis zu nutzen.
In diesem Tutorial behandeln wir die Schritt-für-Schritt-Anleitung zum Einrichten von Chroot unter Debian Linux. Die Anweisungen funktionieren auch für andere Debian-basierte Systeme.
In diesem Tutorial lernen Sie:
- Wie installiere ich debootstrap
- Wie man Chroot unter Debian Linux einrichtet
- Wie man per SSH ins Chroot-Gefängnis gelangt
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Debian-Linux |
Software | debootstrap |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Debootstrap installieren
Als erstes müssen wir debootstrap installieren Paket auf Debian. Mit dieser Software können wir eine Chroot-Umgebung erstellen. Verwenden Sie den folgenden Befehl, um das Paket mit dem Paketmanager von Debian zu installieren.
$ sudo apt update $ sudo apt install debootstrap
Chroot-Umgebung installieren
Jetzt ist es an der Zeit, die Chroot-Umgebung zu installieren. Befolgen Sie die nachstehenden Schritte, um es einzurichten.
- Erstellen Sie zuerst ein Verzeichnis, in dem sich die Chroot-Umgebung befinden soll. Wir halten es einfach und verwenden
/mnt/chroot
in diesem Tutorial.$ sudo mkdir -p /mnt/chroot
- Sobald Ihr neues Chroot-Verzeichnis fertig ist, werden wir debootstrap verwenden, um neue Debian-Systemdateien innerhalb der Chroot-Umgebung zu installieren. Die Installation kann einige Zeit dauern, da debootstrap Kernpakete herunterladen und installieren muss.
$ sudo debootstrap stable /mnt/chroot http://deb.debian.org/debian/
Sie werden eine Menge Ausgaben in Ihrem Terminal sehen, aber es sollte mit dem Text „I:Basissystem erfolgreich installiert“ enden, was bedeutet, dass es fertig ist.
- Schließlich verbinden Sie Ihr Host-Proc-System mit der Chroot-Umgebung, indem Sie innerhalb des Chroot-Verzeichnisses mounten. Dadurch kann chroot auf die Hardware Ihres Hostsystems zugreifen.
$ sudo mount -t proc proc /mnt/chroot/proc $ sudo mount -t devpts devpts /mnt/chroot/dev/pts
Chroot-Debian-Konfiguration
Jetzt können wir uns bei Chroot anmelden und einige grundlegende Konfigurationen vornehmen. Um Verwechslungen zwischen der Host- und der Chroot-Umgebung zu vermeiden, können wir die PS1-Variable von root in einen Shell-Prompt in chroot#
ändern . Dieser Schritt ist optional, wird aber empfohlen.
- Melden Sie sich zuerst bei Chroot an.
$ sudo chroot /mnt/chroot /bin/bash --login
- Führen Sie den folgenden Linux-Befehl aus, um den Shell-Prompt von root dauerhaft zu ändern und zu beenden.
# echo 'PS1="chroot:\w# "' >> ~/.bashrc # exit
- Das nächste Mal, wenn Sie die Chroot-Umgebung betreten, werden Sie einen neuen Shell-Prompt haben.
# chroot /mnt/chroot /bin/bash --login
- Als nächstes werden wir Locales installieren und neu konfigurieren.
chroot:/# apt install locales
- Konfigurieren Sie jetzt Ihre Locales neu und wählen Sie Ihre aus dem Menü aus.
chroot:/# dpkg-reconfigure locales
Chroot-SSH-Daemon installieren
Jetzt können wir jeden Dienst in der Chroot-Umgebung installieren. Beginnen wir mit ssh, da dies uns erlaubt, uns über eine ssh-Verbindung von LAN oder WAN bei chroot anzumelden.
- Installieren Sie den SSH-Server mit dem folgenden Befehl.
chroot:/# apt install ssh
- Konfigurieren Sie den Chroot-SSH-Dienst so, dass er auf einem anderen Port als 22 lauscht, da dieser höchstwahrscheinlich bereits von Ihrem Hostsystem belegt ist.
chroot:/# nano /etc/ssh/sshd_config
- Und ändern Sie die Zeile
#Port 22
, während auch eine Zeile hinzugefügt wird, um Remote-Root-Logins hinzuzufügen:Port 2222 PermitRootLogin yes
- Starten Sie den SSH-Dienst neu, damit die Änderungen wirksam werden.
chroot:/# /etc/init.d/ssh restart Restarting OpenBSD Secure Shell server: sshd.
- Ändern Sie schließlich das Passwort für Ihren chrooted Root-Benutzer:
chroot:/# passwd
Melden Sie sich remote bei Chroot an
Wenn alles gut gegangen ist, sollten wir uns jetzt mit ssh:
in die neue Chroot-Umgebung einloggen können$ ssh root@localhost -p 2222
Chroot fein abstimmen
Der chroot ssh-Daemon wird nicht automatisch gestartet, wenn Sie Ihr Host-Betriebssystem einschalten. Erstellen Sie daher ein einfaches Shell-Skript, um diese Aufgabe zu erledigen:
#!/bin/bash mount -t devpts devpts /mnt/chroot/dev/pts mount -t proc proc /mnt/chroot/proc chroot /mnt/chroot /etc/init.d/ssh start
Und als letzten Schritt erstellen Sie einen symbolischen Link zu /etc/rc2.d/
:
# ln -s /etc/init.d/chroot.sh /etc/rc2.d/S98chroot
Jetzt sollten Sie eine voll funktionsfähige Chroot-Umgebung haben. Fühlen Sie sich frei, zusätzliche Dienste zu erkunden und zu installieren.
Abschlussgedanken
In diesem Tutorial haben wir gesehen, wie man eine Debian-Chroot-Umgebung installiert. Wir haben auch gelernt, wie man sich über SSH in die Chroot-Umgebung einloggt, was es einfacher macht, sie zu verwalten und Pakete zum Testen zu installieren. Eine Chroot-Umgebung ist eine großartige Möglichkeit, Software zu testen und sie von Ihrem Host-Betriebssystem getrennt zu halten.