You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
4.0 KiB
141 lines
4.0 KiB
13 years ago
|
<chapter id="security">
|
||
|
<title
|
||
|
>&kppp; und die Sicherheit</title>
|
||
|
|
||
|
<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>
|
||
|
|
||
|
<sect1 id="security-restricting-access">
|
||
|
<title
|
||
|
>Den Zugang zu &kppp; beschränken</title>
|
||
|
|
||
|
<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>
|
||
|
|
||
|
<sect2 id="security-group-permissions">
|
||
|
<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>
|
||
|
|
||
|
<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
|
||
|
>Dabei wird vorausgesetzt, dass sich &kde; in <filename class="directory"
|
||
|
>/opt/kde</filename
|
||
|
> befindet und die neue Gruppe <systemitem
|
||
|
>dialout</systemitem
|
||
|
> heisst.</para>
|
||
|
|
||
|
</sect2>
|
||
|
|
||
|
<sect2 id="security-kppps-way">
|
||
|
<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>
|
||
|
|
||
|
<screen
|
||
|
># /etc/kppp.allow
|
||
|
# Kommentare und Leerzeilen werden ignoriert.
|
||
|
#
|
||
|
|
||
|
fred
|
||
|
karl
|
||
|
daisy
|
||
|
</screen>
|
||
|
|
||
|
<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>
|
||
|
|
||
|
</sect2>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
<sect1 id="security-why-suid">
|
||
|
<title
|
||
|
>&kppp; hat das <acronym
|
||
|
>SUID</acronym
|
||
|
>-Bit gesetzt. Wo bleibt die Sicherheit?</title>
|
||
|
|
||
|
<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>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>Gleich nach dem Programmstart startet &kppp; einen neuen Prozess.</para>
|
||
|
</listitem>
|
||
|
<listitem>
|
||
|
<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>
|
||
|
</listitem>
|
||
|
<listitem>
|
||
|
<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>
|
||
|
</listitem>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>Master- und Slaveprozess kommunizieren mit standard &UNIX; <acronym
|
||
|
>IPC</acronym
|
||
|
>.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<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>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
</chapter>
|