# KPPP i pitanja bezbednosti

Ova sekcija je uglavnom namenjena superkorisnicima (root) 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.

## Ograničavanje pristupa KPPP‑u

Administrator sistema može želeti da ograniči pristup, tj. odredi kome je dozvoljeno da koristi KPPP. Ovo se može postići na dva načina.

### Ograničenje pristupa preko grupnih dozvola

Stvorite novu grupu (možete je nazvati npr. dialout) i stavite svakog korisnika kome treba da bude dozvoljeno korišćenje KPPP‑a u tu grupu. Zatim upišite u terminalu:

    # chown root.dialout /opt/kde/bin/kppp
    # chmod 4750 /opt/kde/bin/kppp

Ovo pretpostavlja da je instalacija KDE‑a u `/opt/kde/` i da ste grupu nazvali dialout.

### Ograničenje pristupa preko KPPP‑a

Pre nego što išta drugo uradi, KPPP proverava da li postoji fajl po imenu `/etc/kppp.allow`. Ako postoji, samo korisnici navedeni u njemu imaju pravo da pozivaju. Ovaj fajl mora svakome biti čitljiv (ali naravno ne i upisiv). Prepoznaju se samo korisnička imena, tj. ne možete koristiti UID‑ove u ovom fajlu. Evo kratkog primera:

    # /etc/kppp.allow
    # Komentari poput ovog se ignorišu,
    # kao i prazni redovi.

    ~|pera
    laza
    mara|

U gornjem primeru, pozivanje je dozvoljeno samo korisnicima pera, laza i mara, kao i korisniku sa UID‑om 0 (te ne treba izričito da navodite root u fajlu).

## KPPP‑u je postavljen sUID? A bezbednost?

Gotovo je nemoguće napisati birač brojeva bez sUID bita koji je i bezbedan i lak za korišćenje neiskusnim korisnicima. KPPP se nosi sa bezbednosnim problemima na sledeći način.

- Odmah po pokretanju programa, KPPP se račva.

- 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.

- 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 KDE‑a 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.

- Glavni i podređeni proces komuniciraju standardnim Unix IPC‑om.

Mnogo hvala Hariju Portenu, koji je napisao ovaj izvrsni kod. Smatralo se nemogućim, a on je to završio za nedelju dana.