From owner-p4-projects@FreeBSD.ORG Mon Jul 28 20:18:56 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F24EE106568B; Mon, 28 Jul 2008 20:18:55 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5FA71065684 for ; Mon, 28 Jul 2008 20:18:55 +0000 (UTC) (envelope-from remko@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 97D978FC08 for ; Mon, 28 Jul 2008 20:18:55 +0000 (UTC) (envelope-from remko@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.2/8.14.2) with ESMTP id m6SKIt0r072060 for ; Mon, 28 Jul 2008 20:18:55 GMT (envelope-from remko@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6SKItoC072058 for perforce@freebsd.org; Mon, 28 Jul 2008 20:18:55 GMT (envelope-from remko@freebsd.org) Date: Mon, 28 Jul 2008 20:18:55 GMT Message-Id: <200807282018.m6SKItoC072058@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to remko@freebsd.org using -f From: Remko Lodder To: Perforce Change Reviews Cc: Subject: PERFORCE change 146154 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jul 2008 20:18:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=146154 Change 146154 by remko@remko_nakur on 2008/07/28 20:18:17 more WIP Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/jails/chapter.sgml#5 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/jails/chapter.sgml#5 (text+ko) ==== @@ -158,14 +158,222 @@ Wat is een jail - BSD achtige systemen + BSD achtige systemen hebben sinds 4.2-BSD ondersteuning van + &man.chroot.2;. De &man.chroot.8; utility kan gebruikt worden om + de root directory van een set processen te wijzigen waardoor een + veilige omgeving wordt gecreeërd voor de rest van het + systeem. Processen die gemaakt worden in een chroot omgeving + kunnen bestanden en bronnen daarbuiten niet benaderen. Daardoor + zou een doorbraak van een dienst die in een chroot omgeving + draait, niet direct moeten betekenen dat het hele systeem + doorbroken is. De &man.chroot.8; utility is goed genoeg voor + simpele taken, waarbij flexibiliteit en geavanceerde en complexe + opties niet nodig zijn. Sinds het uitvinden van het chroot + concept, zijn er vele mogelijkheden gevonden om hieruit te + breken en, alhoewel ze gerepareerd zijn in moderne versies + van &os;, werd het duidelijk dat &man.chroot.2; niet de meest + ideale oplossing was voor het beveiligen van diensten. Er moest + een nieuw subsysteem ontwikkeld worden. + + Dit is één van de redenen waarom jails zijn + ontwikkeld. + + Jails zijn een verbeterd concept van de &man.chroot.2; + omgeving, in verschillende opzichten. In een traditionele + &man.chroot.2; omgeving worden processen alleen gelimiteerd + in het deel van het bestandssysteem wat ze kunnen benaderen. + De rest van de systeem bronnen (zoals de set van systeem + gebruikers, de draaiende processen of het netwerk subsysteem) + worden gedeeld door het chrooted proces en de processen op het + host systeem. Jails breiden dit model uit door het niet + alleen virtualizeren van de toegang tot het bestandssysteem maar + ook tot de set van gebruikers, het netwerk subsysteem van de + &os; kernel en een aantal andere delen. Een meer complete set + van gespecificeerde controle mogelijkheden die beschikbaar zijn + voor het personaliseren van de toegang tot een jail omgeving + wordt beschreven in . + + Een jail heeft vier kenmerken: + + + + Een aparte subtak van een directory — het startpunt + van waaruit een jail benaderd wordt. Zodra men in de jail + zit, mogen processen niet buiten deze subtak komen. + Traditionele problemen die &man.chroot.2;'s ontwerp geplaagd + hebben, hebben geen invloed op &os; jails. + + + + Een hostname — de hostnaam die gebruikt wordt in + de jail. Jails worden met name gebruikt voor het hosten van + netwerk diensten, daardoor kan het de systeembeheerder heel erg + helpen als er beschrijvende hostnames worden gekozen. + + + + Een IP adres — deze wordt + gekoppeld aan de jail en kan op geen enkele manier worden + gewijzigd tijdens het leven van de jail. Het IP adres van + een jail is meestal een alias op een reeds bestaande + netwerk interface, maar dit is niet noodzakelijk. + + + + Een commando — het padnaam van een uitvoerbaar + bestand in de jail. Deze is relatief aan de rootdirectory + van de jail omgeving en kan heel erg wisselen, afhankelijk + van het type van de specifieke jail omgeving. + + + + Buiten deze kenmerken, kunnen jails hun eigen set aan + gebruikers, en root gebruiker hebben. + Uiteraard zijn de mogelijkheden van de root + gebruiker beperkt tot de jail omgeving en, vanuit het host systeem + gezien, is de root gebruiker geen opper + gebruiker. Daarnaast is het de root + gebruiker in een jail omgeving niet toegestaan om kritieke + operaties uit te voeren op het systeem buiten de gedefinieerde + jail omgeving. Meer informatie over de mogelijkheden en + beperkingen van de root gebruiker kan + gevonden worden in hieronder. - * Creeëren en controleren van jails + Creeëren en controleren van jails + + Sommige beheerders kiezen ervoor om jails op te delen in + de volgende twee types: complete jails, welke + een volledig &os; systeem nabootsen en service + jails, gericht op één applicatie of dienst, + mogelijkerwijs draaiende met privileges. Dit is alleen een + conceptuele splitsing en het proces van het bouwen van een + jail is hierdoor niet geraakt. De &man.jail.8; handleiding + is heel duidelijk over de procedure voor het maken van een + jail: + + &prompt.root; setenv D /here/is/the/jail +&prompt.root; mkdir -p $D +&prompt.root; cd /usr/src +&prompt.root; make world DESTDIR=$D +&prompt.root; cd etc/ Deze stap +s niet benodigd onder &os; 6.0 en later. +&prompt.root; make distribution DESTDIR=$D +&prompt.root; mount -t devfs devfs $D/dev + + + + Het selecteren van een locatie voor een jail is het beste + begin punt. Hier zal de jail fysiek te vinden zijn binnen + het bestandssysteem van het host systeem. Een goede keuze + kan zijn + /usr/jailjailnaam, + waar jailnaam de naam is welke + de jail beschrijft. Het + /usr + bestandssysteem heeft meestal genoeg ruimte voor het jail + bestandssysteem, wat voor een complete jail + eigenlijk een replicatie is van elk bestand dat aanwezig + is in de standaard installatie van een &os; basis systeem. + + + + Dit commando zal de gekozen fysieke directory vullen + met de benodigde binaire bestanden, bibliotheken, + handleidingen, etc. Alles wordt gedaan op de typische + &os; manier, eerst wordt het systeem gebouwd, daarna + wordt het geinstalleerd in de doel directory. + + + + Het distribution doel voor + make installeert elk benodigd + configuratie bestand. In simpelere termen, het installeert + alle installeerbare bestanden in + /usr/src/etc naar de + /etc directory van + de jail omgeving: + $D/etc. + + + + Het koppelen van het &man.devfs.8; bestands systeem + is niet vereist in een jail. Aan de andere kant, vrijwel + elke applicatie heeft toegang nodig tot minstens + één apparaat, afhankelijk van het doel van + het programma. Het is erg belangrijk om toegang tot + apparaten te controleren binnenin een jail, omdat incorrecte + instellingen een aanvaller de mogelijkheid kunnen geven om + vervelende dingen in de jail te doen. De controle over + &man.defvs.8; wordt gedaan door middel van rulesets, welke + beschreven worden in de &man.devfs.8; en &man.devfs.conf.5; + handleidingen. + + + + Zodra een jail is geinstalleerd, kan het opgestart worden + door de &man.jail.8; applicatie. De &man.jail.8; applicatie + heeft vier benodigde argumenten welke beschreven worden in + . Er kunnen ook andere argumenten + gebruikt worden, om bijvoorbeeld de jail et starten met de + credenties van een specifieke gebruiker. Het + argument + hangt af van het type jail, voor een + virtueel systeem is + /etc/rc een goede keuze, omdat het de + reguliere opstart procedure nabootst van een &os; systeem. + Voor een dienst jail is het geheel afhankelijk + van de dienst of applicatie die in de jail gaat draaien. + + Jails worden over het algemeen gestart, tegelijkertijd met de + systeem start, het &os; rc mechanisme levert + een makkelijke manier om dat te doen: + + + + Een lijst van jails die opgestart moeten worden tijdens het + opstarten van het systeem, moeten worden toegevoegd aan het + &man.rc.conf.5; bestand: + + jail_enable="YES" # Stel dit in op NO om te voorkomen dat er jails gestart worden +jail_list="www" # Door spaties gescheiden lijst van namen van jails + + + + Voor elke jail die gespecificeerd is in + jail_list moet een groep van &man.rc.conf.5; + instellingen worden toegevoegd: + + jail_www_rootdir="/usr/jail/www" # de hoofd directory van de jail +jail_www_hostname="www.example.org" # de hostnaam van de jail +jail_www_ip="192.168.0.10" # het IP adres van de jail +jail_www_devfs_enable="YES" # moet devfs wel of niet gekoppeld worden in de jail +jail_www_devfs_ruleset="www_ruleset" # welke devfs ruleset moet worden gebruikt voor de jail + + De standaard opstart variabelen in &man.rc.conf.5; + gebruiken het /etc/rc bestand om de jail + op te starten, wat er vanuit gaat dat de jail een compleet + virtueel systeem is. Voor service jails moet het standaard + opstart commando worden gewijzigd door het aanpassen van de + jail_jailname_exec_start + optie. + + + Voor een complete lijst van beschikbare opties, zie de + &man.rc.conf.5; handleiding. + + + + Het /etc/rc.d/jail bestand kan worden + gebruikt om jails handmatig te starten en te stoppen, mits er + een overeenkomstige set regels bestaat in + /etc/rc.conf. + + &prompt.root; /etc/rc.d/jail start www +&prompt.root; /etc/rc.d/jail stop www - Wordt nog vertaald.