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
>&kppp; in vprašanja varnosti</title>
<para
>Ta razdelek je v glavnem za superuporabnike (<systemitem
>root</systemitem
>), ljudi s pomembnimi varnostnimi vprašanji ali za preprosto tehnično zainteresirane ljudi. Ni vam potrebno prebrati tega, če uporabljate &Linux; samo doma za vaše potrebe (čeprav se lahko naučite kaj novega, če to preberete).</para>
<sect1 id="security-restricting-access">
<title
>Omejevanje dostopa do &kppp;</title>
<para
>Sistemski administrator bo mogoče želel omejiti dostop, komu je dovoljeno uporabljati &kppp;. Za to obstajata dva načina:</para>
<sect2 id="security-group-permissions">
<title
>Omejevanje dostopa z dovoljenji za skupine</title>
<para
>Ustvarite novo skupino (mogoče jo boste hoteli poimenovati <systemitem
>dialout</systemitem
> ali podobno), dodajte vse uporabnike, ki naj bi imeli dovoljenje za uporabo &kppp;-ja v to skupino in vtipkajte:</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
>Tukaj se privzame, da je bil &kde; nameščen v <filename class="directory"
>/usr/local/kde</filename
>in vaša nova skupina se imenuje <systemitem
>dialout</systemitem
>.</para>
</sect2>
<sect2 id="security-kppps-way">
<title
>Omejevanje dostopa na &kppp;-jev način</title>
<para
>Preden se karkoli naredi, &kppp; preveri, če obstaja datoteka imenovana <filename
>/etc/kppp.allow</filename
>. Če ta datoteka obstaja, bodo SAMO uporabniki imenovani v tej datoteki imeli dovoljenje za klicanje. Ta datoteka mora biti berljiva vsakemu uporabniku (seveda <emphasis
>NE</emphasis
> zapisljiva). Prepoznana so samo imena s katerimi se uporabniki prijavijo, zato ne morete uporabiti <acronym
>UID</acronym
>-jev v tej datoteki. Tukaj je kratek primer:</para>
<screen>
# /etc/kppp.allow
# comment lines like this are ignored
# as well as empty lines
fred
karl
daisy
</screen>
<para
>V zgornjem primeru samo uporabniki <systemitem
>fred</systemitem
>, <systemitem
>karl</systemitem
> in <systemitem
>daisy</systemitem
> lahko kličejo, kot tudi vsak uporabnik z <acronym
>UID</acronym
> nastavljen na 0. Zato vam ni potrebno postaviti uporabnika root v to datoteko.</para>
</sect2>
</sect1>
<sect1 id="security-why-suid">
<title
>&kppp; ima nastavljen <acronym
>SUID</acronym
> bit. Kaj pa varnost?</title>
<para
>Navidezno je nemogoče napisati program za klicanje brez <acronym
>SUID</acronym
> bita, ki je istočasno varen in preprost za uporabo za neizkušene uporabnike. &kppp; odgovarja na varnostna vprašanja z naslednjo strategijo:</para>
<itemizedlist
> <listitem
> <para
>Takoj ko se program zažene, se &kppp; razveji.</para
> </listitem
> <listitem
> <para
>Glavni proces (master process) (kateri skrbi za vse <acronym
>GUI</acronym
> stvari, uporabniško medsebojno delovanje in podobno) takoj za tem prekine <acronym
>SUID</acronym
> način in teče z navadnimi uporabniškimi privilegiji.</para
> </listitem
> <listitem
> <para
>Podrejeni proces (slave process) ohrani svoje privilegije in je odgovoren za akcije, ki potrebujejo privilegije <systemitem
>root</systemitem
>-a. Da ohranimo ta del varen, se tukaj ne uporabijo nobeni klici &kde; ali &Qt; knjižnic, ampak samo preprosti klici C knjižnic. Izvorna koda za ta proces je kratka (okrog 500 vrstic) in dobro dokumentirana, zato jo je lahko preveriti, če vsebuje varnostne luknje.</para
> </listitem
> <listitem
> <para
>Glavni in podrejeni proces komunicirata s standardnim &UNIX; <acronym
>IPC</acronym
>.</para
> </listitem
> </itemizedlist>
<para
>Resnično hvala Harriju Portenu, da je napisal ta odlični del kode. Jaz sem mislil, da je nemogoče - on pa jo je napisal v enem tednu.</para>
</sect1>
</chapter>
|