<chapt id="sec-tools">Strumenti per la sicurezza in Debian


<p>FIXME: Trattazione da integrare

<p>Debian offre anche molti strumenti per la sicurezza, tali da
garantire una configurazione ottimale della postazione.
Questi comprendono la protezione dei sistemi di informazione mediante firewall
(a livello sia di pacchetti che di applicazioni), la ricerca delle
intrusioni (basata sia su rete che	 su singoli host), la valutazione dei
punti deboli e poi, antivirus, reti private, etc..

<p>A partire da Debian 3.0 (<em>woody</em>), la distribuzione è caratterizzata
da software specifico per la crittografia integrato nella distribuzione 
principale.
OpenSSH e GNU Privacy Guard vengono inclusi nell'installazione predefinita e
già adesso i browser, i server di rete, i database e via dicendo,
hanno un robusto sistema di cifratura. Per le future versioni è già 
pianificata un'ulteriore integrazione della crittografia. 
Questo tipo di software, per essere esportato, viste alcune limitazioni negli 
Stati Uniti, non è stato distribuito con la distribuzione principale, ma 
è stato incluso nei siti non-US.


<sect id="vuln-asses">Strumenti per la valutazione delle 
                      vulnerabilità da remoto

<p>Gli strumenti forniti da Debian per valutare le vulnerabilità da remoto 
sono<footnote>
          Alcuni fra questi vengono forniti tramite l'installazione 
          del pacchetto <package>harden-remoteaudit</package>.
</footnote>:

<list>
<item>nessus
<item>raccess
<item>nikto (sostituto di whisker's)
</list>

<p><package>nessus</package> - composto da un client 
(<package>nessus</package>), usato come interfaccia GUI e da
un server (<package>nessusd</package>), che lancia gli attacchi 
programmati è, di gran lunga, il più completo e aggiornato.
Conosce i punti deboli di un numero consistente di sistemi 
contenenti applicazioni di rete, server ftp, server www, etc.. 
Le ultime versioni sono in grado di analizzare un sito web e
provare a scoprire quali, fra le pagine disponibili, potrebbero essere
attaccate. Ci sono anche dei client Java e Win32 (non inclusi in Debian),
utilizzabili per contattare il server dell'organizzazione aziendale.

<p><package>nikto</package> - scansionatore per la valutazione di 
vulnerabilità dedicato solo al web, presenta tattiche anti-IDS 
(la maggior parte delle quali non è più solamente <em>anti-IDS</em>) ed è 
uno dei migliori scansionatori cgi: può scoprire un server WWW e lanciarvi 
contro solo una determinata tipologia di attacchi. Il database 
usato per  la scansione è facilmente modificabile, al fine di ottenere 
nuove informazioni.




<sect>Strumenti per effettuare scansioni di rete

<p>
Debian fornisce alcuni mezzi dedicati alla scansione di host da remoto (ma
non anche della verifica delle vulnerabilità) che, in certi casi,
possono essere usati come scansionatori per un primo tipo di "attacco", 
volto a determinare i servizi dell'host remoto disponibili. 
Al momento Debian fornisce:

<list>
<item><package>nmap</package>
<item><package>xprobe</package>
<item><package>p0f</package>
<item><package>knocker</package>
<item><package>isic</package>
<item><package>hping2</package>
<item><package>icmpush</package>
<item><package>nbtscan</package> (per verifiche su SMB /NetBIOS)
<item><package>fragrouter</package>
<item><prgn>strobe</prgn> (nel pacchetto <package>netdiag</package>)
<item><package>irpas</package>
</list>


<p>Mentre <package>xprobe</package> offre solamente l'esame da remoto 
del sistema operativo (usando TCP/IP fingerprinting), 
<package>nmap</package> e <package>knocker</package>
svolgono sia l'esame del sistema operativo, sia la scansione delle
porte dell'host remoto. D'altra parte, per le tecniche di attacco basate
su ICMP da remoto potete usare <package>hping2</package> e
<package>icmpush</package>.

<p>Progettato specificamente per reti di tipo SMB /NetBIOS, 
<package>nbtscan</package> viene impiegato per scansionare le reti IP 
e per recuperare informazioni riguardo ai nomi (fra cui: nomi degli 
utenti, nomi della rete, indirizzi di tipo MAC...) dai server su cui 
sia abilitato SMB.

<p>Infine, per rilevare intrusioni nella rete e verificare se i
NIDS possano essere aggirati da attacchi mediante frammentazione, si può
usare <package>fragrouter</package>.

<p>
FIXME: Controllare se il 
<url id="http://bugs.debian.org/153117" name="Bug #153117"> (ITP fragrouter) sia incluso.

<p>
FIXME: aggiungere informazioni basate su 
<url id="http://www.giac.org/practical/gcux/Stephanie_Thomas_GCUX.pdf"
name="Debian Linux Laptop for Road Warriors">, che descrive come 
usare Debian ed un portatile per scansionare reti wireless (803.1)
(collegamento non più presente).



<sect>Controlli interni

<p>
Al momento solamente il tool chiamato <package>tiger</package> può 
essere usato per effettuare un controllo interno (chiamato anche 
white box (NdT:cassetta bianca)) degli host per controllare se il 
file system è configurato in modo appropriato, quali processi 
sono in ascolto nell'host etc.


<sect>Revisione del codice sorgente

<p>Debian mette a disposizione vari pacchetti che potete usare 
nella revisione dei sorgenti C/C++ per ricercare errori di 
programmazione da considerarsi potenziali problemi per la sicurezza:


<list>
<item><package>flawfinder</package>
<item><package>rats</package>
<item><package>splint</package>
<item><package>pscan</package>
</list>



<sect id="vpn">Rete privata virtuale (VPN)

<p>Un network privato virtuale (VPN) è un gruppo di due o più computer
che hanno tra di loro una connessione privata con un accesso limitato 
dall'esterno, in pratica permette una comunicazione sicura su rete 
pubblica. VPN permette la connessione tra un singolo computer e una 
rete privata (client-server), oppure tra una LAN remota ed una rete 
privata (server-server). VPN include la possibilità di cifrare ed
autenticare in modalità sicura utenti remoti oppure host ed inoltre 
anche metodi per nascondere la tipologia della rete.

<p>Debian mette a disposizione alcuni pacchetti per configurare 
correttamente una rete privata cifrata:

<list>

<item><package>vtun</package>
<item><package>tunnelv</package> (sezione non-US)
<item><package>cipe-source</package>, <package>cipe-common</package>
<item><package>tinc</package>
<item><package>secvpn</package>
<item><package>pptpd</package>
<item><package>openvpn</package>
<item><package>openswan</package> (<url id="http://www.openswan.org/">)

</list>

<p>FIXME: aggiornare qui le informazioni fino a quando non saranno 
scritte con FreeSWAN in testa. Controllare l'errore #237764 e 
l'id del messaggio:
&lt;200412101215.04040.rmayr@debian.org&gt;.

<p>Il pacchetto FreeSWAN probabilmente è la miglior scelta tra tutte 
quelle proposte, può essere usato da chiunque usi il protocollo di 
sicurezza IPsec (RFC 2411). Comunque gli altri pacchetti presenti 
nella lista possono aiutare a creare facilmente un tunnel.
Il tunnel punto punto (PPTP) è un protocollo per 
VPN di proprietà della Microsoft. Viene supportato da Linux, ma 
sono noti seri problemi concernenti la sicurezza.

<p>Per ulteriori informazioni leggete il 
<url id="http://www.tldp.org/HOWTO/VPN-Masquerade-HOWTO.html" name="VPN-Masquerade HOWTO"> (copre sia IPsec che PPTP), il
<url id="http://www.tldp.org/HOWTO/VPN-HOWTO.html" name="VPN HOWTO">
(copre PPP su SSH) il 
<url id="http://www.tldp.org/HOWTO/mini/Cipe+Masq.html" name="Cipe mini-HOWTO"> ed il
<url id="http://www.tldp.org/HOWTO/mini/ppp-ssh/index.html" name="PPP and SSH mini-HOWTO">.

<p>Vale la pena anche controllare 
<url id="http://yavipin.sourceforge.net/" name="Yavipin">, ma 
nessun pacchetto Debian sembra essere disponibile.





<sect1>Tunneling punto punto

<p>Se volete avere un tunnel sicuro tra sistemi operativi differenti
(nello stesso tempo postazioni con sistema operativo Microsoft e 
con Linux) e che IPsec non sia un opzione (è il solo fornito per 
Windows 2000 e Windows XP), dovrete usare <em>PoPToP</em> (server 
tunneling punto punto), fornito dal pacchetto 
<package>pptpd</package>.

<p>Se volete usare l'autenticazione e criptazione di Microsoft,
mediante il server fornito dal pacchetto <package>ppp</package>, 
leggete questo estratto tratto dalle FAQ:

<example>
&Egrave; necessario l'uso di PPP 2.3.8 se volete avere la piena compatibilità con 
il protocollo di autenticazione e  criptazione MSCHAPv2/MPPE di Microsoft. 
La ragione di questo è che la patch MSCHAPv2/MPPE attualmente  disponibile 
(19990813)  ha dei  conflitti con  versioni  diverse  dalla 2.3.8. Se  non 
avete  bisogno della  compatibilità con  i protocolli  di autenticazione e 
criptazione Microsoft, qualsiasi versione  della serie 2.3 di PPP va bene.
</example>

<p>Comunque, dovete anche applicare una patch al kernel, presente nel 
pacchetto <package>kernel-patch-mppe</package>, che mette a 
disposizione il modulo pp-mppe per pppd.

<p>Avere un account cifrato con ppptp vi obbliga a conservare le 
password in chiaro e senza cifratura, inoltre nel protocollo 
MS_CHAPv2 sono presenti
<url id="http://mopo.informatik.uni-freiburg.de/pptp_mschapv2/" 
name="buchi di sicurezza conosciuti">.</sect1>



<sect>Infrastruttura a chiave pubblica (PKI)

<p>L'infrastruttura a chiave pubblica (PKI) è un'architettura di sicurezza
introdotta per fornire un maggior livello di confidenza nello scambiarsi
informazioni tramite una rete insicura. Fa uso del concetto di chiavi
pubbliche e private per verificare l'identità del mittente (firma) e per
assicurare la privacy (crittografia).

<p>Nel prendere in considerazione una PKI ci si trova davanti a una serie di
questioni:

<list>

<item>Un'Autorità Certificatrice (CA) che possa creare e verificare certificati
e che funzioni sotto una determinata gerarchia.
<item>Una directory che contenga i certificati pubblici degli utenti.
<item>Un database (?) per mantenere le Liste di Revoca dei Certificati (CRL).
<item>Dispositivi che interoperino con la CA al fine di produrre 
smart card/memorie-USB/qualsiasi altra cosa in cui poter racchiudere 
i certificati con sicurezza.
<item>Applicazioni che individuino i certificati, che possano usare
quelle prodotte da una CA nell'ambito di una comunicazione cifrata e
che controllino i certificati ricevuti rispetto ad una CRL
(per l'autenticazione e le soluzioni Single Sign On).
<item>Un'autorità che segni la data e quindi la scadenza, per la 
firma digitale dei documenti.
<item>Una console dalla quale possa essere utilizzato tutto ciò (generazione
dei certificati, controllo delle liste di revoca, etc...).
</list>

<p>Debian GNU/Linux ha pacchetti che aiutano alcuni di questi compiti PKI. 
Includono <prgn>OpenSSL</prgn> (per la generazione dei certificati), 
<prgn>OpenLDAP</prgn> (come directory in cui tenere le certificazioni), 
<prgn>gnupg</prgn> e <prgn>freeswan</prgn> (con il supporto per lo 
standard X.509). Comunque, con il rilascio di Woody (Debian 3.0), 
Debian non supporta nessuna delle Autorità Certificatrici disponibili 
liberamente, come pyCA, <url id="http://www.openca.org" name="OpenCA"> 
o esempi di CA da OpenSSL. Per maggiori informazioni leggete il libro 
sull'<url id="http://ospkibook.sourceforge.net/" name="Open PKI">.



<sect>Infrastruttura SSL

<p>Debian fornisce alcune certificazioni SSL con la propria distribuzione, 
in modo da poterle installare localmente. Si trovano nel 
pacchetto <package>ca-certificates</package>. Questo pacchetto 
fornisce un deposito locale di certificazioni che sono state inviate 
a Debian e approvate (ossia verificate) dal manutentore del pacchetto, 
utili per applicazioni OpenSSL che verifichino le connessioni SSL.

<p>FIXME: leggere debian-devel per vedere se ci sono aggiunte.


<sect>Antivirus

<p>Non ci sono molti antivirus in Debian GNU/Linux, probabilmente perché 
gli utenti GNU/Linux non vengono danneggiati dai virus. Il modello di 
sicurezza degli Unix fa distinzione tra i processi privilegiati (root) 
ed i processi utente, quindi un eseguibile "ostile" che un utente 
non-root riceve o crea ed esegue non può "infettare" o manipolare
l'intero sistema. Comunque, i worms per GNU/Linux ed i virus esistono, 
anche se non ce n'è nessuno (beh, speriamo) che si sia diffuso a 
macchia d'olio in una distribuzione Debian. In ogni caso, gli 
amministratori potrebbero voler mettere su dei gateway antivirus che 
proteggano dai virus altri sistemi più vulnerabili che fanno parte 
della loro rete.

<p>Attualmente Debian GNU/Linux fornisce i seguenti strumenti per 
realizzare ambienti antivirus:

<list>


<item>
<url id="http://clamav.elektrapro.com/" name="Clam Antivirus">,
fornito in Debian <em>sarge</em> (la versione 3.1). 
Vengono forniti pacchetti per il virus scanner (<package>clamav</package>), 
per il demone di analisi (<package>clamav-daemon</package>) e per i file di 
dati dello scanner. Dato che tenere aggiornato un antivirus è fondamentale per
farlo funzionare correttamente, ci sono due modi di prendere questi dati:
<package>clamav-freshclam</package> fornisce un modo per aggiornare il database
automaticamente attraverso Internet e <package>clamav-data</package> che 
fornisce il file di dati direttamente<footnote>
Se usate questo ultimo pacchetto e state usando una Debian uffciale
il database non verrà aggiornato con gli aggiornamenti di sicurezza. Dovrete
o usare <package>clamav-freshclam</package>, <prgn>clamav-getfiles</prgn> per
generare il pacchetto <package>clamav-data</package> o aggiornare dal sito del
manutentore del pacchetto:
<example>
  deb http://people.debian.org/~zugschlus/clamav-data/ /
  deb-src http://people.debian.org/~zugschlus/clamav-data/ /
</example>
</footnote>.
  	 
<item><package>mailscanner</package> è un e-mail gateway con virus 
scanner e controllo dello spam. Usando <package>sendmail</package> o 
<package>exim</package> come sua base, può usare fino a 17
diversi motori di ricerca di virus (incluso <package>clamav</package>).  	 
<item><package>libfile-scan-perl</package> che fornisce File::Scan,
un'estensione Perl in grado di effettuare una scansione dei file per 
ricercare virus. Questo modulo può essere usato per eseguire scansioni 
indipendentemente dalla piattaforma adottata.  	 
<item><url id="http://www.sourceforge.net/projects/amavis"
name="Amavis Next Generation">, fornisce il pacchetto 
<package>amavis-ng</package> ed è disponibile dalla distribuzione 
<em>sarge</em>, è uno scanner per email che si integra con diversi 
MTA (Exim, Sendmail, Postfix o Qmail) e supporta più di 15 motori 
di scansione (inclusi clamav, File::Scan e openantivirus).
<item><url id="http://packages.debian.org/sanitizer" name="sanitizer">, uno 
strumento che usa il pacchetto <package>procmail</package>, può 
esaminare gli allegati delle email, bloccare allegati in base al 
loro nome e altro ancora.
<item><url id="http://packages.debian.org/amavis-postfix" name="amavis-postfix">, 
uno script che fornisce un'interfaccia da un Mail Transport Agent ad 
uno o più antivirus commerciali (questo pacchetto viene fornito con
il solo supporto per l'MTA <prgn>postfix</prgn>).
<item><package>exiscan</package>, un antivirus per e-mail scritto in Perl
che lavora con Exim.
<item><package>blackhole-qmail</package> un filtro di spam per Qmail con 
supporto integrato per Clamav.

</list>

<p>Alcuni demoni gateway con supporto per strumenti esterni per costruire 
un ambiente antivirus sono:
<package>exim4-daemon-heavy</package> (la versione <em>pesante</em> 
dell'MTA Exim), <package>frox</package> (un server proxy ftp 
trasparente con cache), <package>messagewall</package> (un demone 
proxy SMTP) e <package>pop3vscan</package> (un proxy POP3 trasparente).

<p>Attualmente Debian fornisce <prgn>clamav</prgn> come unico 
software di scansione antivirus nella distribuzione stabile ufficiale 
e fornisce anche interfacce multiple per generare gateway con 
funzionalità di antivirus per vari protocolli.
  	 
<p>Altri progetti di antivirus rilasciati come software libero che 
potranno essere inclusi nella futura versione di Debian GNU/Linux:
<list>
<item><url id="http://sourceforge.net/projects/openantivirus/" name="Open Antivirus"> 
(vedete <url id="http://bugs.debian.org/150698" name="Bug #150698 (ITP oav-scannerdaemon)"> 
ed il <url id="http://bugs.debian.org/150695" name="Bug #150695 (ITP oav-update)">).

</list>

<p>FIXME: &Egrave; questo il pacchetto che fornisce lo script per scaricare 
gli ultimi virus firmati da <url id="http://www.openantivirus.org/latest.php">?

<p>FIXME: Controllare se scannerdaemon non sia in realtà lo scannerdaemon
dell'open antivirus (leggere ITPs).

<p>Comunque Debian non fornirà <em>mai</em> antivirus commerciali 
(non liberi e quindi neanche liberamente distribuibili o modificabili)
come ad esempio Panda Antivirus, NAI Netshield,
<url id="http://www.sophos.com/"
name="Sophos Sweep">, <url id="http://www.antivirus.com"
name="TrendMicro Interscan"> o <url id="http://www.ravantivirus.com"
name="RAV">. Per indicazioni maggiori, vedete la 
<url 
id="http://www.computer-networking.de/~link/security/av-linux_e.txt" 
name="Linux antivirus software mini-FAQ">.
Questo non significa che questo software non possa 
essere adeguatamente installato su un sistema Debian<footnote>
          Attualmente questo è un pacchetto che installa semplicemente 
          l'antivirus <em>F-prot</em> che non è libero ma 
          <em>gratis</em> per gli utenti casalinghi, chiamato 
          <prgn>f-prot-installer</prgn>. Questo installatore, comunque,
          lo potete scaricare da 
          <url id="http://www.f-prot.com/products/home_use/linux/" 
          name="F-prot's software"> ed installarlo nel sistema.
</footnote>.

<p>Per maggiori informazioni su come realizzare un sistema di 
individuazione dei virus, leggete l'articolo di Dave Jones 
<url id="http://www.linuxjournal.com/article.php?sid=4882" name="Building an E-mail Virus Detection System for Your Network">.



<sect id="gpg-agent">GPG

<p>Oggigiorno la firma digitale e a volte, la cifratura delle e-mail, sono 
molto diffuse: per esempio, molte persone che partecipano a mailing 
list (gruppi di discussione a mezzo e-mail) firmano le proprie mail 
verso la lista. Le firme a chiave pubblica sono gli unici mezzi per 
verificare che un'e-mail sia stata spedita proprio dal mittente e non 
da qualcun altro.

<p>Debian GNU/Linux offre un certo numero di client e-mail, dotati di 
funzioni integrate per la firma delle e-mail, che interagiscono 
sia con <package>gnupg</package>, che con <package>pgp</package>:

<list>

<item><package>evolution</package>.
<item><package>mutt</package>.
<item><package>kmail</package>.
<item><package>mozilla</package> o <package>thunderbird</package> (fornito dal 
pacchetto <package>mozilla-thunderbird</package>), se il plug-in
<url id="http://enigmail.mozdev.org/" name="Enigmail"> viene 
installato, viene fornito da <package>mozilla-enigmail</package>
e <package>mozilla-thunderbird-enigmail</package>.
<item><package>sylpheed</package>: a seconda di come si evolve la versione 
stabile di questo pacchetto, potrebbe essere necessario usare 
<package>sylpheed-claws</package>, ovvero la sua 
<em>versione in sviluppo</em>.
<item><package>gnus</package>, che, se installato con il pacchetto 
<package>mailcrypt</package>, è un'interfaccia di <prgn>emacs</prgn>
per <prgn>gnupg</prgn>.
<item><package>kuvert</package>, che offre questa funzionalità, 
indipendentemente dall'agente di posta dell'utente (MUA), mediante 
l'interazione con l'agente di trasporto della posta (MTA).

</list>

<p>I Key server (server delle chiavi) permettono di scaricare chiavi 
pubbliche conclamate, in modo da poter verificare le firme. 
Uno di questi è <url id="http://wwwkeys.pgp.net">.
<package>gnupg</package> può scaricare automaticamente le chiavi
pubbliche non ancora comprese nel proprio "portachiavi". 
Ad esempio, per configurare <prgn>gnupg</prgn> affinché utilizzi 
il server di chiave menzionato, dovrete modificare il file 
<file>~/.gnupg/options</file> ed aggiungere la seguente 
riga<footnote>
Per ulteriori esempi sulle modalità di configurazione di <prgn>gnupg</prgn>,
vedete <file>/usr/share/doc/mutt/examples/gpg.rc</file>.
</footnote>:

<example>
keyserver wwwkeys.pgp.net
</example>

<p>La maggior parte dei server di chiavi è collegata, in modo che 
quando viene aggiunta su uno di essi una chiave pubblica, tale 
aggiunta viene riprodotta su tutti gli altri. C'è anche un pacchetto 
Debian GNU/Linux, <package>debian-keyring</package>, che fornisce 
tutte le chiavi pubbliche degli sviluppatori Debian. I portachiavi 
di <prgn>gnupg</prgn> vengono installati nella cartella 
<file>/usr/share/keyrings/</file>.

<p>Per maggiori informazioni:

<list>

<item><url id="http://www.gnupg.org/faq.html" name="GnuPG FAQ">.
<item><url id="http://www.gnupg.org/gph/en/manual.html" name="GnuPG
Handbook">.
<item><url id="http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto.html" name="GnuPG Mini Howto (in inglese)">.
<item><url id="http://www.uk.pgp.net/pgpnet/pgp-faq/" name="comp.security.pgp FAQ">.
<item><url id="http://www.cryptnet.net/fdp/crypto/gpg-party.html" name="Keysigning Party HOWTO">.

</list>



