Jail

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

Add a Comment

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *