summaryrefslogtreecommitdiffstats
path: root/tde-i18n-pt/docs/tdenetwork/kppp/security.docbook
blob: d3e858a6636e934920671fc6f4adfd897657f1f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<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>