summaryrefslogtreecommitdiffstats
path: root/tde-i18n-sv/docs/tdenetwork/kppp/security.docbook
blob: 4738798f4fd2b489c5991be0b3a5b108e414b5bc (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>Säkerhetshänsyn med &kppp;</title>

<para>Det här avsnittet är i huvudsak ämnat för systemadministratörer (<systemitem>root</systemitem>), de med höga säkerhetskrav eller helt enkelt tekniskt intresserade. Det är inte nödvändigt att läsa det här om du bara använder &Linux; hemma själv, även om du i alla fall kan lära dig ett och annat.</para>

<sect1 id="security-restricting-access">
<title>Att begränsa tillgången till &kppp;</title>

<para>En systemadministratör kan vilja begränsa tillgången med avseende på vem som får använda &kppp;. Det finns två sätt att åstadkomma detta.</para>

<sect2 id="security-group-permissions">
<title>Att begränsa tillgången med gruppskydd</title>

<para>Skapa en ny grupp (du skulle kunna vilja döpa den till <systemitem>dialout</systemitem> eller något liknande), och lägg till alla användare som ska få lov att använda &kppp; i den här gruppen. Skriv sedan på kommandoraden:</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>Det här förutsätter att &kde; installerades i <filename class="directory"> /opt/kde/</filename> och att den nya gruppen heter <systemitem>dialout</systemitem>.</para>

</sect2>

<sect2 id="security-kppps-way">
<title>Att begränsa tillgången på &kppp;s eget sätt</title>

<para>Innan det gör någonting, kontrollerar &kppp; om det finns en fil som heter <filename>/etc/kppp.allow</filename>. Om den här filen finns, tillåts bara användare som namnges i den här filen att ringa upp. Den här filen måste vara läsbar av alla (men förstås <emphasis>INTE</emphasis> skrivbar). Bara inloggningsnamn känns igen, så du kan inte använda en <acronym>UID</acronym> i den här filen. Här är ett kort exempel:</para>

<screen># /etc/kppp.allow
# kommentarrader som den här ignoreras
# precis som tomma rader

hans
karl
lena
</screen>

<para>I det ovanstående exemplet, tillåts bara användarna <systemitem>hans</systemitem>, <systemitem>karl</systemitem> och <systemitem>lena</systemitem> att ringa upp, liksom alla användare med <acronym>UID</acronym> 0 (så du behöver inte explicit ange root i filen).</para>

</sect2>

</sect1>

<sect1 id="security-why-suid">
<title>Kppp har <acronym>SUID</acronym>-biten satt? Vad händer då med säkerheten?</title>

<para>Det är mer eller mindre omöjligt att skriva ett uppringningsprogram som både är säkert och lätt att använda för ovana användare utan att sätta <acronym>SUID</acronym>-biten. &kppp; hanterar säkerhetsproblemen med följande strategi.</para>

<itemizedlist>
<listitem>
<para>Omedelbart efter att programmet har startat, så skapar &kppp; en ny process (fork).</para>
</listitem>
<listitem>
<para>Huvudprocessen, som hanterar hela det grafiska gränssnittet med användarpåverkan, släpper <acronym>SUID</acronym>-tillståndet efter den nya processen skapats, och kör med normala användarrättigheter.</para>
</listitem>
<listitem>
<para>Den nya processen behåller sina rättigheter, och ansvarar för alla åtgärder som behöver rättigheter som <systemitem>root</systemitem>. För att hålla den här delen säker, så används inga anrop till &kde;- eller &Qt;-biblioteken, utan bara enkla biblioteksanrop. Källkoden för den här processen är kort (omkring 500 rader) och väldokumenterad, så det är lätt att kontrollera den för att hitta säkerhetsluckor.</para>
</listitem>
<listitem>
<para>Huvudprocessen och den nya processen kommunicerar med vanliga &UNIX; <acronym>IPC</acronym>.</para>
</listitem>
</itemizedlist>

<para>Särskilt tack till Harri Porten för att ha skrivit den här utmärkta koden. Det ansågs omöjligt, men han lyckades inom en vecka.</para>

</sect1>

</chapter>