Chiudere le porte di sistema
Linux e' un sistema sicuro, ma se malgestito puo'essere piu' insicuro di molti altri (ogni riferimento afatti, persone e cose e' puramente inevitabile). Inquesto tutorial vedremo come ovviare a questo problema,almeno per un pc casalingo, chiudendo le porte di sistema.
Il portscan
Prima di entrare in azione dobbiamo fare una scansione delleporte aperte. Per far cio' utilizzeremo nmap (uno deipiu' malefici ovviamente).
Il programmae' direttamente scaricabile dal sito della della casa madre. Una volta compilato e installato sipuo' lanciare, da root, il comando:
nmap -sS 127.0.0.1
a seconda della distribuzione riceveremo una lista + o -lunga. Ecco quella base di una Slackware (la mia :-) ):
Port State Service
21/tcp open ftp
23/tcp open telnet
25/tcp open smtp
37/tcp open time
79/tcp open finger
80/tcp open http
110/tcp open pop-3
111/tcp open sunrpc
113/tcp open auth
143/tcp open imap2
513/tcp open login
514/tcp open shell
515/tcp open printer
587/tcp open submission
682/tcp open unknown
2049/tcp open nfs
1024/tcp open kdm
1025/tcp open listen
6000/tcp open X11
/etc/inetd.conf
Ora che abbiamo il risultato della scansione possiamo passareall'azione vera (fermi e' possibile che prendiatesempre tutto alla lettera non vi ho detto di buttare giu'la porta del vicino ma di chiudere quelle del vostrosistema).
Apriamo col nostro editor preferito (pico o altri) il file/etc/inetd.conf. Come possiamo vedere tutti i servizinon commentati, quelli senza il cancelletto, sono presentinell'output di nmap. Per chiudere questi servizi e'necessario solo apporre un cancelletto (#) davanti a talirighe. Vi consiglio di chiuderli tutti e di riaprirli e poirichiuderli in caso di esperimenti. Salvate e uscite.
Per rendere effettive le modifiche dobbiamo riavviare ildemone (processo che lavora spontaneamente in background pertutta la durata della sessione) inetd, per farlo useremo ilsemplice comando:
killall -HUP inetd
Viusto che molti altri servizi vengono avviati grazie ai filedi avvio e' necessario rieseguire la scansione.
L'output dovrebbe essere simile al seguente:
Port State Service
25/tcp open smtp
80/tcp open http
515/tcp open printer
587/tcp open submission
682/tcp open unknown
2049/tcp open nfs
1024/tcp open kdm
1025/tcp open listen
6000/tcp open X11
I servizi avviati tramite init
Adesso possiamo solo giocare un po' con i file di avvio.In caso di distribuzioni come Redhat, Mandrake, Suse (dove ifile di init sono illeggibili) utilizzeremo alcune utilitygrafiche (lo so che non e' nel mio stile ma i file diinit sono troppo importanti e complessi per modificarli amano). In Redhat possiamo ricorrere all'opzione SystemServices del programma di setup, in SuSe possiamotranquillamente modificare a mano il file /etc/rc.config,nelle altre invece possiamo utilizzare il programma kinit(non ho smanettato troppo con Mandrake e Debian). Perdistribuzioni meno grafiche come Slackware (dove i file diinit sono leggibili) possiamo e dobbiamo modificarlidirettamente a mano(/etc/rc.d/rc.M e /etc/rc.d/rc.inetd2).Quali lasciare? Eccovi una bella lista, in ordine sparso deiservizi, a voi la scelta:
- bootpd: per l'avvio senza disco rigido (direi di eliminarlo);
- fingerd: finger permette di ficcanasare riguardo agli utenti del sistema(da disabilitare ovviamente);
- gopherd: gopher oramai in disuso (se presente da disabilitare);
- ftpd: ftp (fuori tempo zero);
- talkd: talk, chat in 2 (credo sia innocuo ma fidarsi e' bene non fidarsi e' meglio);
- telnetd: telnet (sbarriamo la 23);
- tftp: altra versione di ftp (stesso destino del fratello);
- rshd, rlogind, rexecd: servizi di shell remota (da chiudere assolutamente);
- nntpd: server usenet (close);
- apmd: controlla le batterie del portatile (non apre porte ma disturba se non abbiamo un portatile);
- xntpd: network time protocol (close);
- portmap: portmapper indispensabile per nfsd e mountd (un programma poco sicuro);
- nfs: Network File System, condivisione file (utile solo in caso di rete locale);
- mountd: monta filesystem di rete (condivisi con nfs);
- atd: avvia processi secondo orai da noi stabiliti;
- named: per la gestione di server dei nomi (Server DNS);
- linuxconf: per la configurazione remota (disabilitatelo tempo meno uno);
- sendmail: Server SMTP (il programma piu' bacato del mondo quindi da disabilitare), indispensabile anche per leggere e spedire posta (quindi ogni volta che dovete utilizzare la posta elettronica dovete lanciare, da root, il comando: "/usr/sbin/sendmail -bd -q15m").
Per partire senza i servizi che abbiamo tolto dobbiamoriavviare (raramente ma succede anche qui).
Una volta di nuovo davanti alla shell lanciamo nmap. Se KDMe X sono aperti riceveremo un output simile al seguente, seabbiamo chiuso tutto ovviamente:
Port State Service
1024/tcp open kdm
1025/tcp open listen
6000/tcp open X11
Possiamo dire di avere terminato. Il vostro sistema e'adesso a prova di bomba ma ricordatevi che gli hacker non sifermano certamente davanti a 2 porte chiuse (aiuto mihackerizzano la casa), e lo smurf e' sempre in agguato(:-) ).