<chapter id="security"> <title ><application >KPPP</application > i pitanja bezbednosti</title> <para >Ova sekcija je uglavnom namenjena superkorisnicima (<systemitem >root</systemitem >) s visokim bezbednosnim zahtevima, ili prosto zainteresovanima za tehniku. Nema potrebe da ovo čitate ako Linux koristite sami kod kuće, mada biste i tada mogli ponešto naučiti.</para> <sect1 id="security-restricting-access"> <title >Ograničavanje pristupa <application >KPPP‑u</application ></title> <para >Administrator sistema može želeti da ograniči pristup, tj. odredi kome je dozvoljeno da koristi <application >KPPP</application >. Ovo se može postići na dva načina.</para> <sect2 id="security-group-permissions"> <title >Ograničenje pristupa preko grupnih dozvola</title> <para >Stvorite novu grupu (možete je nazvati npr. <systemitem >dialout</systemitem >) i stavite svakog korisnika kome treba da bude dozvoljeno korišćenje <application >KPPP‑a</application > u tu grupu. Zatim upišite u terminalu:</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 >Ovo pretpostavlja da je instalacija <acronym >KDE‑a</acronym > u <filename class="directory" > /opt/kde/</filename > i da ste grupu nazvali <systemitem >dialout</systemitem >.</para> </sect2> <sect2 id="security-kppps-way"> <title >Ograničenje pristupa preko <application >KPPP‑a</application ></title> <para >Pre nego što išta drugo uradi, <application >KPPP</application > proverava da li postoji fajl po imenu <filename >/etc/kppp.allow</filename >. Ako postoji, samo korisnici navedeni u njemu imaju pravo da pozivaju. Ovaj fajl mora svakome biti čitljiv (ali naravno <emphasis >ne</emphasis > i upisiv). Prepoznaju se samo korisnička imena, tj. ne možete koristiti UID‑ove u ovom fajlu. Evo kratkog primera:</para> <screen ># /etc/kppp.allow # Komentari poput ovog se ignorišu, # kao i prazni redovi. ~|pera laza mara| </screen> <para >U gornjem primeru, pozivanje je dozvoljeno samo korisnicima <systemitem >pera</systemitem >, <systemitem >laza</systemitem > i <systemitem >mara</systemitem >, kao i korisniku sa UID‑om 0 (te ne treba izričito da navodite <systemitem >root</systemitem > u fajlu).</para> </sect2> </sect1> <sect1 id="security-why-suid"> <title ><application >KPPP‑u</application > je postavljen sUID? A bezbednost?</title> <para >Gotovo je nemoguće napisati birač brojeva bez sUID bita koji je i bezbedan i lak za korišćenje neiskusnim korisnicima. <application >KPPP</application > se nosi sa bezbednosnim problemima na sledeći način.</para> <itemizedlist> <listitem> <para >Odmah po pokretanju programa, <application >KPPP</application > se račva. </para> </listitem> <listitem> <para >Glavni proces, koji rukuje svim GUI postupcima (poput interakcije sa korisnikom), posle račvanja uklanja sUID stanje, nastavljajući rad sa ovlašćenjima običnog korisnika. </para> </listitem> <listitem> <para >Podređeni proces zadržava svoja ovlašćenja, i nadležan je za sve radnje koje zahtevaju korena ovlašćenja. Da bi se ovaj deo održao bezbednim, ne koristi se nijedan poziv iz biblioteke <acronym >KDE‑a</acronym > ili Qt‑a, već samo osnovni pozivi. Izvorni kod za ovaj proces je kratak (oko 500 redova) i dobro dokumentovan, tako da možete i sami potražiti bezbednosne rupe u njemu.</para> </listitem> <listitem> <para >Glavni i podređeni proces komuniciraju standardnim Unix IPC‑om.</para> </listitem> </itemizedlist> <para >Mnogo hvala <personname ><firstname >Hariju</firstname > <surname >Portenu</surname ></personname >, koji je napisao ovaj izvrsni kod. Smatralo se nemogućim, a on je to završio za nedelju dana. </para> </sect1> </chapter>