Capitolo 5. Controllo dell'accesso ai servizi

È estremamente importante mantenere il proprio sistema Red Hat Linux sicuro. Un modo per gestire la sicurezza del sistema è quello di controllare l'accesso ai servizi. Il vostro sistema può dover fornire libero accesso a servizi particolari (per esempio, httpd se state eseguendo un server.

Esistono diversi metodi per gestire l'accesso ai servizi del sistema. Essi variano in funzione del servizio, della configurazione del sistema e del livello di conoscenza di Linux.

Il modo più semplice per rifiutare l'accesso a un servizio è di disattivarlo.. Sia i sistemi gestiti da xinetd (di cui parleremo in dettaglio nei seguenti paragrafi) che i sistemi nella gerarchia di /etc/rc.d possono essere configurati affinché si attivino o disattivino usando l'utility ntsysv o il comando chkconfig. Vi renderete forse conto che è più semplice usare questi tool piuttosto di modificare manualmente i numerosi link simbolici presenti nelle directory sotto /etc/rc.d o i file di configurazione xinetd in /etc/xinetd.d.

L'utility ntsysv fornisce un'interfaccia semplice per l'attivazione e la disattivazione di servizi. Potete usare ntsysv per attivare o disattivare un servizio gestito da xinetd oppure un servizio nella gerarchia di /etc/rc.d; in questo caso, il comando ntsysv (senza opzioni) configura il vostro runlevel attuale. Se volete configurare un runlevel diverso, usate un comando come ntsysv --levels 016. In questo esempio, state impostando i servizi per i runlevel 0, 1 e 6.

L'interfaccia ntsysv funziona come il programma di installazione in modalità testo. Usate le frecce su e giù per scorrere l'elenco. La barra spaziatrice seleziona/deseleziona servizi e permette di "premere" i pulsanti Ok e Cancel. Per spostarvi fra l'elenco dei servizi e i pulsanti Ok e Cancel, usate il tasto Tab. L'asterisco * indica che un servizio è attivo. Il tasto F1 visualizza una breve descrizione dei singoli servizi.

Anche il comando chkconfig può attivare e disattivare servizi. Digitando il comando chkconfig --list, visualizzate l'elenco dei servizi di sistema e il loro stato di funzionamento (on o off) nei runlevel 0-6 (alla fine dell'elenco è presente una sezione per i servizi gestiti da xinetd, di cui parleremo più avanti in questo capitolo).

Se usate chkconfig --list per interrogare un servizio gestito da xinetd, vedete se il servizio xinetd è attivato o disattivato. Per esempio, il comando seguente mostra che finger è attivato come servizio xinetd:

$ chkconfig --list finger
finger          on

Come indicato sopra, se xinetd è in esecuzione, finger è attivato.

Se usate chkconfig --list per interrogare un servizio in /etc/rc.d, compaiono i parametri del servizio per ogni runlevel. Esempio:

$ /sbin/chkconfig --list anacron
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off

Cosa ancora più importante, chkconfig puòessere usato per attivare un servizio (oppure no) in un runlevel specifico. Per esempio, se vogliamo spegnere nscd nei runlevel 3, 4 e 5, usiamo un comando simile a:

chkconfig --level 345 nscd off

Per maggiori informazioni, consultate la pagina man di chkconfig.

AttenzioneAttivazione delle modifiche
 

Le modifiche non sono attive immediatamente dopo la digitazione del comando ntsysv o chkconfig. Dovete infatti avviare o arrestare il servizio con il comando service demone stop. Nell'esempio, sostituite demone con il nome del servizio che volete fermare; per esempio, httpd. Sostituite stop con start o restart per avviare o riavviare il servizio. Se volete avviare o fermare un servizio gestito da xinetd, usate il comando service xinetd restart.

Per controllare l'accesso ai servizi Internet, potete usare xinetd, un valido sostituto di inetd. Il demone xinetd riduce l'uso delle risorse di sistema, fornisce un controllo dell'accesso e permette di avviare server per scopi specifici. xinetd puòessere usato per fornire l'accesso solo da host particolari per rifiutare l'accesso a host particolari, fornire l'accesso a un servizio in determinati momenti della giornata, per limitare il flusso di connessioni in entrata e/o il carico creato dalle connessioni, ecc.

xinetd è sempre in esecuzione e attende le richieste su tutte le porte dei servizi che gestisce. Quando rileva una richiesta di connessione per uno dei servizi che gestisce, xinetd avvia il server adeguato per quel servizio.

Il file di configurazione di xinetd è /etc/xinetd.conf, ma, osservando tale file, noterete che contiene alcuni impostazioni di default e un'istruzione per includere la directory /etc/xinetd.d. Per attivare o disattivare un servizio xinetd, modificate il relativo file di configurazione nella directory /etc/xinetd.d. Se il parametro disable è impostato su yes, il servizio è inattivo. Se il parametro disable è attivato su no , il servizio è attivo. Se modificate uno dei file di configurazione xinetd o cambiate lo stato di attivazione usando ntsysv o chkconfig, riavviate xinetd con il comando service xinetd restart per attivare le modifiche.

Molti amministratori UNIX sono abituati a usare i wrapper TCP per gestire l'accesso ad alcuni servizi di rete. Tutti i servizi di rete gestiti da xinetd (nonché tutti i programmi con supporto incorporato per le libwrap) possono usare i wrapper TCP per la gestione dell'accesso. xinetd può usare i file /etc/hosts.allow e /etc/hosts.deny per configurare l'accesso ai servizi di sistema. Se desiderate usare i wrapper TCP, consultate la pagina man hosts_access (5).

Un altro modo di gestire l'accesso ai servizi di sistema è quello di utilizzare ipchains per configurare un firewall IP. La configurazione di ipchains può essere complessa ed è perciò più adatta agli amministratori di sistemi UNIX/Linux esperti.

D'altro canto, il vantaggio di ipchains è la sua flessibilità. Per esempio, se vi serve una soluzione personalizzata che fornisca ad alcuni host un accesso a determinati servizi, ipchains è il comando adatto. Consultate il Linux IPCHAINS-HOWTO all'indirizzo http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html per maggiori informazioni su ipchains. Linux IPCHAINS-HOWTO è inoltre disponibile nel CD di documentazione.

Se invece cercate un'utility che imposti regole generali di accesso per la vostra macchina e/o se avete poca esperienza con Linux, provate gnome-lokkit. gnome-lokkit è un'utility GUI che propone alcune domande all'utente relativamente all'uso della macchina. In funzione delle risposte, gnome-lokkit configura un firewall semplice.

Risorse aggiuntive

Per maggiori informazioni su xinetd, consultate le risorse di seguito riportate.

Documentazione installata

  • man xinetd — La pagina man di xinetd

  • man xinetd.conf — La pagina man del file di configurazione xinetd.conf.

Siti Web utili

  • http://www.xinetd.org — Il sito Web di xinetd. Contiene un elenco più dettagliato delle sue caratteristiche e dei file di configurazione di esempio.