Debian e il controllo di servizi e demoni
Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.
Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template. |
Uno dei primi passi da affrontare subito l' installazione della nostra Debian dovrebbe essere quello di accertarsi di quali servizi e demoni vengono lanciati dal sistema. Questa operazione permette un controllo migliore della sicurezza della nostra macchina ed una minore esposizione a rischi legati a intrusioni.
In questa breve guida vedremo come controllare i servizi attivi, come eliminare quelli non necessari e come rendere più sicuri quelli che intendiamo utilizzare.
Buona lettura & happy debian!
Concetti di base
Servizi & Demoni
In un sistema operativo si definisce "servizio" (o anche "demone") un processo in background che gira autonomamente, senza intervento da parte dell' utente, o comunque con una interazione ridotta al minimo. Un esempio di servizo è il server web Apache: il server viene controllato dal demone "httpd" che gira in background, resta in ascolto sulla porta indicata e serve le pagine richieste.
Strumenti
GNU/Linux fornisce una nutrita schiera di programmi che ci permettono di intergire con i servizi attivi sulla nostra macchina. Di seguito riporto quelli più usati nell' amministrazione di un sistema Debian.
netstat
Netstat è uno dei programmi più utilizzati ed utili: permette di elencare tutta una serie di informazioni utili (sockets aperti, routing tables, processi, ecc...). Per il nostro scopo utilizzeremo netstat per ottenere un elenco di tutte le connessioni di rete aperte sulla nostra macchina. Ottenere queste informazioni è il primo passo per conoscere nel dettaglio cosa succede all' interno del nostro sistema operativo.
Ora cerchiamo tutte le connessioni di rete in ascolto (stato LISTEN) sul nostro sistema.
# netstat -l |grep tcp tcp 0 0 *:netbios-ssn *:* LISTEN tcp 0 0 *:5900 *:* LISTEN tcp 0 0 *:www *:* LISTEN tcp 0 0 *:sieve *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost.localdom:8118 *:* LISTEN tcp 0 0 *:ipp *:* LISTEN tcp 0 0 localhost.localdom:smtp *:* LISTEN tcp 0 0 *:microsoft-ds *:* LISTEN
Ho scelto di limitare l' output alle sole connessioni in attesa di connessione. Potete anche provare ad utilizzare i comandi netstat -a, netstat -l, netstat -l |grep tcp, ecc...
Le colonne da prendere in esame sono (in questo esempio) la terza e la quarta. La terza colonna riporta l' accoppiata indirizzo+porta su cui è un ascolto il servizio.
Se osserviamo la prima linea dell' output, la terza colonna indica come coppia indirizzo+porta il testo *:netbios-ssn: questo significa che è attivo un servizio in ascolto per qualsiasi (*) indirizzo di rete configurato sulla macchina e che questo servizio è associato alla porta netbios-ssn.
Nelle altre righe possiamo notare che, nella colonna degli indirizzi, oltre al "*" (che indica qualsiasi indirizzo) compare anche localhost.localdomain. Netstat tenta di risolvere gli indirizzi ip e reperisce questo hostname dal file /etc/hosts, per cui localhost.localdomain corrisponde (nel mio esempio) all' indirizzo dell' interfaccia di loopback (127.0.0.1), come possiamo verificare con un semplice
$ cat /etc/hosts |grep localhost.localdomain 127.0.0.1 localhost.localdomain localhost debby
lsof
Apt System
Un esempio concreto
Cenni ad altri strumenti
Livello rete
Livello applicazione
Keltik 05:26, Giu 23, 2005 (EDT)