&kppp; e la sicurezza Questa 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 gruppo Crea 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/kppp Ciò 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 <acronym>SUID</acronym> 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.