GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So konfigurieren Sie die Chroot-Umgebung in Ubuntu 14.04

Es gibt viele Fälle, in denen Sie bestimmte Anwendungen, Benutzer oder Umgebungen innerhalb eines Linux-Systems isolieren möchten. Unterschiedliche Betriebssysteme haben unterschiedliche Methoden, um eine Isolation zu erreichen, und unter Linux führt ein klassischer Weg über eine chroot Umgebung.

In diesem Handbuch zeigen wir Ihnen Schritt für Schritt, wie Sie eine isolierte Umgebung mit Chroot einrichten, um eine Barriere zwischen Ihrem regulären Betriebssystem und einer abgeschlossenen Umgebung zu schaffen. Dies ist hauptsächlich für Testzwecke nützlich. Wir zeigen Ihnen die Schritte auf einer Ubuntu 14.04 VPS-Instanz.

Die meisten Systemadministratoren werden davon profitieren, wenn sie wissen, wie man eine schnelle und einfache Chroot-Umgebung erstellt, und es ist eine wertvolle Fähigkeit, sie zu besitzen.

Die Chroot-Umgebung

Eine Chroot-Umgebung ist ein Betriebssystemaufruf, der den Root-Speicherort vorübergehend in einen neuen Ordner ändert. Typischerweise ist die Vorstellung des Betriebssystems vom Root-Verzeichnis das eigentliche Root-Verzeichnis, das sich unter „/ befindet ". Allerdings mit chroot , können Sie ein anderes Verzeichnis angeben, das für die Dauer einer Chroot als oberstes Verzeichnis dienen soll.

Alle Anwendungen, die innerhalb von chroot ausgeführt werden wird den Rest des Betriebssystems grundsätzlich nicht sehen können.

Vorteile der Chroot-Umgebung

Test applications without the risk of compromising the entire host system.

-  From the security point of view, whatever happens in the chroot environment won't affect the host system (not even under root user).

-  A different operating system running in the same hardware.

So können Sie beispielsweise Software in einer Umgebung erstellen, installieren und testen, die von Ihrem normalen Betriebssystem getrennt ist. Es könnte auch als Methode zum Ausführen von 32-Bit-Anwendungen in einer 64-Bit-Umgebung verwendet werden t.

Aber während Chroot-Umgebungen einem unprivilegierten Benutzer sicherlich zusätzliche Arbeit machen, sollten sie als Härtungsfunktion und nicht als Sicherheitsfunktion betrachtet werden, was bedeutet, dass sie versuchen, die Anzahl der Angriffsvektoren zu reduzieren, anstatt eine vollständige Lösung zu erstellen. Wenn Sie eine vollständige Isolierung benötigen, sollten Sie eine umfassendere Lösung in Betracht ziehen, z. B. Linux-Container, Docker, virtuelle Server usw.

Debootstrap und Schroot

Die notwendigen Pakete zum Einrichten der Chroot-Umgebung sind debootstrap und schroot , die im Ubuntu-Repository verfügbar sind. Der schroot-Befehl wird verwendet, um die Chroot-Umgebung einzurichten.

Debootstrap ermöglicht es Ihnen, eine neue frische Kopie eines beliebigen Debian- (oder Debian-basierten) Systems aus einem Repository in einem Verzeichnis mit allen grundlegenden Befehlen und Binärdateien zu installieren, die zum Ausführen einer grundlegenden Instanz des Betriebssystems erforderlich sind.

Die schroot ermöglicht normalen Benutzern den Zugriff auf Chroots unter Verwendung desselben Mechanismus, aber mit Überprüfung der Berechtigungen und Erlauben zusätzlicher automatischer Einrichtung der Chroot-Umgebung, wie z. B. das Einhängen zusätzlicher Dateisysteme und anderer Konfigurationsaufgaben.

Dies sind die Schritte zum Implementieren dieser Funktionalität in Ubuntu 14.04 LTS:

1. Installieren der Pakete

Zuerst werden wir debootstrap und schroot in unserem Host Ubuntu 14.04 LTS installieren.

$ sudo apt-get install debootstrap 
$ sudo apt-get install schroot

2. Konfigurieren von Schroot

Jetzt, da wir die geeigneten Tools haben, müssen wir nur noch ein Verzeichnis angeben, das wir als unsere Chroot-Umgebung verwenden möchten. Wir werden ein Verzeichnis namens linoxide in unserem Stammverzeichnis erstellen, um dort Chroot einzurichten:

sudo mkdir /linoxide

Wir müssen Schroot so konfigurieren, dass es unseren Bedürfnissen in der Konfigurationsdatei entspricht. Wir werden die schroot ändern Konfigurationsdatei mit den Informationen, die wir für die Konfiguration benötigen.

sudo nano /etc/schroot/schroot.conf

Wir verwenden derzeit ein Ubuntu 14.04 LTS (Trusty Tahr)-System, aber nehmen wir an, wir möchten einige Pakete testen, die auf Ubuntu 13.10 mit dem Codenamen „Saucy Salamander“ verfügbar sind. Wir können das tun, indem wir einen Eintrag erstellen, der so aussieht:

[saucy]
description=Ubuntu Saucy
location=/linoxide
priority=3
users=arun
root-groups=root

Passen Sie die Werte der Konfigurationsparameter im obigen Beispiel an Ihr System an:

3. Installieren von 32-Bit-Ubuntu mit debootstrap

Debootstrap lädt ein minimales Betriebssystem herunter und installiert es in Ihrer Chroot-Umgebung . Sie können jede Debian-basierte Distribution Ihrer Wahl installieren, solange Sie ein Repository zur Verfügung haben.

Oben haben wir die Chroot-Umgebung in das Verzeichnis /linoxide gelegt und dies ist das Stammverzeichnis der Chroot-Umgebung. Also müssen wir debootstrap in diesem Verzeichnis ausführen, das wir bereits erstellt haben:

cd /linoxide
sudo debootstrap --variant=buildd --arch amd64 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/ sudo chroot /linoxide /debootstrap/debootstrap --second-stage

Sie können amd64 in --arch als i386 oder ein anderes Bit-Betriebssystem ersetzen, das Sie im Repository einrichten möchten. Sie können den Spiegel http://archive.ubuntu.com/ubuntu/ oben als den nächstgelegenen ersetzen, Sie können den nächstgelegenen von der offiziellen Ubuntu-Mirror-Seite erhalten.

Hinweis: Sie müssen --foreign über dem Befehl der dritten Zeile hinzufügen, wenn Sie i386-Bit-OS-Choot in Ihrem 64-Bit-Host-Ubuntu einrichten möchten als:

sudo debootstrap --variant=buildd --foreign --arch i386 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/

Es dauert einige Zeit (abhängig von Ihrer Bandbreite), das komplette System herunterzuladen, zu installieren und zu konfigurieren. Für eine minimale Installation werden etwa 500 MB benötigt.

4. Finalisierung der Chroot-Umgebung

Nachdem das System installiert ist, müssen wir einige abschließende Konfigurationen vornehmen, um sicherzustellen, dass das System ordnungsgemäß funktioniert. Zuerst wollen wir sicherstellen, dass unser Host fstab ist sich einiger Pseudosysteme in unserem Gast bewusst.

 sudo nano /etc/fstab

Fügen Sie die folgenden Zeilen wie diese am Ende Ihrer fstab hinzu:

proc /linoxide/proc proc defaults 0 0
sysfs /linoxide/sys sysfs defaults 0 0

Speichern und schließen Sie die Datei.

Jetzt müssen wir diese Dateisysteme in unserem Gast einhängen:

$ sudo mount proc /linoxide/proc -t proc
$ sudo mount sysfs /linoxide/sys -t sysfs

Wir wollen auch unsere /etc/hosts kopieren Datei, damit wir Zugriff auf die richtigen Netzwerkinformationen haben:

$ sudo cp /etc/hosts /linoxide/etc/hosts

Schließlich können Sie die verfügbaren Chroot-Umgebungen mit dem schroot-Befehl auflisten.

$ schroot -l

Wir können die Chroot-Umgebung durch einen Befehl wie diesen betreten:

$ sudo chroot /linoxide/ /bin/bash
You can test the chroot environment by checking the version of distributions installed.
# lsb_release -a
# uname -a

Um dieses Tutorial zu beenden und eine Grafikanwendung von der Chroot aus auszuführen, müssen Sie die Umgebungsvariable DISPLAY exportieren.

$ DISPLAY=:0.0 ./apps

Hier haben wir erfolgreich Chrooted Ubuntu 13.10 (Saucy Salamander) in Ihrem Host Ubuntu 14.04 LTS (Trusty Tahr) installiert.
Sie können die Chroot-Umgebung erfolgreich beenden, indem Sie die folgenden Befehle ausführen:

# exit

Danach müssen wir unsere proc- und sys-Dateisysteme aushängen:

$ sudo umount /test/proc
$ sudo umount /test/sys

Ubuntu
  1. So konfigurieren Sie eine statische IP-Adresse unter Ubuntu 18.04

  2. So installieren Sie OpenProject unter Ubuntu 16.04

  3. So konfigurieren Sie den Bacula-Server unter Ubuntu 16.04

  4. So installieren Sie Gradle unter Ubuntu 18.04

  5. Richten Sie eine Chroot-Umgebung auf Ubuntu mit debootstrap ein

So fügen Sie Ubuntu einen Drucker hinzu

So installieren Sie Ubuntu neu

So konfigurieren Sie die Mauseinstellungen in Ubuntu

So installieren und konfigurieren Sie MySQL in Ubuntu 20.04 LTS

So installieren Sie urBackup auf Ubuntu 20.04

So installieren Sie Dropbox unter Ubuntu 18.04 und 16.04