Obwohl Linux als freie Software kostenlos verfügbar ist, setzen viele beim Unternehmenseinsatz auf Enterprise-Distributionen mit Support. Wo die Stärken der ... (mehr)

Installation, Konfiguration und Aktualisierung

Die Installation von Jails ist nicht sonderlich schwer, erfordert aber Sorgfalt bei der Konfiguration. Schließlich steht die Sicherheit an vorderster Stelle. Alle Befehle dürfen nur vom Root-User ausgeführt werden. Um eine Jail zu erstellen, benötigt man mindestens 150 MByte freie Plattenkapazität. Sobald Dienstprogramme dazukommen natürlich entsprechend mehr. Als Beispiel sei eine Jail erstellt, die Web-Services beherbergt. Dafür benötigt man in etwa 4 GByte Platz. Damit ist es dann auch möglich, einen FAMP-Server (FreeBSD, Apache, MySQL, PHP) oder ein Content-Management-System (CMS) aufzusetzen. Des Weiteren sollten die Betriebssystem- und Kernel-Quelltexte installiert sein. Die Vorgehensweise ist im Handbuch ausführlich beschrieben. Um eine Jail zu erstellen, sind die nachfolgenden Schritte auszuführen:

# mkdir -p /jail/www
# cd /usr/src
# make world DESTDIR=/jail/www
# cd etc
# make distribution DESTDIR=/jail/www
# mount_devfs devfs /jail/www/dev
# cd /jail/www
# ln -sf dev/null kernel

Nachdem alles kompiliert und installiert ist, werden der Jail über das Device-Filesystem (»devfs« ) Geräte zugänglich gemacht. Dieses Mounting muss unbedingt vor dem Start der Jail abgeschlossen sein. Weil einige Programme eine Datei »/kernel« erwarten, wird sie ihnen mit einem symbolischen Link vorgegaukelt. Tatsächlich ist aber der Kernel des Hostsystems für alle Jails zuständig.

Bevor die Jail das erste Mal gestartet wird, sind einige Dienstprogramme auf dem Host dahingehend zu prüfen, ob sie an die IP-Adresse des Hostsystems gebunden sind. Dies geschieht mit dem einfachen Befehl

# sockstat | grep "\*:[0-9]"

In der Beschreibung zu »rc.conf(5)« werden die Dienste aufgeführt, die per Parameter an eine feste IP-Adresse gebunden werden müssen. Ein Beispiel hierfür ist der Dienst inetd:

inetd_flags="-wW -a IP-Adresse Hostsystem"

Der Mail-Dienst sendmail sollte auf dem Hostsystem so gestartet werden, dass er nur noch auf die localhost-Adresse hört (»sendmail_enable="NO"« ). Zum Abschluss der Installation der Jail wird das Netzwerk-Interface des Hostsystems konfiguriert.

Routingfähige Jails

Einer Routing-fähigen Jail muss man mit folgendem Kommando eine IP-Adresse zuordnen:

# ifconfig netif0 inet alias
  IP-Adresse Jail/32

Wobei »netif0« das Netzwerk-Interface ist. Dies sollte auch so in die Datei »/etc/rc.conf« des Hostsystems eingetragen werden:

ifconfig_netif0_alias0="inet IP-Adresse Jail netmask 255.255.255.255"

Eine interne Jail dagegen bekommt immer die IP-Adresse des Loopback-Interfaces zugewiesen:

# ifconfig lo0 inet alias
  127.0.0.1/32

Wobei »lo0« das Loopback-Interface ist. Auch dies sollte man so in die Datei »/etc/rc.conf« des Hostsystems eintragen:

ifconfig_lo0_alias0="inet  127.0.0.1 netmask 255.255.255.255"

Für die folgenden Schritte spielt es keine Rolle mehr, ob es sich um eine interne oder Routing-fähige Jail handelt.

Nachdem die Installation soweit abgeschlossen ist, wird die Jail mit dem Hostnamen »www.heimnetz.net« , der IP-Adresse »192.168.1.200« und der Shell »/bin/sh« für die Konfiguration manuell gestartet:

# jail /jail/www www.heimnetz.net 192.168.1.200 /bin/sh

Ab jetzt befindet sich der Administrator innerhalb der Jail. Zunächst ist das Passwort für den Root-User zu setzen. Es sollte auch ein User angelegt werden, der wie root der Gruppe »wheel« angehört und unter dessen Kennung man sich später per SSH einloggt. Um Warnungen wegen einer nicht vorhandenen Filesystem-Tabelle zu vermeiden, ist eine leere »/etc/fstab« zu erzeugen. Die Datei »/etc/rc.conf« sollte mindestens wie nachfolgend aussehen:

rpcbind_enable="NO"
network_interfaces=""
hostname="www.heimnetz.net"
sshd_enable="YES"
sshd_flags="-p Port Jail"
sendmail_enable="NO"
syslogd_enable="YES"
syslogd_program="/usr/sbin/syslogd"
syslogd_flags="-ss"
defaultrouter="IP-Adresse Router"

Des Weiteren ist die Konfiguration für den SSH-Daemon in der Datei »/etc/ssh/sshd_config« zu ändern:

ListenAddress IP-Adresse Jail

sowie in die Datei »/etc/resolv.conf« den oder die Domain-Name-Server einzutragen: »nameserver IP-Adresse DNS« .

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021