<para>Dieses Kapitel ist hauptsächlich für Administratoren(<systemitem>root</systemitem>), Leute mit hohen Sicherheitsansprüchen oder einfach technisch Interessierte. Es ist nicht notwendig, dieses Kapitel zu lesen, wenn Sie nur &Linux; für sich zu Hause laufen lassen (obwohl Sie vielleicht etwas Neues lernen könnten, wenn Sie es lesen).</para>
<para>Ein Systemadministrator möchte vielleicht Zugang zu &kppp; auf diejenigen beschränken, denen es erlaubt ist, es zu benutzen. Es gibt zwei Wege, dies zu tun:</para>
<title>Den Zugang zu &kppp; durch Gruppenrechte beschränken</title>
<para>Man erstellt zunächst eine neue Benutzergruppe (sie könnte z.B. <systemitem>dialout</systemitem> heissen) und fügt jeden Benutzer, der &kppp; benutzen darf, zu dieser Gruppe hinzu. Dann tippt man folgendes ein:</para>
<para>Dabei wird vorausgesetzt, dass sich &kde; in <filename class="directory">/opt/kde</filename> befindet und die neue Gruppe <systemitem>dialout</systemitem> heisst.</para>
<title>Den Zugang mit den Mitteln von &kppp; beschränken</title>
<para>Beim Start überprüft &kppp;, ob eine Datei <filename>/etc/kppp.allow</filename> existiert. Falls es eine solche Datei gibt, können nur Benutzer, die in dieser Datei aufgelistet sin, eine Verbindung herstellen. Diese Datei muss für jeden Benutzer lesbar sein (natürlich <emphasis>nicht</emphasis> für jeden schreibbar). Nur Benutzernamen werden erkannt, man kann also keine <acronym>UID</acronym> verwenden. Hier ein kurzes Beispiel:</para>
<para>Im obigen Beispei dürfen nur die Benutzer <systemitem>fred</systemitem>, <systemitem>karl</systemitem> und <systemitem>daisy</systemitem> eine Verbindung herstellen. Außerdem darf das jeder Benutzer mit der <acronym>UID</acronym> 0 (daher muss root nicht explizit genannt werden).</para>
<para>Es ist realistisch gesehen nicht möglich, ein Wählprogramm ohne gesetztes <acronym>SUID</acronym>-Bit zu schreiben, das sicher und dabei für unerfahrene Benutzer einfach zu benutzen ist. &kppp; geht das Sicherheitsproblem mit folgender Strategie an:</para>
<para>Der Masterprozess (der die <acronym>GUI</acronym>, Benutzerinteraktion u.ä. verwaltet) legt den <acronym>SUID</acronym>-Status danach ab und läuft dann mit den normalen Benutzerprivilegien.</para>
<para>Der Slaveprozess behält seine Privilegien bei und kümmert sich um alles, für das man <systemitem>root</systemitem>-Rechte benötigt. Um diesen Teil sicher zu machen, werden hier keine Funktionen der &kde;-/&Qt;-Bibliotheken aufgerufen, sondern nur einfache Funktionen der C-Bibliothek. Der Quellcode für diesen Prozess ist kurz (etwa 500 Zeilen) und gut dokumentiert. Dadurch ist es einfach, Sicherheitslöcher zu entdecken.</para>
<para>Vielen Dank an Harri Porten für das Schreiben dieses exzellenten Quelltextes. Ich dachte, es sei unmöglich - er schrieb es in einer Woche.</para>