# Sikkerhedshensyn med &kppp;

Dette afsnit er i hovedsagelig beregnet for systemadministratorer (`root`), 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.

## Begræns adgangen til &kppp;

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.

### Begræns adgangen med gruppetilladelser

Opret en ny gruppe (du vil måske kalde den til `dialout` eller noget lignende), og tilføj alle brugere som skal få lov til at anvende &kppp; til denne gruppe. Skriv derefter på kommandolinjen:

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

Dette forudsætter at &kde; installeredes i `/opt/kde/` og at den nye gruppe hedder `dialout`.

### Begræns adgangen på &kppp;s egen måde

Inden den gør noget, kontrollerer &kppp; om der findes en fil som hedder `/etc/kppp.allow`. 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 IKKE skrivbar). Kun brugernavne genkendes, så du kan ikke anvende en UID i denne fil. Her er et kort eksempel:

    # /etc/kppp.allow
    # kommentarlinjer som denne ignoreres
    # præcis som tomme linjer

    hans
    karl
    lene

I ovenstående eksempel, tillades kun brugerne `hans`, `karl` og `lene` at ringe op, så vel som alle brugere med UID 0 (så du behøver ikke eksplicit angive root i filen).

## Kppp har SUID-bitten sat? Hvad sker der så med sikkerheden?

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 SUID-bitten. &kppp; håndterer sikkerhedsproblemerne med følgende strategi.

- Umiddelbart efter at programmet er startet, så skaber &kppp; en ny proces (fork).

- Hovedprocessen, som håndterer hele den grafiske grænsefladen med brugerpåvirkning, slipper SUID-tilstanden efter den nye processen er lavet, og kørt med normale brugerrettigheder.

- Den nye proces beholder sine rettigheder, og har ansvaret for alle handlinger som behøver rettigheder som `root`. 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.

- Hovedprocessen og den nye proces kommunikerer med almindelige &UNIX; IPC.

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.