806
contributi
m (→netstat: completamento) |
m (→lsof: primo inserimento) |
||
Riga 1: | Riga 1: | ||
{{stub}} | |||
' | 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. | |||
<pre># 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</pre> | |||
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 | |||
<pre>$ cat /etc/hosts |grep localhost.localdomain | |||
127.0.0.1 localhost.localdomain localhost debby</pre> | |||
È: interessante notare come per alcune porte venga riportato un valore numerico, mentre per altre un valore alfanumerico. | |||
Valore numerico: | |||
<pre>tcp 0 0 *:5900 *:* LISTEN</pre> | |||
Valore alfanumerico: | |||
<pre>tcp 0 0 *:netbios-ssn *:* LISTEN</pre> | |||
Questo comportamento di netstat � presto spiegato: quando il programma rileva un servizio in ascolto su una porta (ad esempio la porta 5900), cerca una corrispondenza con la stessa all' interno del file ''/etc/services''. | |||
Il file ''services'' � un file testuale che associa un numero di porta numerico alla descrizione alfanumerica del servizio associato alla stessa. | |||
Se vogliamo vedere a quale porta corrisponda il dato ''netbios-ssn'' dell' esempio precedente, � sufficiente cercarlo all' interno del file services: | |||
<pre>$ cat /etc/services |grep netbios-ssn | |||
netbios-ssn 139/tcp # NETBIOS session service | |||
netbios-ssn 139/udp</pre> | |||
Nel nostro esempio, dato che la porta era di tipo TCP, il valore cercato � il primo ottenuto. | |||
Agendo sul file services possiamo quindi assegnare un valore descrittivo alle porte riportate solo con il valore numerico. Ad esempio tornando alla porta 5900, probabilmente vorremo associarla al servizio ad essa associata (vnc). | |||
Sar� quindi sufficiente editare il file services ed aggiungere la linea: | |||
<pre>vnc-server 5900/tcp vnc-server # TightVNC Server</pre> | |||
A questo punto avremo realizzato l' associazione porta/descrizione: | |||
<pre>~# netstat -l |grep tcp | |||
[...] | |||
tcp 0 0 *:vnc-server *:* LISTEN | |||
[...]</pre> | |||
==lsof== | |||
==Apt System== | |||
=Un esempio concreto= | |||
=Cenni ad altri strumenti= | |||
==Livello rete== | |||
==Livello applicazione== | |||
---- | ---- | ||
[[Utente:Keltik|Keltik]] 05:26, Giu 23, 2005 (EDT) | |||
contributi