<chapter id="security"> <title >&kppp; en beveiliging</title> <para >Deze sectie is hoofdzakelijk voor de systeembeheerder (<systemitem >root</systemitem >) met hoge beveiligingsniveaus of eenvoudig technisch geïnteresseerde mensen. Het is niet nodig dit te lezen als u &Linux; alleen thuis voor uzelf gebruikt, hoewel u er wel wat van op kan steken.</para> <sect1 id="security-restricting-access"> <title >Beperking van toegang tot &kppp;</title> <para >Een systeembeheerder zou de toegang willen beperken tot wie het is toegestaan om &kppp; te gebruiken. Er zijn twee manieren om dat te doen.</para> <sect2 id="security-group-permissions"> <title >Beperking van toegang met groepstoegangsrechten</title> <para >Maak ee nieuwe groep aan (deze zou de naam <systemitem >dialout</systemitem > of zoiets) kunnen krijgen en zet elke gebruiker die &kppp; mag gebruiken in die groep. Type daarna op de prompt:</para> <screen ><prompt >#</prompt > <userinput ><command >chown</command > <option >root.dialout</option > <filename >/opt/kde/bin/kppp</filename ></userinput> <prompt >#</prompt > <userinput ><command >chmod</command > <option >4750</option > <filename >/opt/kde/bin/kppp</filename ></userinput > </screen> <para >Hierbij is aangenomen dat &kde; is geïnstalleerd in <filename class="directory" > /opt/kde/</filename > en dat uw nieuwe groep de naam <systemitem >dialout</systemitem > heeft gekregen.</para> </sect2> <sect2 id="security-kppps-way"> <title >Beperking van toegang op de manier van &kppp;</title> <para >Alvorens iets te doen, controleert &kppp; of er een bestand genaamd <filename >/etc/kppp.allow</filename > is. Als zo'n bestand bestaat, dan mogen alleen gebruikers genoemd in dit bestand uitbellen. Dit bestand moet leesbaar zijn door iedereen (maar natuurlijk <emphasis >NIET</emphasis > beschrijfbaar.) Alleen aanmeldnamen worden herkend, zodat u geen <acronym >UID</acronym >'s in dit bestand kunt gebruiken. Hier is een kort voorbeeld:</para> <screen ># /etc/kppp.allow # commentaar regels zoals deze worden genegeerd # evenals lege regels fred karl daisy </screen> <para >In het bovenstaande voorbeeld mogen alleen de gebruikers <systemitem >fred</systemitem >, <systemitem >karl</systemitem > en <systemitem >daisy</systemitem > uitbellen, evenals elke gebruiker met een <acronym >UID</acronym > van 0 (u hoeft root dus niet expliciet in deze lijst op te nemen).</para> </sect2> </sect1> <sect1 id="security-why-suid"> <title >&kppp; heeft het <acronym >SUID</acronym > bit aan? Hoe zit dat met de beveiliging?</title> <para >Het is vrijwel onmogelijk om een uitbel systeem te schrijven zonder het <acronym >SUID</acronym >-bit dat zowel veilig is als voor onervaren gebruikers gemakkelijk te gebruiken. &kppp; houdt rekening met de beveiligingszaken met de volgende strategie.</para> <itemizedlist> <listitem> <para >Onmiddellijk nadat het programma start, doet &kppp; een fork.</para> </listitem> <listitem> <para >Het hoofdproces, dat alle <acronym >GUI</acronym >-bewerkingen uitvoert (zoals interactie met de gebruiker), laat de <acronym >SUID</acronym >-status vallen na de fork en draait met normale gebruikersprivileges.</para> </listitem> <listitem> <para >Het slave-proces behoudt zijn privileges en is verantwoordelijk voor alle acties die nodig zijn met <systemitem >root</systemitem >-privileges. Om dit gedeelte veilig te houden, worden hier geen &kde;- of &Qt;- bibliotheekaanroepen gebruikt, alleen eenvoudige bibliotheekaanroepen. De broncode voor dit proces is kort (ongeveer 500 regels) en goed gedocumenteerd, zodat het gemakkelijk voor u is om te controleren op beveiligingsgaten.</para> </listitem> <listitem> <para >Hoofd- en slave-processen communiceren met standaard &UNIX; <acronym >IPC</acronym >.</para> </listitem> </itemizedlist> <para >Speciale dank gaat naar Harri Porten voor het schrijven van dit uitzonderlijke stuk code. Het leek onmogelijk, maar hij heeft het binnen een week gedaan.</para> </sect1> </chapter>