Da ich vorhabe, nginx in einer jail zu betreiben, musste ich mich notgedrungen erst einmal mit pf bschäftigen. Dies scheint die bevorzugte Firewall unter FreeBSD zu sein.
Die jail soll unter der IP 10.0.0.1 erreichbar sein, so daß alle Anfragen Port 80 auf die externe IP per redirect geleitet werden müssen.
Einrichten der (virtuellen) IP 10.0.0.1 (in /etc/rc.local)
ifconfig_lo0_alias0=”inet 10.0.0.1/32″
In der Konfigurationsdatei pf.conf muss dann der redirect eingetragen werden:
if = em0
ip = xxx.xxx.xxx.xxx
web = 10.0.0.1rdr on $if proto {tcp udp} from any to $if port 80 -> $web
Anm: Redirect von der extern erreichbaren IP für die Dienste tcp / udp von überall auf das Interface (bei mir em0) Port 80 soll auf die 10.0.0.1 erfolgen.
Weiterhin muss eine Regel her, welche die Daten der internen IP 10.0.0.1 über das externe Netzwerk transportier:
nat on $if proto {tcp udp icmp} from $web to any -> $ip
JAILS:
Zur Einrichtung und Administration von jails empfiehlt sich das Programm ezjails, welches mit
cd /usr/ports/sysutils/ezjail
make clean install
installiert wird.
Damit eine Verbindung aus einer jail heraus funktioniert, muss folgendes eingetragen werden:
sysctl security.jail.allow_raw_sockets=1