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
|
<chapter id="security">
<title
>Sikkerhedshensyn med &kppp;</title>
<para
>Dette afsnit er i hovedsagelig beregnet for systemadministratorer (<systemitem
>root</systemitem
>), de med høje sikkerhedskrav eller helt enkelt teknisk interesserede. Det er ikke nødvendigt at læse dette hvis du kun anvender &Linux; selv derhjemme, selvom du i alle tilfælde kan lære et og andet.</para>
<sect1 id="security-restricting-access">
<title
>Begræns adgangen til &kppp;</title>
<para
>En systemadministrator kan ville begrænse adgangen med hensyn til hvem der får lov at bruge &kppp;. Der findes to måder at opnå dette.</para>
<sect2 id="security-group-permissions">
<title
>Begræns adgangen med gruppetilladelser</title>
<para
>Opret en ny gruppe (du vil måske kalde den til <systemitem
>dialout</systemitem
> eller noget lignende), og tilføj alle brugere som skal få lov til at anvende &kppp; til denne gruppe. Skriv derefter på kommandolinjen:</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
>Dette forudsætter at &kde; installeredes i <filename class="directory"
> /opt/kde/</filename
> og at den nye gruppe hedder <systemitem
>dialout</systemitem
>.</para>
</sect2>
<sect2 id="security-kppps-way">
<title
>Begræns adgangen på &kppp;s egen måde</title>
<para
>Inden den gør noget, kontrollerer &kppp; om der findes en fil som hedder <filename
>/etc/kppp.allow</filename
>. Hvis denne fil findes, tillades kun brugere som nævnes i denne fil at ringe op. Denne fil skal være læsbar af alle (men selvfølgelig <emphasis
>IKKE</emphasis
> skrivbar). Kun brugernavne genkendes, så du kan ikke anvende en <acronym
>UID</acronym
> i denne fil. Her er et kort eksempel:</para>
<screen
># /etc/kppp.allow
# kommentarlinjer som denne ignoreres
# præcis som tomme linjer
hans
karl
lene
</screen>
<para
>I ovenstående eksempel, tillades kun brugerne <systemitem
>hans</systemitem
>, <systemitem
>karl</systemitem
> og <systemitem
>lene</systemitem
> at ringe op, så vel som alle brugere med <acronym
>UID</acronym
> 0 (så du behøver ikke eksplicit angive root i filen).</para>
</sect2>
</sect1>
<sect1 id="security-why-suid">
<title
>Kppp har <acronym
>SUID</acronym
>-bitten sat? Hvad sker der så med sikkerheden?</title>
<para
>Det er mere eller mindre umuligt at skrive et opkaldsprogram som både er sikkert og let at anvende for uerfarne brugere uden at sætte <acronym
>SUID</acronym
>-bitten. &kppp; håndterer sikkerhedsproblemerne med følgende strategi.</para>
<itemizedlist>
<listitem>
<para
>Umiddelbart efter at programmet er startet, så skaber &kppp; en ny proces (fork).</para>
</listitem>
<listitem>
<para
>Hovedprocessen, som håndterer hele den grafiske grænsefladen med brugerpåvirkning, slipper <acronym
>SUID</acronym
>-tilstanden efter den nye processen er lavet, og kørt med normale brugerrettigheder.</para>
</listitem>
<listitem>
<para
>Den nye proces beholder sine rettigheder, og har ansvaret for alle handlinger som behøver rettigheder som <systemitem
>root</systemitem
>. For at holde denne del sikker, så anvendes ingen kald til &kde;- eller &Qt;-biblioteker, bortset fra enkle bibliotekskald. Kildekoden for denne proces er kort (omkring 500 linjer) og veldokumenteret, så det er let at kontrollere den for at finde sikkerhedshuller.</para>
</listitem>
<listitem>
<para
>Hovedprocessen og den nye proces kommunikerer med almindelige &UNIX; <acronym
>IPC</acronym
>.</para>
</listitem>
</itemizedlist>
<para
>Særlig tak til Harri Porten for at have skrevet denne udmærkede kode. Det ansås for at være umuligt, men det lykkedes for ham på en uge.</para>
</sect1>
</chapter>
|