Inhaltsverzeichnis

Allgemein

Um ein System sicher zu halten können Jails verwendet werden. Eine Jail kann jedoch nur sicher sein wenn die darin laufende Software alle aktuellen Sicherheitspatches enthält. Um dies sicher zu stellen muss die Jail hin und wieder aktualisiert werden. Dies soll im weiteren Verlauf dieses Artikels erläutert werden. Die Ports werden wie gewohnt aktualisiert.

Binärupdate

Wurde eine Jail aus Binärpaketen installier (also nicht selbst kompiliert) so ist das Update mit Binärpaketen ebenso einfach. Vorausgesetzt die Jail liegt in dem Pfad /usr/local/jails/testjail/ so wird im Host-System einfach folgender Befehl abgesetzt:

# freebsd-update -b /usr/local/jails/testjail/ fetch install

Update aus den Systemquellen

Um eine Jail aus den Quellen zu übersetzen und zu aktualisieren ist die Arbeitsweise etwas länger

Voraussetzungen

Um eine vorhandene Jail zu updaten muss sinnvollerweise eine funktionierende Jail vorliegen (die aktualisiert werden soll). Des Weiteren müssen im Verzeichnis /usr/src des Hostsystems die Systemquellen installiert und aktuell sein. Zusätzlich sollte ein Backup aller Daten vorliegen. Vor jeder Aktualisierung einer Jail muss zunächst das Hostsystem aktualisiert sein!

Im Weiteren wird davon ausgegangen, dass die zu aktualisierende Jail im Verzeichnis /usr/local/jails/testjail des Hostsystems abgelegt ist.

Update der Jail

Die Aktualisierung erfolgt komplett im Hostsystem! Das heißt alle Befehle werden im Hostsystem ausgeführt. Vor der Aktualisierung sollte die zu aktualisierende Jail beendet werden.

Unter /usr/src arbeiten

Zunächst wird ins Verzeichnis der aktuellen Systemquellen gewechselt.

# cd /usr/src

Systemquellen übersetzen

Anschließend kann das System neu kompiliert werden (immer noch im Verzeichnis /usr/src). Ist dies schon im Rahmen eines Updates des Hostsystems erfolgt muss kein weiteres Mal kompiliert werden und dieser Punkt kann übersprungen werden. (Ein Host-Update mittels freebsd-update erzeugt keine Neukompilierung der Quellen!)

Ist eine Kompilierung notwendig sollten die alten Daten unter /usr/obj gelöscht werden (hier landen die Ergebnisse der Kompilevorgangs):

# cd /usr/obj
# chflags -R noschg *
# rm -rf *
# cd /usr/src

Dann kann das System kompiliert werden:

# make buildworld

Wichtigste Konfigurationsdateien migrieren

Seit FreeBSD 10.0 ist etcupdate zum Migrieren der Konfigurationsdateien in FreeBSD enthalten. Alle älteren Systeme können das Werkzeug aus sysutils/etcupdate installieren.

Wird etcupdate das aller erste Mal auf dieser Jail verwendet muss es zunächst die aktuellen Konfigurationsdateien einlesen. (Dieser Schritt ist bei späteren Updates nicht mehr notwendig).

# etcupdate extract -D /usr/local/jails/testjail

Vor der Installation des Systems müssen evtl. notwendige erste Anpassungen an Konfigurationsdateien vorgenommen werden.

# mergemaster -p -D /usr/local/jails/testjail

Übersetztes System installieren

Liegt ein kompiliertes, aktuelles System vor kann dieses in die Jail installiert werden. Hierzu wird folgender Aufruf verwendet:

# make installworld DESTDIR=/usr/local/jails/testjail

Restliche Konfigurationsdateien migrieren

Nach Installation des neuen Systems müssen die Konfigurationsdateien migriert werden.

# etcupdate -D /usr/local/jails/testjail

Nachdem alle Schritte durchgeführt wurden sollte die Jail auf dem aktuellen Stand sein und kann nun neu gestartet werden.