• Skip to main content
  • Skip to primary sidebar

BSDFreaks.nl

For starters and advanced *BSD users

Tags

brand dmi enschede FreeBSD harddisk Hardware Howto's Howto's move new ports server serverruimte universiteit utwente

Jailed Environment Project

August 23, 2002 by Rob

Jailed Environment Project

Ik ben bezig met een omgeving op te zetten die onder een bestaande omgeving draait. Hierbij kan je iedereen root access geven zonder dat zij de bovenliggende omgeving kunnen beschadigen. Op deze manier kan je dus zorgen dat mensen hun eigen omgeving zo kunnen configureren als zij willen. Tevens kunnen ze binnen deze jail experimenteren en als het fout gaat kan de jail vrij snel terug gezet worden. Oftewel prutsen zonder het écht
te verprusten.

Bij dit project gaat het mij er om om een zo veilig mogelijke omgeving te bouwen.

Wil je mee doen met dit project‚ je eigen ervaringen met jail delen‚ stuur dan een mailtje naar jep@laagje.net of plaats commentaar onderaan deze howto.

In deze howto gaan we een omgeving opzetten die onder een bestaande omgeving draait. Zorg dat je een aantal films klaar hebt liggen want het opzetten duurt een tijd.

We gaan een directory maken waaronder alle jails die je wilt hebben komen. Tevens zetten we een variable waar in staat waar we de jail neer willen zetten.

[shell]
# mkdir /jails/
# mkdir /jails/jailnaam
# D=/jails/jailnaam
[/shell]

Het volgende wat we gaan doen is het aan maken van de file tree die op een normale omgeving ook aanwezig is‚ nu alleen binnen de jail. Daarna gaan we de sources compilen en op de juiste plek laten neerzetten. Nu kan je gerust een filmpje gaan kijken of een taart bakken als je niet zo’n super snel systeem hebt.

[shell]
# cd /usr/src
# make hierarchy DESTDIR=$D
# make obj
# make depend
# make all
# make install DESTDIR=$D
[/shell]

Nu gaan we de default configuratie files neerzetten in /jails/jailnaam/etc/ (dit wordt dus binnen de jail /etc/).

[shell]
# cd /usr/src/etc/
# make distribution DESTDIR=$D NO_MAKEDEV=yes
[/shell]

Nu gaan we de benodige devices aanmaken binnen de jail. Omdat de jail zelf ook wat restricties heeft moeten we aangeven dat het een jail betreft. Binnen een jail mag je bijvoorbeeld niet bovenliggende schijven mounten of fdisk gebruiken.

[shell]
# cd $D/DEV/
# cp /dev/MAKEDEV .
# sh MAKEDEV jail
[/shell]

Omdat de kernel van de bovenliggende omgeving gebruikt wordt‚ moeten we in dit geval /dev/null linken aan de kernel.

[shell]
# cd $D
# ln -sf dev/null kernel
[/shell]

Voordat we de jail kunnen starten moeten we aan het bovenliggende systeem nog een aantal dingen veranderen. Bij deze situatie ga ik er vanuit dat het base systeem ip 192.168.1.1 heeft en de jail 192.168.1.2 krijgt. Nu moeten we er voor zorgen dat 192.168.1.2 dedicated door de jail gebruikt kan worden. Ik laat even zien hoe je ervoor zorgt dat syslogd‚ named‚ inetd‚ mysql‚ apache en sshd op 192.168.1.1 luisteren en niet op de andere. Zelf moet je controleren dat er verder geen andere applicaties gebruik maken van het ip dat bedoelt is voor de jail.

De volgende configuratie bestanden moet je op het base systeem editten.

/etc/rc.conf

[file]
syslogd_flags=”-ss”
inetd_flags=”-wW -a 192.168.1.1″
[/file]

/etc/ssh/sshd_config

[file]
ListenAddress 192.168.1.1
[/file]

/etc/namedb/named.conf

[file]
options
{
listen-on { 192.168.1.1; };
}
[/file]

/usr/local/etc/rc.d/mysql-server.sh

[file]
start)
if [ -x /usr/local/bin/safe_mysqld ]; then
/usr/local/bin/safe_mysqld –user=mysql –bind-address=192.168.1.1 > /dev/null & && echo -n ‘ mysql$
fi
;;
[/file]

/usr/local/etc/apache/httpd.conf

[file]
Listen 192.168.1.1:80
[/file]

Nu gaan we de jail zelf configureren.
Als je het met de hand wilt doen kan dat‚ maar we kopieren voor de zekerheid even sysinstall naar de jail.

[shell]
# cp /stand/sysinstall /jails/jailnaam/stand/
[/shell]

Nu gaan we de jail voor de eerste keer starten maar voordat we dat doen zorgen we wel dat het ip dat de jail
moet gaan gebruiken aanwezig is.

[shell]
# ifconfig alias 192.168.1.2 netmask 255.255.255.0
[/shell]

Daar gaat ie:
[shell]
# jail $D jailnaam.domein 192.168.1.2 /bin/sh
[/shell]

Je komt nu in de jail binnen als root. Nu kan je beginnen met het configureren van de jail. Doe dit via /stand/sysinstall of handmatig. Vergeet niet ssh te configureren binnen de jail en een gebruiker toe te voegen!

Als je klaar bent gaan we de jail echt in de achtergrond laten draaien:
[shell]
# exit
# jail $D jailnaam.domain 192.168.1.2 /bin/sh /etc/rc
[/shell]

Nu draait de jail in de achtergrond. Probeer eens te ssh-en naar het jail ip!

Succes! Ik wil graag horen hoe jullie bevindingen zijn met jail. Als jullie vragen/ideeën of commentaar hebben hoor ik het graag!

Groeten‚

Laagje
Ook op IRC te vinden

Filed Under: Console

Reader Interactions

Comments

  1. Anonymous says

    August 28, 2002 at 7:14 pm

    Moet bij de laatste regel het ip van het host systeem gebruikt worden ??

    moet om de jail in de achtergrond te laten draaien ook niet gewoon 192.168.1.2 gebruikt worden ?

  2. Anonymous says

    August 30, 2002 at 9:16 am

    Je hebt helemaal gelijk 🙂

    *foutje*

  3. Anonymous says

    September 22, 2002 at 11:56 am

    hoe kan ik de jail nou automatich laten starten na een reboot ?

  4. Santium says

    May 18, 2003 at 10:27 pm

    /etc/rc.local gebruiken ofzo he 😉

    Maar ik moet zeggen, er gaat een wereld voor me open op dit moment! 🙂

  5. Laagje says

    December 5, 2003 at 11:09 am

    Voor de gene die de ports uit het base systeem willen gebruiken binnen de jail.
    Toevoegen op 192.168.1.1 in /etc/fstab

    /usr/ports /jail/jailnaam/usr/ports null rw 0 0

  6. Anonymous says

    January 14, 2004 at 10:09 pm

    ow ennuh, jep at laagje.nl werkt niet meer ivm spammmmmmmmmmm
    try r.v.gogh at laagje.nl

  7. DimSum says

    February 8, 2004 at 12:07 am

    Het is me na 5x proberen eindelijk gelukt 🙂
    Ik heb af en toe ook in deze tutorial gespiekt:
    http://jailnotes.cg.nu/
    Beiden waren een grote hulp voor me.

  8. Anonymous says

    November 12, 2004 at 7:08 pm

    paar fbsd 5.3 bevindingen…

    bij het ifconfig alias statement moet je netmask 255.255.255.255 gebruiken
    MAKEDEV lijkt niet meer mogelijk … nodig ??

  9. Anonymous says

    November 12, 2004 at 7:18 pm

    mount_devfs devfs $D/dev
    moet gebruikt worden ipv de oude methode….

  10. Laagje says

    November 12, 2004 at 9:04 pm

    ahja… Howto is redelijk outdated… Zal em soon ff updaten…

  11. guest says

    July 13, 2005 at 12:30 pm

    Laagje, ik zit te wachten op een update!

Primary Sidebar

Pages

  • Howto overview
  • iPhone mail setup
  • Links

Categories

  • *BSD news from the past
  • Console
  • Firewall
  • FreeBSD
  • FTP server
  • Hardware
  • Howto's
  • Installation
  • Kernel
  • Mail server
  • Miscellaneous
  • Networking
  • News
  • News imported
  • OpenBSD
  • Operating System
  • Programming
  • Security
  • Site news
  • Software
  • Sysutils
  • Web server

Recent Comments

  • admin on Qmail FreeBSD Mail Toaster Spam en virus control addon
  • admin on [FreeBSD] Het opzetten van een Vlan
  • Jap on [FreeBSD] Installing GlFtpd
  • Jap on [FreeBSD] Installing GlFtpd
  • Crashjuh on Wireless access point met OpenBSD + VPN

Copyright © 2025 · Genesis Sample Theme on Genesis Framework · WordPress · Log in