<chapter id="security">
<title
>&kppp; et les problèmes de sécurité </title>

<para
>Cette section est principalement pour les superutilisateurs (<systemitem
>root</systemitem
>) qui ont des demandes en haute sécurité, ou simplement les gens techniquement intéressés. Ce n'est pas nécessaire de lire cela si vous utilisez seulement &Linux; à la maison pour vous, mais vous pouvez apprendre une chose ou deux dans tous les cas.</para>

<sect1 id="security-restricting-access">
<title
>Restreindre les accès à &kppp;</title>

<para
>Un administrateur système peut vouloir restreindre l'accès à ceux qui sont autorisés à utiliser &kppp;. Il y a deux manières principales de faire cela.</para>

<sect2 id="security-group-permissions">
<title
>Restreindre l'accès avec les permissions de groupe</title>

<para
>Créez un nouveau groupe (vous pouvez le nommer <systemitem
>numérotation</systemitem
> ou similaire), et mettez-y tous les utilisateurs qui sont autorisés à utiliser &kppp;. Alors saisissez dans le 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
>Cela suppose que &kde; a été installé dans <filename class="directory"
> /opt/kde/</filename
> et que votre nouveau groupe est nommé <systemitem
>dialout</systemitem
>.</para>

</sect2>

<sect2 id="security-kppps-way">
<title
>Restreindre l'accès à la manière de &kppp;</title>

<para
>Avant de faire quoi que ce soit, &kppp; vérifie s'il y a un fichier nommé <filename
>/etc/kppp.allow</filename
>. Si un tel fichier existe, seuls les utilisateurs nommés dans ce fichier sont autorisés à numéroter. Ce fichier doit être lisible par tout le monde (mais bien sûr <emphasis
>NON</emphasis
> accessible en écriture). Seuls les noms de login sont reconnus, ainsi vous ne pouvez pas utiliser <acronym
>UID</acronym
> dans ce fichier. Voici un court exemple :</para>

<screen
># /etc/kppp.allow
# les lignes commentées comme celle-ci sont ignorées
# tout comme les lignes vides

fred
karl
daisy
</screen>

<para
>Dans l'exemple ci-dessus, seuls les utilisateurs <systemitem
>fred</systemitem
>, <systemitem
>karl</systemitem
> et <systemitem
>daisy</systemitem
> sont autorisés à numéroter, tout comme chaque utilisateur avec un <acronym
>UID</acronym
> de 0 (ainsi vous n'avez pas à mettre explicitement <systemitem
>root</systemitem
> dans le fichier).</para>

</sect2>

</sect1>

<sect1 id="security-why-suid">
<title
>&kppp; a le bit <acronym
>SUID</acronym
> ? Qu'est ce qu'il se passe au niveau sécurité ?</title>

<para
>Il est virtuellement impossible d'écrire un numéroteur sans le bit <acronym
>SUID</acronym
> qui est à la fois sûr et facile à utiliser pour les utilisateurs non expérimentés. &kppp; répond aux problèmes de sécurité avec la stratégie suivante.</para>

<itemizedlist>
<listitem>
<para
>Immédiatement après que le programme débute, &kppp; fourche.</para>
</listitem>
<listitem>
<para
>Le processus maître, qui gère toutes les opérations de l'interface graphique comme l'interaction utilisateur, abandonne le droit <acronym
>SUID</acronym
> après la division/séparation en plusieurs processus, et tourne/continue avec les privilèges normaux de l'utilisateur.</para>
</listitem>
<listitem>
<para
>Le processus esclave conserve ses privilèges, et est responsable de toutes les actions qui ont besoin des privilèges <systemitem
>root</systemitem
>. Pour conserver cette partie sûre, aucune librairie &kde; ou &Qt; n'est appelée ici, il y a juste un appel de librairies simples. Le code source pour ce processus est court (environ 500 lignes) et bien documenté, ainsi il est facile pour vous de vérifier s'il y a des trous de sécurité.</para>
</listitem>
<listitem>
<para
>Les processus maître et esclave communiquent avec le standard &UNIX; <acronym
>IPC</acronym
>.</para>
</listitem>
</itemizedlist>

<para
>Remerciement spécial à Harri Porten pour avoir écrit cette excellente partie de code. Il semblait que cela était impossible, mais il l'a fait en une semaine.</para>

</sect1>

</chapter>
