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/
Comments
Oi senhor,
Parabéns artigo de otima qualidade.
Gostaria de pedir uma ajuda, tenho um servidor FreeBSD 8 com Apache usando Jail, seria possivel usar esse modulo em diferente hosts? Exemplo:
jail_rootdir "/usr/local/www/site1"
jail_hostname "www.site1.com.br"
jail_address 127.0.0.1
jail_scrlevel 3
jail_rootdir "/usr/local/www/site2"
jail_hostname "www.site2.com.br"
jail_address 127.0.0.1
jail_scrlevel 3
Muito obrigado
Hi sir,
Congratulations article of great quality.
I would ask for help, I have a server with FreeBSD 8 using Apache Jail would be possible to use this module in different hosts? example:
jail_rootdir "/ usr/local/www/site1"
jail_hostname "www.site1.com.br"
jail_address 127.0.0.1
jail_scrlevel 3
jail_rootdir "/ usr/local/www/site2"
jail_hostname "www.site2.com.br"
jail_address 127.0.0.1
jail_scrlevel 3
thank you very much