<para>Esta sección está mayormente indicada para los administradores (<systemitem>root</systemitem>) con importantes demandas en seguridad, o simplemente a quién tenga un interés técnico. No es necesario leerlo si únicamente utiliza &Linux; a nivel doméstico, aunque siempre puede aprender algo.</para>
<title>Restricción de acceso con permisos de grupo</title>
<para>Cree un nuevo grupo (quizá llamado <systemitem>dialout</systemitem> o similar), y ponga a todos los usuarios a los que se les permita usar &kppp; en ese grupo. Después teclee en la línea de órdenes:</para>
<para>Esto asume que &kde; está instalado en <filename class="directory"> /opt/kde/</filename> y que el nuevo grupo se llama <systemitem>dialout</systemitem>.</para>
<title>Restricción de acceso por el método de &kppp;</title>
<para>Antes de hacer nada, &kppp; comprueba si hay un archivo llamado <filename>/etc/kppp.allow</filename>. Si dicho archivo existe, sólo les estará permitido llamar a los usuarios nombrados en el mismo. El archivo debe ser legible (pero por supuesto <emphasis>NO</emphasis> puede ser escrito). Sólo se reconocen los nombres de usuario, así que no se pueden utilizar identificadores de usuario (<acronym>UID</acronym>) en este archivo. Este es un pequeño ejemplo:</para>
<para>En el ejemplo anterior, sólo los usuarios <systemitem>fred</systemitem>, <systemitem>karl</systemitem> y <systemitem>daisy</systemitem> pueden efectuar llamadas, así como cualquier usuario con un <acronym>UID</acronym> de 0 (de modo que no hay que incluir a root específicamente).</para>
<para>Es virtualmente imposible escribir un sistema de llamadas telefónicas sin el bit <acronym>SUID</acronym> que sea al mismo tiempo fiable y sencillo de utilizar para los usuarios inexpertos. &kppp; aborda los problemas de seguridad con la siguiente estrategia.</para>
<para>El proceso maestro, que se ocupa de todas las operaciones del entorno gráfico (como la interacción con el usuario), abandona el estado <acronym>SUID</acronym> tras la división, y se ejecuta con privilegios de usuario normal.</para>
<para>El proceso esclavo mantiene sus privilegios, y es el responsable de todas las acciones que necesitan privilegios de <systemitem>root</systemitem>. Para mantener esta parte segura, aquí no se utiliza ninguna llamada a las bibliotecas de &kde; o &Qt;, sólo se hacen llamadas a bibliotecas sencillas. El código fuente de este proceso es corto (unas 500 líneas) y está muy bien documentados, así que es fácil buscar agujeros de seguridad.</para>
<para>Un agradecimiento especial a Harri Porten por escribir este excelente segmento de código. Se pensaba que era imposible, pero el lo resolvió en una semana.</para>