Den HTTP-Proxy und -Loadbalancer Pound innerhalb eines Jails laufen lassen

Der HTTP-Proxy und -Loadbalancer Pound [1] braucht auf dem System, auf dem er läuft fast keine Schreib- oder Leserechte. Das einzige was er schreibend braucht, ist ein Syslogd-Socket. Das macht es sehr einfach, wenn auch weniger dringend, ihn in ein Jail einzusperren.

Vorgehensweise:

Wir brauchen ein Jail mit allen nötigen Bibliotheken und Konfigurationen und wir müssen den init-Skripten sagen, dass Pound [1] in eben diesem Jail laufen soll.

Unter Debian ist das ganze mal wieder ganz simpel: Das Jail wird einfach per makejail erstellt:

apt-get install makejail

mkdir /var/chroot/pound
# /etc/pound/pound.makejail.cfg
# Makejail configuration file for pound
#
# Created by Michael Mende  <debian@menole.net>
# Mon, 18 Feb 2008 13:12:51 +0100
#
chroot="/var/chroot/pound"

forceCopy=["/etc/pound/\*","/etc/hosts","/etc/nsswitch.conf","/sbin/start-stop-daemon","/proc"]
preserve=["/dev/log","/dev/urandom"]
users=["www-data"]
groups=["www-data"]
packages=["pound"]
useDepends=1
# /etc/default/syslogd
#
# Top configuration file for syslogd
#
#
# Full documentation of possible arguments are found in the manpage
# syslogd(8).
#
#
# For remote UDP logging use SYSLOGD="-r"
#
SYSLOGD="-a /var/chroot/pound/dev/log"
makejail /etc/pound/pound.makejail.cfg

grep www-data /etc/group > /var/chroot/pound/etc/group

grep www-data /etc/passwd > /var/chroot/pound/etc/passwd

mkdir /var/chroot/pound/dev

[-f /var/chroot/pound/dev/urandom ] || cp -a /dev/urandom /var/chroot/pound/dev/

[-f /var/chroot/pound/dev/log ] || cp -a /dev/log /var/chroot/pound/dev/


[1] http://www.apsis.ch/pound/