Als je FreeBSD hebt geïnstalleerd kun je (jail) containers op kernelniveau maken voor de veilige isolatie van een of meer processen tot een volledig gebruikersland.
Configuratie
Maak een sh bestand aan
# ee /etc/jail.sh
Voeg de onderstaande regel toe:
D=/usr/jail/192.168.1.142
# cd /usr/src
# mkdir -p $D
# make world DESTDIR=$D
# make distribution DESTDIR=$D
# mount_devfs devfs $D/dev
Het sh bestand uitvoeren
sh jail.sh
Aanpassen van het # bestand.
# ee /etc/rc.conf
Voeg vervolgens de onderstaande regels toe in het rc.conf bestand
jail_enable="YES" # Set to NO to disable starting of any jails
jail_interface="fxp0"
jail_devfs_enable="YES"
jail_procfs_enable="YES"
jail_list="www" # Space separated list of names of jails
jail_www_rootdir="/usr/jail/192.168.1.142" # jail's root directory
jail_www_hostname="www.markterweele.nl" # jail's hostname
jail_www_ip="192.168.1.142" # jail's IP address
jail_www_devfs_enable="YES" # mount devfs in the jail
#jail_www_devfs_ruleset="www_ruleset" # devfs ruleset to apply to jail
Aanpassen van het sysctl bestand
# ee /etc/sysctl.conf
Voeg vervolgens de onderstaande regels toe
security.jail.set_hostname_allowed: 1
security.jail.socket_unixiproute_only: 1
security.jail.sysvipc_allowed: 0
security.jail.enforce_statfs: 2
security.jail.allow_raw_sockets: 0
security.jail.chflags_allowed: 0
security.jail.jailed: 0
High-level administrative tools
# cd /usr/ports/sysutils/jailutils
# make install clean
Resolv.conf kopiëren naar de jail
# cp /etc/resolv.conf /usr/jail/192.168.1.142/etc/
Maak een bestand make.conf aan
# ee /usr/jail/192.168.1.142/etc/make.conf
Voeg vervolgens de onderstaande regel toe
WRKDIRPREFIX=/tmp
Maak een map ports aan.
# mkdir /usr/jail/192.168.1.142/usr/ports
Maak rc.conf bestand aan in de jail
# ee /usr/jail/192.168.1.142/etc/rc.conf
Voeg vervolgens de onderstaande regels toe
defaultrouter="192.168.1.1"
ifconfig_fxp0="inet 192.168.1.142 netmask 255.255.255.0"
network_interfaces="fxp0"
rpcbind_enable="NO"
sshd_enable="YES"
syslogd_flags="-ss"
De Jail mounten
# mount /usr/ports and /usr/src
# mount_nullfs /usr/ports /usr/jail/192.168.1.142
# mount_nullfs /usr/src /usr/jail/192.168.1.142
Na de server reboot is het virtual ip adres beschikbaar
Alle jails zien:
# jls
Via jail programma’s installeren
# jail /usr/jail/192.168.1.142 www.markterweele.nl 192.168.1.142 /bin/sh
Om in de jail te komen moet je de volgende commando invoeren:
# jexec 1 tcsh
Jail re starten
# /etc/rc.d/jail restart 192.168.1.142
Links
- Zie ook: Jail website