Date: Mon, 28 Jul 2008 20:18:55 GMT From: Remko Lodder <remko@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 146154 for review Message-ID: <200807282018.m6SKItoC072058@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 @@ <sect2 id="jails-what"> <title>Wat is een jail</title> - <para>BSD achtige systemen + <para>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.</para> + + <para>Dit is één van de redenen waarom jails zijn + ontwikkeld.</para> + + <para>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 <xref linkend="jails-tuning">.</para> + + <para>Een jail heeft vier kenmerken:</para> + + <itemizedlist> + <listitem> + <para>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.</para> + </listitem> + + <listitem> + <para>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.</para> + </listitem> + + <listitem> + <para>Een <acronym>IP</acronym> 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.</para> + </listitem> + + <listitem> + <para>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.</para> + </listitem> + </itemizedlist> + + <para>Buiten deze kenmerken, kunnen jails hun eigen set aan + gebruikers, en <username>root</username> gebruiker hebben. + Uiteraard zijn de mogelijkheden van de <username>root</username> + gebruiker beperkt tot de jail omgeving en, vanuit het host systeem + gezien, is de <username>root</username> gebruiker geen opper + gebruiker. Daarnaast is het de <username>root</username> + 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 <username>root</username> gebruiker kan + gevonden worden in <xref linkend="jails-tuning"> hieronder.</para> </sect2> </sect1> <sect1 id="jails-build"> - <title>* Creeëren en controleren van jails</title> + <title>Creeëren en controleren van jails</title> + + <para>Sommige beheerders kiezen ervoor om jails op te delen in + de volgende twee types: <quote>complete</quote> jails, welke + een volledig &os; systeem nabootsen en <quote>service</quote> + 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:</para> + + <screen>&prompt.root; <userinput>setenv D <replaceable>/here/is/the/jail</replaceable></userinput> +&prompt.root; <userinput>mkdir -p $D</userinput> <co id="jailpath"> +&prompt.root; <userinput>cd /usr/src</userinput> +&prompt.root; <userinput>make world DESTDIR=$D</userinput> <co id="jailworld"> +&prompt.root; <userinput>cd etc/</userinput> <footnote><para>Deze stap +s niet benodigd onder &os; 6.0 en later.</para></footnote> +&prompt.root; <userinput>make distribution DESTDIR=$D</userinput> <co id="jaildistrib"> +&prompt.root; <userinput>mount -t devfs devfs $D/dev</userinput> <co id="jaildevfs"></screen> + + <calloutlist> + <callout arearefs="jailpath"> + <para>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 + <filename role="directory">/usr/jail<replaceable>jailnaam</replaceable></filename>, + waar <replaceable>jailnaam</replaceable> de naam is welke + de jail beschrijft. Het + <filename role="directory">/usr</filename> + bestandssysteem heeft meestal genoeg ruimte voor het jail + bestandssysteem, wat voor een <quote>complete</quote> jail + eigenlijk een replicatie is van elk bestand dat aanwezig + is in de standaard installatie van een &os; basis systeem.</para> + </callout> + + <callout arearefs="jailworld"> + <para>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.</para> + </callout> + + <callout arearefs="jaildistrib"> + <para>Het <maketarget>distribution</maketarget> doel voor + <application>make</application> installeert elk benodigd + configuratie bestand. In simpelere termen, het installeert + alle installeerbare bestanden in + <filename role="directory">/usr/src/etc</filename> naar de + <filename role="directory">/etc</filename> directory van + de jail omgeving: + <filename role="directory">$D/etc</filename>.</para> + </callout> + + <callout arearefs="jaildevs"> + <para>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.</para> + </callout> + </calloutlist> + + <para>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 + <xref linkend="jails-what">. Er kunnen ook andere argumenten + gebruikt worden, om bijvoorbeeld de jail et starten met de + credenties van een specifieke gebruiker. Het + <option><replaceable>commando</replaceable></option> argument + hangt af van het type jail, voor een + <emphasis>virtueel systeem</emphasis> is + <filename>/etc/rc</filename> een goede keuze, omdat het de + reguliere opstart procedure nabootst van een &os; systeem. + Voor een <emphasis>dienst</emphasis> jail is het geheel afhankelijk + van de dienst of applicatie die in de jail gaat draaien.</para> + + <para>Jails worden over het algemeen gestart, tegelijkertijd met de + systeem start, het &os; <filename>rc</filename> mechanisme levert + een makkelijke manier om dat te doen:</para> + + <procedure> + <step> + <para>Een lijst van jails die opgestart moeten worden tijdens het + opstarten van het systeem, moeten worden toegevoegd aan het + &man.rc.conf.5; bestand:</para> + + <programlisting>jail_enable="YES" # Stel dit in op NO om te voorkomen dat er jails gestart worden +jail_list="<replaceable>www</replaceable>" # Door spaties gescheiden lijst van namen van jails</programlisting> + </step> + + <step> + <para>Voor elke jail die gespecificeerd is in + <varname>jail_list</varname> moet een groep van &man.rc.conf.5; + instellingen worden toegevoegd:</para> + + <programlisting>jail_<replaceable>www</replaceable>_rootdir="/usr/jail/www" # de hoofd directory van de jail +jail_<replaceable>www</replaceable>_hostname="<replaceable>www</replaceable>.example.org" # de hostnaam van de jail +jail_<replaceable>www</replaceable>_ip="192.168.0.10" # het IP adres van de jail +jail_<replaceable>www</replaceable>_devfs_enable="YES" # moet devfs wel of niet gekoppeld worden in de jail +jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</replaceable>" # welke devfs ruleset moet worden gebruikt voor de jail</programlisting> + + <para>De standaard opstart variabelen in &man.rc.conf.5; + gebruiken het <filename>/etc/rc</filename> 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 + <varname>jail_<replaceable>jailname</replaceable>_exec_start</varname> + optie.</para> + + <note> + <para>Voor een complete lijst van beschikbare opties, zie de + &man.rc.conf.5; handleiding.</para> + </note> + </procedure> + + <para>Het <filename>/etc/rc.d/jail</filename> bestand kan worden + gebruikt om jails handmatig te starten en te stoppen, mits er + een overeenkomstige set regels bestaat in + <filename>/etc/rc.conf</filename>.</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/jail start <replaceable>www</replaceable></userinput> +&prompt.root; <userinput>/etc/rc.d/jail stop <replaceable>www</replaceable></userinput></screen> - <para>Wordt nog vertaald.</para> </sect1> <sect1 id="jails-tuning">
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200807282018.m6SKItoC072058>