mercoledì 27 giugno 2007

Progettiamo una rete WiFi casalinga

Mi vado convincendo che le reti wireless casalinghe siano progettate male e capisco anche perchè i produttori di queste attrezzature ne siano complici!

Penso che ci sia un modo migliore di costruire una rete wireless che garantisca di mantenere il sistema sicuro, mentre gli utenti navighino in Internet.

Questo post è organizzato in tre parti:

  1. Le falle presenti nel modo attuale di progettare il WiFi
  2. Un design WiFi migliore
  3. Configurazioni avanzate

WiFi è rotto

Se avete fatto ciò che comunemente si fa per implementare un router wireless, avrai seguito questi passi:

  1. Fase di design - “Vorrei navigare in internet e vedere la TV allo stesso tempo. Prenderò un router WiFi per sostituire il mio router.”
  2. Fase di scelta dell' hardware - “Quale scegliere?”
  3. Fase di realizzazione - “Scollego il vecchio router, collego il nuovo... cerco la connessione WiFi…Fatto!”

Quello che avete realizzato è simile a questo:

Bad WiFiIn pratica hai dato accesso completo alla tua rete a chiunque abbia una scheda di rete wireless e sia nelle vicinanze. Potresti tirare un lungo cavo fuori dalla tua porta di ingresso e metterci una insegna al neon che dice “Accesso ad Internet Gratuito”! Posso solo augurarti che nessuno nelle vicinanze stia utilizzando Slurpr.

E' terrificante verificare che più del 40% delle reti wireless rilasciate oggi è configurato in questo modo.

Ci sono quattro aree primarie di debolezze presenti in questo progetto:

  1. Configurazione della connessione WiFi
  2. Configurazione del Firewall
  3. Accesso ad Internet
  4. Accesso alla rete

Diamo uno sguardo più approfondito a questi punti.

1. Configurazione della connessione WiFi

La maggior parte dei firewall wireless sono disegnate per essere facili da configurare, non sicure. Questo perchè i produttori di hardware non venderebbero un prodotto che il consumatore non fosse in grado di configurare o usare. Poichè la sicurezza nel WiFi è ben oltre la comprensione della maggior parte degli utenti, viene spesso trascurata. Non è insolito trovare connessioni WiFi con:

  • SSID trasmesso in Broadcast
  • Codice SSID di default
  • SSID che identifica la rete
  • Nussun o debole criptaggio
  • Nessuna autenticazione con indirizzo MAC
  • Autenticazione senza shared key (chiave condivisa) o con certificato
  • Connessione settata in modo adhoc

2. Configurazione del Firewall

Come per la connessione WiFi, anche il firewall spesso è configurato con la minore quantità di parametri di sicurezza, in modo che sia facilmente usabile. Molti sistemi sono configurati con:

  • Default admin password
  • DHCP attivo
  • Large DHCP zone
  • Default subnet mask (sottorete ip)
  • Nessuna criptazione SSL
  • Aprire una console per admin su una porta esterna
  • Senza monitorare con file di log

Tutto ciò pone dei problemi di sicurezza.

3. Consentire l'accesso libero ad Internet

Chiunque capiti nella vostra rete wireless potrà avere un completo accesso ad Internet. Questo potrebbe non essere preso come un problema all'inizio, ma ci sono alcune cose da considerare:

  1. Se hai una banda limitata in upload e download da parte del tuo provider Internet, potresti dover pagare un canone mensile maggiore se qualcuno fa uso intensivo di software p2p per fare enormi download di dati
  2. La maggior parte degli ISP per contratto vieta di condividere la la connessione ad internet con altri. Quindi se imposti una connessione wireless con libero accesso ad internet potresti violare il contratto e quindi perdere la stessa connessione.
  3. Se qualcuno usa la tua connessione ad Internet per compiere attività illegali (es. accedere a siti di pedofili) la polizia potrebbe verificare la proprietà della connessione ad internet tramite l'indirizzo IP e incolparvi per dei reati che non avete commesso.

4. Libero accesso alla rete

L'aspetto più fastidioso del progettare una rete WiFi design è che essa bypassa la cosa che il vostro firewall dovrebbe fare: tenere gli altri lontani dalla vostra rete locale. La connessione wireless in effetti fa accedere consente a chi la usa di appartenere alla stessa rete che ospita il tuo sistema “sicuro”. E se tu non sei attento a proteggere il tuo PC, come non lo sei stato nel progettare la tua rete wireless, potrai capire bene che i tuoi dati personali sono in serio pericolo di furto.

Un design migliore per il WiFi

Ho speso del tempo pensando come migliorare la sicurezza della tua rete WiFi e ho abbozzato questa soluzione che ti aiuterà a mettere le cose al sicuro eliminando le vulnerailità maggiori di cui abbiamo parlato. La soluzione comprende:

  1. Mettere in sicurezza la connessione WiFi
  2. Mettere in sicurezza il firewall wireless
  3. Limitare l'accesso ad Internet a utenti pre-definiti
  4. Separare i computer della rete casalinga dagli utenti ad accesso wireless

Good WiFi

La cosa simpatica è che molte di queste operazioni possono essere fatte senza costi aggiuntivi perchè basta usare l'hardware che già possiedi.

E la soluzione è sufficientemente flessibile da consentirti di fornire accesso Internet a utenti WiFi con un minimo costo aggiuntivo.

1. Mettere in sicurezza la connessione WiFi

Questa è la parte più importante dell'intero processo. Se configuri bene questa caratteristica, potri eliminare i rischi maggiori per la tua rete. Segui queste indicazioni:

  1. Utilizza il criptaggio WPA2 per tutte le comunicazioni
  2. Assicurati di usare certificati o chiavi condivise per il criptaggio
  3. Non divulgare il tuo SSID in broadcast. Dovresti farlo solo in fase di test
  4. Cambia il tuo SSID in qualcosa di oscuro tipo 89cyr65g6vwe . Ovviamente non usare il SSID di default che proviene dal fornitore dell'hardware o peggio informazioni quali il tuo telefono, cognome, indirizzo...
  5. Usa l'autenticazione con indirizzo MAC per assicurarti che solo alcuni specifici sistemi possano accedere al link WiFi
  6. Usa la modalità infrastructure, non quella adhoc, per la connessione

Fatte queste configurazioni siamo al sicuro? No. E' possibile avere accesso alla connessione WiFi se si conoscono le seguenti informazioni:

  • La tua chiave WPA2
  • Il tuo SSID
  • Il tuo indirizzo MAC

La persona che vuole accedere deve inoltre sapere come modificare il proprio indirizzo MAC della scheda wireless. Non è impossibile, ma ci vuole troppo lavoro per accedere alla rete di qualcuno.

E' molto importante usare la modalità infrastructure per la connessione. Deve essere settata nel firewall e nella scheda di rete wireless. In questo modo non sarà possibile usare la scheda di rete del tuo portatile come ponte wireless per accedere alla tua rete.

2. Mettere al sicuro il Wireless Firewall

Il passo successivo è mettere al sicuro il firewall wireless. E' importante perchè se permetti di violare il tuo firewall, tutte le altre misure di sicurezza possono essere forzate senza che tu neanche te ne accorga.

Assicurati di effettuare i seguenti passi:

  1. Cambia la password di amministratore (root o admin password)
  2. Utilizza criptaggio SSL per tutte le connessioni web tra firewall e i tuoi sistemi
  3. Blocca ogni gestione esterna delle interfacce
  4. Disabilita il protocollo DHCP o almeno settalo ad un range bassissimo cioè a uno o due indirizzi IP, impostando anche gli indirizzi DHCP riservati
  5. Cambia la sottorete di default della fabbrica
  6. Crea una piccola subnet interna. Utilizza una sotto maschera a 28 (2555.255.255.240) o 29 (2555.255.255.248) bit per limitare la tua rete a 14 o 6 hosts rispettivamente
  7. Non consentire il ping sull'interfaccia esterna
  8. Effettua il log di tutte le attività, preferibilmente su una periferica esterna
  9. Mantieni un backup della configurazione in caso accada qualcosa al firewall e la configurazione salti

Il lato negativo che in questo modo dovrai configurare manualmente le tue periferiche WiFi per poterti collegare, ma è il prezzo da pagare per la sicurezza della rete.

3. Limitare l'accesso ad Internet

Con la configurazione precedente non hai in effetti elimnato l'accesso ad internet per chiunque non abbia l'autorizzazione. Per accedere ad Internet, un cracker dovrebbe conoscere le seguenti informazioni:

  • Il tuo SSID
  • La chiave WPA2
  • Il tuo MAC address
  • La tua subnet e subnet mask: cioè rete ip (es. 192.168.1.1 ) e sotto rete (255.255.255.0)
  • Un indirizzo IP statico disponibile
  • Il nome del tuo provider Internet per ottenere le impostazioni dei DNS

4. Segmentare la rete

Con la rete casalinga dietro il firewall, siete protetti non solo dagli utenti su Internet ma anche da persone che abbiano informazioni a sufficienza per tentare una connessione WiFi. E' importante proteggere i sistemi di rete e assicurarsi che non vengano violati.

Per fortuna, molte persone stanno aggiornando il loro router fisso con uno wireless, quindi basta poco per integrare il secondo router nel loro ambiente di rete.

Una controindicazione a questa semplice configurazione è che se vuoi accedere a delle risorse condivise sulla rete, devi apportare delle modifiche come spiegato nella sezione successiva.

Configurazioni avanzate

Questo è solo la punta di un iceberg. Puoi apportare diverse modifiche alla configurazione per ottenere una maggiore sicurezza o una migliore flessibilità. Alcune idee comprendono:

  • Realizzare accesso VPN alle risorse dietro il firewall con soluzioni SSH o SSL VPN
  • Aggiungere un proxy web per accedere ad internet tramite autenticazione (username e password)
  • Implementare protocollo IPSec per tutte le comunicazioni sulla rete

Conclusioni

Molte delle configurazioni predefinite delle apparecchiature WiFi lasciano molto a desiderare riguardo a sicurezza, ma un piccolo sforzo nella pianificazione può permetterti di costruire una infrastruttura molto più sicura senza costi aggiuntivi.

martedì 5 giugno 2007

O quante belle password...


Ho letto questo articolo riguardo la sicurezza delle password; sentiamo un po' cosa hanno da dirci...

Con il proliferare dei servizi web siamo costretti a creare nuovi account, quindi ad inventarci nuovi username e fantasiose password.

La soluzione di utilizzare sempre la stessa password o scriverle su un foglio di carta, piuttosto che un foglio elettronico, non è molto raccomandabile.
Cosa deve fare quindi chi naviga in rete? Se hai più di una dozzina di servizi web, sicuramente non riuscirai a ricordarli a memoria. E' il momento di usare un password manager, magari gratuito.

Vediamo 10 servizi utili a gestire le nostre password:

  • Firefox o IE: I famosi browser offrono una modalità abbastanza sicura per memorizzare username e passwords per siti internet, basta inserirli la prima volta e accettare la richiesta di memorizzare le credenziali per quel sito. E' molto comodo e fa risparmiare un sacco di tempo, ma può capitare che le password vadano perse, richiedendoti così di reinserirle. Se ti sei affidato al solo browser come memoria storica, sei nei pasticci. Inoltre questa soluzione è valida solo per le password online, non per quelle di rete o del computer stesso.
  • KeePass: Uno dei gestori di password più popolare è KeePass poichè è open-source, gratuito e multipiattaforma — disponibile per Windows, Linux, OS X, e periferiche mobili. Conserva tutte le password, sia online che offline, in un database sicuro, in modo che tu debba ricordare solo la master password. Assicurati che questa password principale sia sicura!
  • Clipperz: A differenza di molti password managers, questa è una soluzione online — quindi puoi accederci da qualsiasi computer connesso ad internet. Memorizza non solo password, ma anche la carta di credito, account numerici, praticamente di tutto. Memorizzare password e altre informazioni private online può rendere nervosi, ma Clipperz utilizza un metodo di criptaggio che impedisce ai gestori del sito stesso di sapere cosa è memorizzato. E' una buona soluzione se vuoi accedere alle tue password da più computer.
  • OSX Keychain: Se usi un Mac, conosci Keychain, che è preinstallato in OSX. In pratica è un gestore di password che utilizza la tua OSX admin password come password principale.
  • KeyWallet: solo per Windows, questa piccola utility si posiziona nel system tray, e la richiami quando devi inserire una password. Essendo una utility, è indipendente dal browser.
  • Password Manager Plus: La toolbar di Billeo Free Password Manager Plus funziona sia con Firefox che con Internet Explorer, e memorizza anche informazioni diverse dalle password, come numeri di carta di credito e altro. Permette anche di riempire automaticamente i campi con le informazioni personali, quando si effettuano acquisti online.
  • Password Hasher: Questa estensione per Firefox genera delle password molto sicure rimescolando la tua password principale con il nome del sito internet visitato. Le password generate con questa estensione sono di gran lunga migliori di quelle che potresti inventare da solo.
  • PasswordSafe: Questo servizio gratuito online è compatibile con ogni web browser moderno, per ogni OS, ed esiste una versione desktop per Windows o Mac. In sostanza utilizza una modalità di criptaggio sicura per memorizzare le tue password o altre informazioni personali.
  • Password generator: Questo è un piccolo bookmarklet che combina la master password con il nome del sito per creare password più affidabili e diverse per ogni sito. Molto comodo e semplice.
  • Algorithm: La migliore soluzione non deve essere necessariamente tecnologica — ricordare password difficili può essere semplice come usare un modo per modificare una password di base usando il nome del servizio online al quale sei collegato. Per esempio, se hai una password base di “xlg519″, puoi aggiungere le prime e ultime due lettere del nome del servizio (”amon” per Amazon) e ottieni la tua nuova password!

Alcune note sulle passwords:

  • Non divulgate mai la vostra master password se usate un password manager. Siate sicuri di non dimenticarla mai.
  • Non scrivete le password su piccoli pezzi di carta appiccicati sulla scrivania o sul lato del monitor. Se ti verranno rubati, dovete solo maledire te stesso.
  • I gestori delle password non sono sicuri su un computer che condividiamo con altri — installiamoli solo su computer che usiamo solo noi.
  • Usare informazioni comuni per la password non è sicuro — come il tuo compleanno, le iniziali, compleanno dei bambini, nomi, etc. Ovviamente nessuna password non è una password sicura.
  • Usare la stessa password per ogni servizio non è una buona idea perchè una volta scoperta un ladro ha accesso a tutti i nostri account.
Cosa dire... devo iniziare ad usarlo anch'io un servizio di password manager!

lunedì 4 giugno 2007

Trasferire file in sicurezza con SFTP

Mi è capitato di dover trasferire file tra postazioni linux in rete e spesso usavo google ogni volta, ma ora ho trovato un articolo semplice e chiaro che vale la pena di tradurre per voi


Il protocollo FTP (File Transfer Protocol) è stato il più utilizzato per trasferire file tra computer. Tuttavia esso invia informazioni di autenticazione e contenuto dei file in chiaro, cioè non usa la crittografia dei dati, quindi non è un modo sicuro di comunicare. Secure Copy (SCP) e il più robusto SSH File Transfer Protocol (SFTP) mirano a migliorare la sicurezza fornendo dati attraverso una canale completamente criptato. Puoi usare queste alternative per trasferire file in sicurezza su Internet o qualsiasi altra rete non sicura.

Sia SCP che SFTP si basano sul protocollo Secure Shell (SSH). SSH stabilisce un canale criptato di comunicazione tra computer usando Public Key Infrastructure. SSH utilizza crittagrafia per lo scambio di dati per l'autenticazione e il successivo trasferimento di dati.

Il software client e server per SSH è fornito con la maggior parte dei moderni sistemi operativi. Client per SCP e SFTP sono disponibili come parte della OpenSSH suite nella maggior parte dei sistemi Linux. Eccetto SCP e SFTP, le funzioni di SSH sono una piattaforma adatta per creare sessione shell remote e connessioni desktop grafiche, usando SOCKS proxy per navigazione sicura e instradamento delle porte TCP/IP.

SCP e SFTP

SCP è un discendente del Remote Copy (RCP). A differenza di FTP, con SCP puoi specificare che devono essere preservate le modifiche dell'orario, tempo di accesso e modalità di accesso del file originale. Inoltre SCP può richiedere attendere una password se impostata, prima di effettuare il trasferimento. SCP può essere usato per copiare file tra computer o due host remoti in genere.

SCP è un tool da command-line comodo per effettuare operazioni batch. Tuttavia, SCP lavora su SSH1, una versione vecchia e superata di SSH, quindi conviene usare l'alternativa di SFTP che sfrutta la nuova versione SSH2.

SFTP è un protocollo completo per il trasferimento di file che implementa tutte le funzioni di FTP, incluse alcune che SCP non gestisce, come rinominare e cancellare file remoti.

SFTP agisce come un sottosistema di SSH e lavora sulla porta 22 standard di SSH. Si evita la necessità di aprire porte multiple ulteriori nel firewall come nel caso di FTP, dove le porte 20 e 21 devono essere aperte per il controllo e traffico dei dati. Un client SFTP chiamato sftp è disponibile nella suite OpenSSH di sistema in Linux.

Usando un sistema di autenticazione basato su password (puoi evitarlo se l'host remoto consente autenticazione SSH password-less), vediamo come puoi iniziare una sessione SFTP:

sftp david@192.168.1.1

sftp richiede la password, e se l'autenticazione va a buon fine, presenta una shell con il prompt sftp> . All'interno della shell sftp, puoi utilizzare i comandi simili a quelli disponibili in FTP, come cd, lcd, ls, chmod, chgrp, get, put, rename, e rmdir. Puoi terminare la sessione scrivendo exit al prompt.

Server SFTP

La suite OpenSSH è l'implementazione open source più popolare di SSH. Il server si chiama sshd. Per accettare connessioni in ingresso occorre quindi che il demone sshd sia attivo e in ascolto sulla porta SSH del server. Per attivare o disattivare SFTP, puoi modificare il file principale di configurazione di sshd, che per default è /etc/ssh/sshd_config . SFTP è attivato per default; puoi commentare la seguente linea per disattivarlo:

Subsystem sftp /usr/libexec/openssh/sftp-server

Puoi limitare l'accesso a SCP e SFTP, come le altre funzionalità di SSH, basato sull'indirizzo IP dell'host che si connette modificando il file hosts.deny che include una linea come questa:

sshd: 192.168.1.1

Per bloccare un'intera rete, puoi specificare la rete e l'indirizzo della maschera:

sshd: 192.168.1.0/24

oppure

sshd: 192.168.1.0/255.255.255.0

I server SFTP possono accettare client che operano su differenti sistemi operativi. Alcuni client popolari su sistemi Windows sono FileZilla, WinSCP, e DataFreeway.

Client con interfaccia grafica (GUI) per SFTP

In aggiunta ai client a linea di comando per la suite OpenSSH, i file browsers in ambienti desktop quali GNOME e KDE gestiscono le connessioni SFTP in modalità grafica. In Nautilus su GNOME o Konqueror in KDE, puoi scrivere la seguente linea:

sftp://david@192.168.1.1:/home/david

Il file browser richiederà la password, e se l'autenticazione ha successo elenca i file presenti nel server remoto. Puoi effettuare il drag and drop (cioè trascinare e rilasciare semplicemente i file) dei file per copiarli, e usare il menu contestuale (tasto destro del mouse) per cambiare le proprietà del file come il nome e i permessi di accesso. Puoi anche effettuare il doppio click per aprire il file nell'editor o visualizzatore adatto. Puoi anche mettere un segnalibro su una directory basata su SFTP per accedere più velocemente un'altra volta.

Ci sono altri interessanti sviluppi in ques'area come un nuovo filesystem chiamato SSH File System realizzato sopra al client SFTP, per montare file system remoti in semplicità e sicurezza.