summaryrefslogtreecommitdiffstats
path: root/tde-i18n-pt/docs/tdenetwork/kppp/security.docbook
blob: 293ae4617011a8d32da3f6c9597afa2d2918d87b (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<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>