Feeds:
Articoli
Commenti

Archive for the ‘sicurezza’ Category

IPCop è una distribuzione Linux gratuita studiata per essere un pratico firewall per reti casalinghe e uffici di piccole medie dimensioni. IPCop è facilmente installabile su vecchi pc che invece di essere rottamati e buttati con conseguente danno ambientale (i componenti del pc sono inquinanti) possono essere riciclati e trovare un nuovo valido impiego per migliorare la nostra sicurezza. Per alcuni il concetto di firewall coincide con quello di un programma che gira sul proprio pc: sia in ambiente Windows (Zone Alarm, BlackICE, Look’n’Stop, lo stesso firewall di Windows XP) che Linux (Iptables) ci sono vari esempi, tuttavia in questi casi si parla di “personal firewall” e non di “firewall” vero e proprio. IPCop appartiene alla seconda categoria: per alcuni sarà scontato ma giova ricordare che IPCop non è appunto un personal firewall ma a suo modo un vero e proprio sistema operativo minimale che necessita di una macchina dedicata e pensato solo per svolgere le funzioni di firewall e router. Una soluzione di questo tipo è più professionale e più sicura per varie ragioni su cui non mi soffermo e permette di impostare policy di sicurezza comuni a più utenti.

A dire il vero questo post non è un vero e proprio how-to che spiega passo passo l’installazione e configurazione di IPCop: in rete si trova molta documentazione a riguardo anche se prevalentemente in inglese. Diciamo piuttosto che ho speso qualche parola in più sul hardware (cosa serve, dove infilare i cavi, ecc.) e sul come mettere assieme i vari pezzi, più qualche altro appunto sull’installazione vera e propria teso principalmente a chiarire alcuni passaggi critici ed evitare alcuni errori che ho sperimentato di persona.
Io ho approfittato del fatto che l’azienda per cui lavoro ha deciso di mandare in pensione dei vecchi pc che ormai avevano fatto il loro dovere. In questo modo sono entrato in possesso di un Pentium 3 (1Ghz), 256Mb di ram e 20 Gb di hard disk (caratteristiche che, ad essere onesti, per IPCop sono anche troppo generose) e lettore cd rom indispensabile per l’installazione. Il primo passo consiste nell’adattare l’hardware alle nostre esigenze. In casa ci sono 5 laptop quindi il supporto wireless è obbligatorio. Ho deciso anche di installare una rete non wireless in modo che sia sempre possibile connettersi ad internet inserendo nel pc un semplice cavo ethernet.
Entriamo subito nella terminologia di IPCop che definisce diversi tipi di interfacce:

  • Un interfaccia RED (rossa): questa è l’interfaccia verso internet e verso il mondo esterno. In termini hardware è la scheda di rete ethernet che collegherà il pc su cui andremo ad installare IPCop al modem ADSL (che quindi deve avere una presa ethernet)
  • Un interfaccia GREEN (verde): è la rete protetta di tutti quei pc che si connetteranno a IPCop con un cavo ethernet (eventualmente attraverso un hub se più pc devono essere connessi in contemporanea). Da un punto di vista pratico, questa interfaccia consiste in una scheda ethernet che andremo ad installare sul pc su cui risiede IPCop e da cui partirà un cavo ethernet che si andrà direttamente a connettere ad un pc o a più pc attraverso un hub. Se avete un pc desktop, questa è l’interfaccia a cui lo collegherete.
  • Un interfaccia BLUE: questa è l’interfaccia opzionale per la rete wireless (sempre che ne abbiate bisogno). Anche in questo caso corrisponde ad una scheda ethernet da cui partirà il relativo cavo diretto ad un wireless access point (o wireless router).
  • Un interfaccia ORANGE (arancio): l’interfaccia opzionale dedicata a server (per esempio un web server). In questo post non prenderò in considerazione questa ipotesi, peraltro abbastanza inusuale per una rete casalinga.

struttura rete
Riepiloghiamo:

  1. dobbiamo avere un vecchio pc su cui installeremo IPCop. Almeno durante la fase d’installazione dobbiamo anche collegare ad esso un monitor e una tastiera. Quando avremo installato e testato il tutto, tastiera e monitor potranno essere rimossi.
  2. dobbiamo avere un modem connesso ad internet (farò riferimento in seguito ad un modem ADSL) con una presa ethernet
  3. se vogliamo allacciare e proteggere dietro il firewall anche una rete wireless, dobbiamo avere un wireless access point o un wireless router. In parole semplici, la differenza tra un access point e un router è che l’access point permette ad un solo computer alla volta di essere connesso alla rete wireless mentre il router gestisce anche accessi contemporanei e concorrenti. Se quindi avete, per esempio, più portatili che si vogliono connettere ad internet nello stesso momento, dovete optare per un wireless router.

Il passo successivo è quello di connettere assieme tutti questi pezzi. Sul vecchio computer dobbiamo avere quindi tre schede ethernet distinte.

  • una verrà utilizzata per connettere la macchina IPCop con il modem ADSL (interfaccia RED)
  • una per connettere la macchina IPCop con il router wireless (interfaccia BLUE)
  • una per connettere la macchina IPCop con un pc direttamente con un cavo ethernet o con più computers attraverso un hub (interfaccia GREEN)

Qui c’è un primo passo molto delicato. è piuttosto improbabile che il vecchio pc in questione abbia tre schede ethernet installate. Se siamo fortunati ne ha una, e se siamo molto fortunati ne ha una compatibile con IPCop. Già perchè IPCop supporta un buon numero di schede ethernet ma non tutte. Trovate una lista di tutte le schede supportate qui. Ed è qua che dobbiamo stare attenti. Se abbiamo una scheda non supportata, all’atto dell’installazione, IPCop la potrebbe tranquillamente riconoscere salvo poi non riuscire a connetterci a quella scheda e indurci atroci dubbi su probabili errori commessi nella configurazione (sperimentato sulla mia pelle). Morale della favola dobbiamo essere assolutamente sicuri che le schede ethernet montate (o che monteremo) sul pc siano nella lista e prestare particolare attenzione al modello: una scheda RealTek RTL-8139C+ non è uguale ad una scheda RealTek RTL-8139D. Il metodo migliore consiste nel controllare il nome del chipset direttamente sulla scheda.
Ricapitolando

  • dovete assicurarvi che sul vecchio pc ci siano gli slot e lo spazio per installare le schede ethenet.
  • dovete avere un totale di due schede ethernet se non volete installare un interfaccia blue per la rete wireless e tre schede nel caso la vogliate abilitare.
  • dovete accertarvi che tutte le schede ethernet siano compatibili con IPCop e presenti nella lista delle schede supportate.
  • dovete materialmente installare le schede ethernet aprendo il vostro pc e sporcandovi un pò le mani. Di solito è un’operazione abbastanza intuitiva.

Ora possiamo passare all’installazione di IPCop sulla macchina. Scarichiamo IPCop dal sito (http://ipcop.org/index.php)
poi masterizziamo su un cd l’immagine .iso scaricata. Accertatevi che sia possibile avviare il pc da cd rom (in caso contrario cambiate appropriatamente la sequenza di boot da bios), infilate il cd rom di IPCop e avviate il pc.

L’installazione è molto ben documentata sulla guida ufficiale disponibile qui. È in inglese ma è corredata da una serie di screenshot che rendono la procedura accessibile anche ai non anglofoni. L’unica cosa che forse potrebbe non essere chiara a chi è a digiuno di networking è la scelta degli ip per le varie interfaccie associate alle differenti schede di rete. Le tre (o due) schede di rete, devono essere associate a reti differenti.

Scelta indirizzo IP

Vale a dire che se scegliamo, per esempio per l’interfaccia GREEN, un IP tipo 192.168.1.1 con una network mask 255.255.255.0 allora tutti gli indirizzi IP da 192.168.1.1 a 192.168.1.255 apparterranno alla stessa rete. I vari pc che si connetteranno alla interfaccia GREEN riceveranno (via DHCP) un IP all’interno di questo range (per esempio, 192.168.1.2, 192.168.1.3, ecc.). Ne consegue anche che possiamo avere fino a 255 pc connessi alla nostra interfaccia.
Se decidiamo di installare una seconda interfaccia (per esempio la BLUE per la rete wireless) questa dovrà ovviamente avere un diverso indirizzo IP, per esempio 192.168.2.1, che denoti una differente rete per suo conto. La network mask 255.255.255.0 ci dice che i due indirizzi IP 192.168.1.1 (per la green) e 192.168.2.1 (per la blue), appartengono a due diverse reti. I portatili che si connetteranno alla rete wireless in questo modo riceveranno un indirizzo IP compreso tra 192.168.2.2 e 192.168.2.255 e apparterranno tutti alla stessa rete che però è una rete diversa da quella a cui appartengono tutti i pc connessi all’interfaccia green.
Per quanto riguarda i cavi ethernet di collegamento, dovremmo avere:

  • un cavo che parte dalla scheda di rete che rappresenta l’interfaccia RED e si connette al modem ADSL
  • un cavo che parte dalla scheda di rete che rappresenta l’interfaccia GREEN e si connette direttamente ad un PC o portatile oppure ad un hub a cui saranno poi connessi altri computers (ovviamente se non abbiamo nessun pc da connettere alla green possiamo anche evitare l’uso di questo cavo)
  • un cavo che parte dalla scheda di rete che rappresenta l’interfaccia BLUE i si connette al router wireless (opzionale ovviamente)

Prima di chiudere spendo ancora un paio di parole sul router wireless. Essendo IPCop anche un router va da sé che vi sarà una certa sovrapposizione di competenze tra i due, potrebbe non essere un problema ma personalmente ho preferito incaricare IPCop anche dell’assegnazione degli indirizzi IP ai vari portatili connessi via wireless. In sostanza il servizio DHCP viene gestito da IPCop mentre ho disabilitato il servizio sul router wireless che ora incarica IPCop per il DHCP. La configurazione dipende molto dal tipo (marca e modello) di router wireless utilizzato e mi è quindi difficile scendere nei dettagli. Vi posso dire però che il wireless router in questione dovrebbe supportare “DHCP passthrough”. In caso di problemi insormontabili si può comunque sempre lasciare al wireless router la responsabilità di gestire il DHCP.

Annunci

Read Full Post »

Quando vi capita di effettuare un download di un file (generalmente un programma) vi sarete forse accorti che oltre al file vero e proprio in alcuni casi e su alcuni siti è disponibile una stringa di caratteri strani chiamata MD5. Un esempio lo trovate qua: è il server Geronomo di Apache (che non ci interessa più di tanto sapere cosa sia e cosa faccia) e di fianco al programma da scaricare in formato tar.gz è ben visibile un link MD5 che mostra il checksum del programma. In sostanza si tratta di una stringa di caratteri casuali che costituisce la firma di quel programma e che viene messa a disposizione per garantirci l’autenticità del file che andremo a scaricare. Immaginate di voler scaricare un qualche programma dal sito del produttore. Il programma presente sul sito ufficiale rappresenta il nostro target ma quando clicchiamo per scaricarlo un diabolico hacker fa in modo di far arrivare sul nostro computer una versione modificata (magari con un virus o bachi di sicurezza, ecc.). L’esempio un pò paranoico del diabolico hacker mette però in luce la necessità di disporre di uno strumento che ci consenta di verificare l’integrità del file che abbiamo scaricato e ci garantisca che sia uguale a quello originale.
L’MD5 è un algoritmo per la crittografia dei dati che risponde a questa esigenza. In parole semplici questo algoritmo prende in input dei dati e produce come risultato una stringa casuale di caratteri di modo che le seguenti condizioni siano verificate:

  • dati in input uguali producono come risultato la stessa stringa di caratteri
  • data la stringa di caratteri generati è impossibile (o quasi) risalire ai dati che l’hanno prodotta
  • dati in input diversi producono come risultato stringhe diverse

Date queste proprietà L’MD5 viene usato in questo modo:

  • Il produttore calcola il checksum MD5 per il file o programma e lo rende pubblico sul sito
  • L’utente scarica il programma, genera da questo un checksum e lo compara con quello pubblico sul sito
  • Se combaciano, allora il programma scaricato corrisponde byte per byte a quello presente sul sito

Ora non ci rimane che generare un MD5 checksum da un generico file scaricato. In Linux possiamo usare il seguente comando da terminale:

md5sum nome_file

per esempio,

md5sum pippo.tar.gz

produrrà qualcosa tipo:

3b18ff250d8172737c4f67f11631f68a pippo.tar.gz

dove “3b18ff250d8172737c4f67f11631f68a” è il checksum MD5 che dobbiamo raffrontare con quello presente sul sito.
Per la cronaca è anche disponibile un plugin per Firefox che automatizza il procedimento per i download da internet. Trovate tutti i dettagli qua.

Read Full Post »

KeyMan è un piccolo tool ad interfaccia grafica (free e liberamente installabile) sviluppato da Thomas Eirich del IBM Zurich Research Laboratory per la gestione client side della public key infrastructure (PKI). Tra le altre cose offre la possibilita di gestire chiavi, creare certificati self-signed, gestire le certificate revocation lists (CRLs) e così via.
Si tratta di un programma scritto in Java che tra l’altro funziona anche con una versione del JDK 1.2 (o superiori) decisamente vecchiotta. Essendo scritto in Java il programma è multipiattaforma Linux compreso a patto di avere il JDK installato (date il comando java -version a terminale per verificarlo).
Come riportato dalla documentazione ufficiale, queste sono alcune caratteristiche del programma:

  • supporto completo del ciclo di vita del certificato
  • gestione di vari chiavi/certificato repositories (compreso jks utilizzato in ambito Java)
  • supporto di tokens criptografati via interfaccia PKCS#11
  • accesso ai repositories di certificati Windows
  • supporto di X.509/PKIX (certificati V3, CRLs V2)
  • creazione di certificati self-signed
  • possibilità di importare i certificati attraverso i protocolli LDAP e HTTPS
  • compatibile con gli standard PKCS (#7, #10, #11, #12)

Per installarlo (procedura eseguita sotto Ubuntu 7.04 con JDK 1.5) occorre prima di tutto scaricare il programma da qui. Se non avete in account IMB selezionate “Proceed without an IBM ID”: vi verrà richiesto di compilare una breve form con alcuni vostri dettagli e di prendere visione della licenza. Fatto questo potrete scaricare la versione .tgz sul vostro PC. Doppio click sul file (si dovrebbe aprire con Archive Manager) e estraetelo. Per estrarre il contenuto dell’archivio da terminale invece date il comando:

tar -zxvf keyman-aW-1_69.tgz

Copiate la directory ottenuta in un percorso a vostro piacere (io ho scelto /opt), spostatevi dentro la directory (dovrebbe chiamarsi “KM”) e da terminale date il comando:

./km

e il gioco è fatto.

KeyMan

Ovviamente è anche possibile aggiungere KeyMan alla barra delle applicazioni:
click con il tasto destro del mouse sulla barra -> Add panel -> Custom application launcher come command inserite il percorso completo al file km. Dipende poi che uso di KeyMan farete ma potreste aver bisogno di modificare i parametri di configurazione nel file km.setup.
Maggiori informazioni su KeyMan sono disponibili qui

Read Full Post »

Lo sviluppo di internet, telefonia, ecc. ha portato molti di noi a convivere con una serie di diverse credentials. Abbiamo una username e una password per l’account di posta elettronica (spesso più di uno), per il conto corrente in banca (la cui gestione on line è di indiscussa praticità), per un blog, per chattare, per inviare sms gratis sul sito del nostro gestore di telefonia mobile, uno per eBay, uno per Amazon, uno per PayPal e così via. Diretta conseguenza di questo scenario è che ci dobbiamo destreggiare tra un numero crescente di password (più relativa username) e invecchiando, come succede a tutti, non è sempre facile ricordarsele.
Una soluzione potrebbe essere quella di usare un’unica password. Per quanto questa “unica” password possa essere sicura e generata con criteri di casualità, questa strategia presta il fianco a diversi inconvenienti e problemi. Se uno sconosciuto dovesse venire in possesso della password, l’intero dominio dei servizi di cui siamo titolari ne verrebbe compromesso. Non solo il malintenzionato potrebbe leggere la mia posta, ma potrebbe facilmente acquistare libri su Amazon addebitandoli a me, effettuare operazioni sul mio conto corrente, postare sul mio blog e chi più ne ha più ne metta. Non è un ipotesi peregrina: mi aspetto che la mia banca utilizzi una connessione criptata (su https) e questo mi metterebbe abbastanza al sicuro ma se poi utilizzo la stessa password per mandare sms con internet per cui non è richiesta un’autenticazione sicura (dati che viaggiano su una normale connessione http) ecco che mi espondo ad un rischio potenziale. A questo si aggiungano i tentativi (più o meno maldestri e invitanti) di phishing. Insomma può succedere che la nostra password non sia più segreta (e può succedere in una miriade di modi differenti) e se questo succede vorremmo che i danni fossero limitati.
Una strategia “a compartimenti stagni” (un servizio – una password) offre un ridotto profilo di rischio: se una password viene compromessa, il solo servizio corrispondente viene compromesso ma gli altri restano al sicuro. Questo ci riporta al punto di partenza con miriadi di password e users da ricordare. è a questo punto che un password manager potrebbe fare la sua comparsa in scena e venirci in aiuto. In ambiente Linux uno dei più conosciuti è MyPasswordSafe.
Il principio alla base di MyPasswordSafe è piuttosto intuitivo. Detta in parole semplici, si crea un unico file in cui si mettono tutte le credentials (user e password) e si protegge l’accesso al file con una password. Potrebbe sembrare un circolo vizioso in quanto siamo tornati ad avere un’unica password (e relativi rischi di compromissione di tutto il nostro registro di credentials) ma a ben vedere ci sono delle differenze. La password con cui proteggiamo il file di MyPasswordSafe deve ovviamente essere sicura e casuale. Ma non viene (o non dovrebbe) essere trasmessa in rete ma solo immagazzinata nella nostra testa e usata solo per MyPasswordSafe. Un eventuale compromissione di questa password inoltre richiederebbe comunque al malintenzionato un accesso alla nostra macchina (o al pc su cui il file di credentials risiede).
Alcune caratteristiche di MyPasswordSafe:

  • possiamo generare password casuali
  • le passwords che salviamo nel file vengono criptate e non sono visibili “in chiaro”
  • non c’è bisogno di vedere la password immagazzinata in MyPasswordSafe. Una volta immessa nel file la possiamo recuperare con un click del tasto destro del mause selezionando la voce “fetch password”

MyPasswordSafe (parliamo di Ubuntu 7.04) è disponibile nei repository ufficiali per cui la procedura di installazione è la solita:

sudo apt-get install mypasswordsafe

oppure attraverso Synaptic (System -> Administration -> Synaptic Package Manager).
Una volta installato lo si può lanciare con il comando

MyPasswordSafe

mypasswordsafe

e creare un “safe” (il file con usernames e passwords) selezionando la corrispondente voce da menu (Create new safe) e scegliendo la password (sicura) per il nostro file. Diamo l’ok e ora non ci rimane che inserire le nostre passwords. Da menu:

Edit -> Add Passwords

eventualmente possiamo creare più gruppi per password appartenenti alla stessa area (per esempio tutti gli accounts che abbiamo sul nostro pc con Linux). Salviamo prima di uscire e decidiamo il percorso dove il file verrà salvato.
Per maggiori info, la guida ufficiale è disponibile qui.

Read Full Post »