Apache in einer Jail einsperren
Möchte man einen Apache Webserver in einer gesicherten Umgebung laufen lassen, so muss man nicht unbedingt eine vollständige Jail aufsetzen, nur um einen Apache darin laufen zu lassen, sondern kann mit Hilfe von mod_jail den Apache mittels des jail-Systemcalls einsperren. mod_jail kann über den Portbaum installiert werden:
# cd /usr/ports/www/mod_jail && make install clean
Danach kann mod_jail in der httpd.conf aktiviert werden. Für einen Apache 2.0 fügt man folgende Zeilen in die /usr/local/etc/apache2/httpd.conf ein:
LoadModule jail_module libexec/apache2/mod_jail.so
<IfModule mod_jail.c>
jail_rootdir "/usr/local/www"
jail_hostname "test.chruetertee.ch"
jail_address 192.168.1.12
jail_scrlevel 3
</IfModule>
Mit der Variable jail_scrlevel kann festgelegt werden, mit welchem Securelevel die Jail des eingesperrten Apaches laufen soll. Da nach dem Starten des Apaches mittels chroot nach jail_rootdir gewechselt wird, muss darunter das richtige Verzeichnis für die PID-Datei erstellt werden:
# mkdir /usr/local/www/var/run
Auch müssen die Pfadangaben in der httpd.conf an die chroot-Umgebung angepasst werden. Nun kann der Apache ganz normal gestartet werden:
# /usr/local/etc/rc.d/apache2.sh start
Mit jls(8) kann nun die Jail mit dem eingesperrten Apache angezeigt werden:
# jls
JID IP Address Hostname Path
2 192.168.1.12 test.chruetertee.ch /usr/local/www
Zum Stoppen des Apaches kann nun die Jail mit Hilfe von killall beendet werden:
# killall -j 2
Mehr Informationen zu mod_jail findet man auf der Webseite: http://igorpopov.newmail.ru/mod_jail/