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:
# /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/