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.1 KiB
141 lines
4.1 KiB
13 years ago
|
<chapter id="security">
|
||
|
<title
|
||
|
>O &kppp; e os problemas de segurança</title>
|
||
|
|
||
|
<para
|
||
|
>Esta secção é principalmente para os super-utilizadores (o <systemitem
|
||
|
>root</systemitem
|
||
|
>) com grandes necessidades de segurança, ou simplesmente para as pessoas interessadas tecnicamente. Não é necessário ler isto se você usa o &Linux; em casa para si, ainda que possa aprender uma ou duas coisas, de qualquer forma.</para>
|
||
|
|
||
|
<sect1 id="security-restricting-access">
|
||
|
<title
|
||
|
>Restringir o acesso ao &kppp;</title>
|
||
|
|
||
|
<para
|
||
|
>Um administrador de sistemas poderá querer restringir o acesso às pessoas que têm permissão para usar o &kppp;. Existem duas formas de o conseguir.</para>
|
||
|
|
||
|
<sect2 id="security-group-permissions">
|
||
|
<title
|
||
|
>Restringir o acesso com as permissões do grupo</title>
|
||
|
|
||
|
<para
|
||
|
>Crie um novo grupo (você poderá querer chamar-lhe <systemitem
|
||
|
>ligacao</systemitem
|
||
|
> ou algo do género), e colocar todos os utilizadores que poderão usar o &kppp; nesse grupo. A partir daí, escreva na linha de comandos:</para>
|
||
|
|
||
|
<screen
|
||
|
><prompt
|
||
|
>#</prompt
|
||
|
> <userinput
|
||
|
><command
|
||
|
>chown</command
|
||
|
> <option
|
||
|
>root.ligacao</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
|
||
|
>Isto irá assumir que o &kde; foi instalado em <filename class="directory"
|
||
|
> /opt/kde/</filename
|
||
|
> e que o seu grupo se chama <systemitem
|
||
|
>ligacao</systemitem
|
||
|
>.</para>
|
||
|
|
||
|
</sect2>
|
||
|
|
||
|
<sect2 id="security-kppps-way">
|
||
|
<title
|
||
|
>Restringir a forma de acesso do &kppp;</title>
|
||
|
|
||
|
<para
|
||
|
>Antes de fazer algo, o &kppp; verifica se existe um ficheiro chamado <filename
|
||
|
>/etc/kppp.allow</filename
|
||
|
>. Se existir, só os utilizadores indicados neste ficheiro poderão estabelecer a ligação. Este ficheiro deverá ser legível por todos (mas obviamente <emphasis
|
||
|
>NÃO</emphasis
|
||
|
> poderá ter permissões de escrita.) Só os nomes dos utilizadores serão reconhecidos, por isso você não poderá usar os <acronym
|
||
|
>UID</acronym
|
||
|
>'s neste ficheiro. Aqui está um pequeno exemplo:</para>
|
||
|
|
||
|
<screen
|
||
|
># /etc/kppp.allow
|
||
|
# as linhas de comentário semelhantes a esta
|
||
|
# são ignoradas, assim como as linhas em branco
|
||
|
|
||
|
ze
|
||
|
pedro
|
||
|
manel
|
||
|
</screen>
|
||
|
|
||
|
<para
|
||
|
>No exemplo acima, só os utilizadores <systemitem
|
||
|
>ze</systemitem
|
||
|
>, <systemitem
|
||
|
>pedro</systemitem
|
||
|
> e <systemitem
|
||
|
>manel</systemitem
|
||
|
> é que têm permissões para estabelecer a ligação, assim como todos os utilizadores com um <acronym
|
||
|
>UID</acronym
|
||
|
> igual a 0 (por isso, você não terá de pôr explicitamente o 'root' nesse ficheiro).</para>
|
||
|
|
||
|
</sect2>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
<sect1 id="security-why-suid">
|
||
|
<title
|
||
|
>O &kppp; tem o bit <acronym
|
||
|
>SUID</acronym
|
||
|
> activo? E a segurança?</title>
|
||
|
|
||
|
<para
|
||
|
>É virtualmente possível criar um activador de ligações sem o 'bit' <acronym
|
||
|
>SUID</acronym
|
||
|
> activo e que seja tanto seguro como simples de usar por utilizadores pouco experientes. O &kppp; trata das questões de segurança com a seguinte estratégia.</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>Logo a seguir ao início do programa, o &kppp; faz um 'fork'.</para>
|
||
|
</listitem>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>O processo-pai, que trata de todas as operações de <acronym
|
||
|
>GUI</acronym
|
||
|
> (como a interacção com o utilizador), descarta o estado <acronym
|
||
|
>SUID</acronym
|
||
|
> a seguir ao 'fork', e corre com permissões de utilizador normal.</para>
|
||
|
</listitem>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>O processo-filho mantém os seus privilégios e é responsável por todas as acções que necessitem de privilégios do <systemitem
|
||
|
>root</systemitem
|
||
|
>. Para manter esta parte segura, não são usadas chamadas de bibliotecas do &kde; ou do &Qt; aqui, somente chamadas de bibliotecas simples. O código-fonte para este processo é pequeno (à volta de 500 linhas) e está bem documentado, por isso é fácil detectar nele falhas de segurança.</para>
|
||
|
</listitem>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>Os processos-pai e filho comunicam com o <acronym
|
||
|
>IPC</acronym
|
||
|
> normal do &UNIX;.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<para
|
||
|
>Muito obrigado ao Harri Porten por ter escrito este pedaço excelente de código. Pensou-se que seria impossível, mas ele conseguiu fazê-lo numa semana.</para>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
</chapter>
|