&kppp; e la sicurezzaQuesta sezione si rivolge principalmente a superutenti (root) con alte richieste di sicurezza, o semplicemente a persone interessate nella parte tecnica. Non è necessario leggere questa sezione se usi &Linux; a casa, sebbene potresti in ogni caso imparare qualcosa.Restringere l'accesso a &kppp;Un amministratore di sistema potrebbe voler restringere l'accesso a chi dovrebbe poter usare &kppp;. Ci sono due modi per far ciò.Restringere l'accesso con i permessi del gruppoCrea un nuovo gruppo (puoi chiamarlo ⪚ dialout o qualcosa di simile), e inserisci nel gruppo ogni utente che dovrebbe poter usare &kppp;. Digita quindi al prompt:#chown/opt/kde/bin/kppp#chmod/opt/kde/bin/kpppCiò assume che &kde; è stato installato in /opt/kde/ e che il nuovo gruppo è chiamato dialout.Restringere l'accesso nel modo di &kppp;Prima di tutto, &kppp; controlla se esiste un file chiamato /etc/kppp.allow. Se questo file esiste, solo gli utenti nominati in questo file possono effettuare connessioni. Questo file deve essere leggibile da tutti (ma ovviamente NON scrivibile). Solo i nomi di utenti sono riconosciuti, così non puoi usare UID in questo file. Qui vi è un breve esempio:# /etc/kppp.allow
# le linee di commento come questa sono ignorate
# così come le linee vuote
federico
carlo
daisy
Nell'esempio sopra, solo gli utenti federico, carlo e daisy possono effettuare connessioni, così come gli utenti con un UID uguale a 0 (così non devi elencare root esplicitamente nel file).&kppp; ha il bit SUID attivo? E la sicurezza?È virtualmente impossibile scrivere un programma per la connessione senza il bit SUID che sia allo stesso tempo sicuro e facile da usare da parte di utenti inesperti. &kppp; cerca di risolvere i problemi di sicurezza con la seguente strategia.Subito dopo l'avvio del programma, &kppp; effettua un fork.Il processo master, che gestisce tutte le operazioni dell'interfaccia grafica (come l'interazione con l'utente), perde lo stato SUID dopo il fork, e viene così eseguito con i normali privilegi dell'utente.Il processo slave mantiene i suoi privilegi, ed è responsabile di tutte le azioni che richiedono i privilegi di root. Per mantenere sicura questa parte, non sono usate chiamate a librerie &kde; o &Qt;, ma solo chiamate di libreria semplici. Il codice sorgente di questo processo è corto (circa 500 linee) e ben documentato, così è semplice da controllare in cerca di falle di sicurezza.I processi master e slave comunicano l'un l'altro con le procedure IPC (Inter-Process Communication, o comunicazione interprocesso N.d.T.) standard di &UNIX;.Particolari ringraziamenti ad Harri Porten per aver scritto in modo eccellente questa parte di codice. Si pensava che fosse impossibile, ma è riuscito a scriverla in una settimana.