Router hackerabile

Oggi pomeriggio è arrivato il router wireless Linksys WRT54g, l’abbiamo pagato 72 € IVA inclusa ed è a tutti gli effetti un mini PC con Linux, scheda WiFi e scheda Ethernet. È possibile cambiargli il firmware con uno che comprende un sistema di pacchetti alla apt, creato dai tizi di Freifunk (il resto del sito è in tedesco).
Appena aperta la scatola, l’abbiamo subito smontato per vedere come è fatta la scheda interna, nelle nostre mani la garanzia non è durata 5 minuti. Poi abbiamo riscritto il firmware con OpenWRT.
Ora ho una rete OLSR di 3 nodi, il linksys, il mio portatile e un blue box che mi hanno dato per i test.

Galleria fotografica 2

Ho aggiornato la galleria fotografica con tutte le foto che valeva la pena pubblicare, ho aggiunto e tolto parecchia roba, quindi ci saranno sicuramente degli errori, segnalatemeli! Tutte le foto che ho mantenuto le ho ripassate allo scanner per essere sicuro sulla qualità e sulle dimensioni. Anche le date dei copyright ora sono giuste.
Insomma, un lavoraccio, ma dovrebbe essere per il meglio.

Qualunque commento è benvenuto.

Penultimo esame!

Sul fronte tesi ho dovuto fare una pausa per dare un esame, ora ne manca uno solo che conto di dare verso giugno.
Negli ultimi giorni prima di iniziare a studiare, ho cercato delle schede wireless PCMCIA con due connettori per le antenne, ben supportate da Linux e in grado di funzionare in modalità Access Point. Il risultato della ricerca è che solo i driver hostap possono fare da AP e le uniche schede supportate da quel driver sono quelle basate su chipset Prism. Alla fine ci siamo diretti verso delle schede della Senao, trovate tramite il sito di SeattleWireless che dovrebbero avere tutto quello che ci serve. Ne abbiamo ordinata una come campione, appena arriva la proviamo.
La modalità AP ci serve per due motivi, come rete di sicurezza nel caso il routing dinamico non abbia prestazioni sufficienti e come come esperimenti per vedere se è possibile usare dei mini pc linux come access point invece di hardware apposito, più costoso e delicato.

Galleria fotografica

Ho appena finito di fare l’upload la nuova galleria fotografica, l’ho scritta in questi ultimi giorni, dopo essermi stufato di quella vecchia. Ho speso parecchio tempo a costruire un buon formato sul disco per l’organizzazione delle foto e alla fine sono arrivato ad una doppia struttura. Le foto sono organizzate in directory per anno e mese, così se decido di cambiare la grafica o la categoria non perdo i bookmark e i motori di ricerca. L’organizzazione sta in un albero di directory separato, con una serie di file di testo che elencano le fotografie appartenenti a ciascuna suddivisione.

Ho usato solo XHTML e CSS, ma non ho ancora verificato se valida sul sito del w3c. Devo anche rifare tutte le thumbnail, in modo che abbiano le stesse dimensioni.

Ricerca in letteratura di protocolli per reti mesh senza fili

Protocolli con implementazione open source per 802.11

  • AODV
    • AODV: Informazioni generali e link a materiale specifico, c’è anche un elenco delle implementazioni
    • AODV-UU: Implementazione dell’Uppsala University
    • www.tml.hut.fi/~ajtuomin/manet/aodv/: Implementazione solo IPv6 (HUT AODV for IPv6) broken link
    • AODV Kernel:
      Implementazione del NIST
  • OLSR
  • Monarch DSR: implementazione Dynamic Source Routing, ultimo aggiornamento del 2000
  • UC Boulder DSR: implementazione università del Colorado, vedi anche link successivo
  • The Grid: rooftop system al MIT, basato su DSR
  • Ad-hoc Support Library: libreria per lo sviluppo di algoritmi routing dinamico
  • ZRP: implementazione Zoned Routing Protocol
  • MMRP for Linux: implementazione Linux di un algoritmo proattivo
  • MMRP for Windows: come sopra, ma per windows era un progetto chiamato ipmesh su sourceforge, che non esiste più
  • LUNAR: algoritmo e implementazione, adatto a reti di piccole dimensioni
  • Champaign-Urbana Community Wireless Network: rete cittadina basata su un protocollo sviluppato appositamente
  • Locust World: usa NIST AODV su 802.11, bluetooth e ethernet, sono disponibili delle ISO da scaricare, vendono anche hardware predisposto

Studi teorici, documentazione accademica e non

  • picoNet: Tesi di laurea su un algoritmo DSR
  • DAWN: Progetto di ricerca della DARPA per reti dense ed asimmetriche il sito web non esiste più
  • IRTF RRG: IETF Internet draft su vari aspetti delle reti wireless ad hoc
  • Mobile Agents: Studio tecnico e simulazioni
  • tf2_beyer.pdf: presentazione su reti mesh per uso cittadino il file è citato anche da parecchi articoli accademici, ma non è più disponibile
  • Random Trip mobility model: modello teorico per lo studio dei movimenti in una rete ad hoc
  • TBRPF: Topology Broadcast Reverse-Path Forwarding
  • WINGS: accesso a Internet multihop, elenco documentazione e link, sembra non aggiornato da tempo

Soluzioni Commerciali su 802.11

  • Green Packet: per windows XP, rete mesh per piccole comunità
  • Kiyon: hardware per costruire reti mesh fornendo un accesso con 802.11 (sembra solo per sistemi fissi)
  • MobileRoute: scarse informazioni tecniche
  • RoamAD: hardware per costruire reti mesh, scarse informazioni tecniche (anche sistemi mobili)
  • Strix Systems: hardware per costruire reti mesh (sembra solo per sistemi fissi)
  • Tropos Networks: hardware per costruire reti mesh (sembra solo per sistemi fissi)
  • MeshDynamics: usato dall’aeronautica militare USA, sembrano degli access point con gli steroidi
  • PacketHop: scarse informazioni tecniche, usato nella zona del Golden Gate, San Francisco per i servizi di emergenza

Soluzioni commerciali non 802.11 o con scarse informazioni tecniche

  • NovaRoam: Usa TORA e AODV per reti con nodi mobili
  • BelAir: offriva una tecnologia brevettata, sembra scarsamente mobile, ora sembra essere stata acquisita da Ericsson
  • Dust Networks: reti di sensori, piccoli dispositivi alimentati a batteria da installare su sensori il sito web non esiste più
  • Firetide: poche informazioni tecniche
  • Mesh Networks: Motorola, tecnologie varie
  • Millenial Net: reti di sensori
  • OrderOne Networks: reti enormi, nell’ordine di 10.000+ nodi, algoritmi brevettati
  • Richochet: software Windows e Mac OS X, vendono i loro modem, poche informazioni tecniche

Nota: la dicitura “poche/scarse informazioni tecniche” significa che una ricerca veloce, ma abbastanza completa nel sito non dato risultati su quali algoritmi di routing dinamico vengano usati in quella particolare implementazione.

La giornata del sistemista

Oggi ho passato la giornata a giocare al piccolo sistemista. Tenendo iTunes in background con una radio online di sola musica anni ’80 e lavorando via ssh sul server casalingo ho giocato un po’ con tethereal e subversion, ottenendo delle cose abbastanza utili.

Stamattina tethereal. Fino ad oggi usavo tcpdump e uno scriptino bash per recuperare le informazioni su certi pacchetti che mi interessano, però la soluzione non era ottimale perché catturava poche informazioni su troppi pacchetti, dato che tcpdump non ha filtri per protocolli ad alto livello.
Con tethereal posso catturare solo i pacchetti che mi interessano in un certo periodo di tempo e metterne il dump in un file (in formato pcap). Uno script chiamato da cron, ad intervalli regolari, uccide il processo di cattura, esegue di nuovo tethereal sul file di cattura con parametri differenti (per fargli risolvere gli indirizzi IP) passando l’output ad un programmino in Python per estrarre solo le informazioni interessanti. Alla fine mi manda il tutto via mail e rimette in esecuzione il processo di cattura su un file vuoto. Quei simpaticoni di Echelon a confronto sono dei pivellini.

Il pomeriggio, invece, l’ho passato a litigarmi con subversion, apache2, mod_ssl e mod_auth_pam, però alla fine ne ho avuto ragione…
La configurazione che mi ero posto come obiettivo era:

  1. area pubblica in sola lettura
  2. autenticazione per poter modificare il repository

Avevo già l’autenticazione grazie a svn+ssh, ma dove sto facendo la tesi escono su Internet solo con un proxy (anche se ogni tanto si esce tranquilli con un NAT, dipende dalle maree e da certi riti sull’altare che hanno in terrazzo, credo) e volevo anche poter fornire accesso al ‘grande pubblico’, in particolare per il driver sis900.

L’unico tipo di autenticazione su http che funziona con mod_auth_pam (non volevo avere ancora un’altra password diversa) è ‘Basic’, con la password che viaggia in chiaro per mezzo mondo. La soluzione è stata usare mod_ssl. Non ci sono alternative se non criptare l’intera connessione, anche se l’unica cosa che vuoi tenere segreta è la password. Bah.

Mi sono creato la mia CA fasulla e l’ho usata per firmare il mio certificato fasullo anche lui e ora ho la mia brava connessione su https, alla faccia di tutti quelli che dicono che non si può avere SSL insieme ai virtual host di Apache (certo, non si può se si fanno le cose sul serio, con dei certificati veri, ma se uno fa finta di non vedere un paio di warning all’avvio di apache, problemi non ce ne sono…). Ora su https magari ci metto pure su un webmail, così posso leggermi la posta anche quando il sistemista in ditta si dimentica di fare i sacrifici agli dei.

Alla fine pure mod_auth_pam ha iniziato a funzionare senza particolari problemi (occhio che su Debian bisogna attivarlo con AuthPAM_Enabled on, anche se nella documentazione sul sito dice che quello è il valore di default).

Ora devo solo attivare un po’ di controllo di accesso sui singoli repository, attraverso un altro modulo dav_svn_.

Appena c’è qualche cosa di significativo visibile all’esterno posto un link.

La tesi procede…

Ho completato la prima fase di ricerca dello stato dell’arte attuale sul routing dinamico su reti wireless. Ho scritto qualche pagina con i risultati ottenuti, che farà parte della mia tesi. In più ho compilato un elenco di link utili, da cui ho preso tutte le informazioni necessarie. La trovate qui, casomai interessasse.

Primo giorno

Primo giorno di tirocinio in azienda. Dopo un po’ di scenette comiche nel parcheggio (prima ho messo la macchina nel parcheggio per i disabili, poi nel posto di un’altra ditta, solo alla terza ho beccato il posto giusto), ho scoperto di essere arrivato troppo presto, gli uffici erano semivuoti.

Dato che non mi era ancora stato assegnato un tavolo, mi sono sistemato in sala riunioni, un bel posto con un’ottima vista, annotandomi di arrivare almeno un’ora dopo in futuro.
Verso mezzogiorno ho esaurito il materiale che avevo scaricato sul portatile, così mi hanno dato il tavolo e un allaccio a internet, coi soliti problemi di cavi, borchie inattive, script che smettono di funzionare sul più bello e sistemisti che hanno troppo da fare.

All’ora di pranzo l’ufficio si è improvvisamente svuotato, io mi ero portato (da furbo) un panino, ma devo comunque aver mosso l’istinto materno di una delle dipendenti che è venuta a chiedermi se ero a posto per mangiare.

Il resto della giornata è passato tranquillo, ho iniziato a scrivere un rapporto su tutta la tecnologia esistente. Per ora vedo tantissimi articoli accademici, poche implementazioni con codice sorgente alla mano e un solo software (olsrd) testato su rete di dimensioni realistiche (di più di una decina di nodi).

Tesi 2, la vendetta

Dopo aver abbandonato una tesi sulla bioinformatica a favore di un argomento più promettente, in particolare quanto a prospettive lavorative, sembra che finalmente lunedì potrò iniziare.
Dovrò lavorare allo sviluppo di un sistema di comunicazioni wireless con routing dinamico e idealmente senza infrastruttura fissa da utilizzare in ambiente portuale.
Il tutto dovrebbe offrire un’interfaccia generica per permettere a qualunque tipo di applicazione di lavorare in modo trasparente, si va dal semplice scambio di dati sulle merci spostate al VoIP. Ovviamente ci sono anche degli studi di affidabilità e velocità da fare sugli algoritmi attualmente esistenti.
Il tutto si baserà su Linux, che è il sistema che già usano nella ditta presso cui vado a fare il tirocinio.
La mia intenzione è di tenere qui un diario degli avanzamenti, vedremo se ciò mi sarà possibile…

Altri traslochi

Ho spostato tutto il sito e il blog su un nuovo server, con un dominio nuovo di zecca. Il mio povero server a casa non ce la faceva più, ma soprattutto non mi fidavo a tenerci sopra così tanta roba senza avere il tempo di stare dietro a tutti gli aggiornamenti di sicurezza.

Per far andare Drupal su Debian woody sono necessari diversi backport, che non è detto siano sempre aggiornatissimi in fatto di sicurezza.
Questa volta sono anche riuscito a importare i post mantenendo la data originale, o meglio prima ho ripostato tutti gli articoli, poi ho modificato il database a mano. Le date sono memorizzate in secondi dall’epoca UNIX, quindi è bastato usare date "01 gen 2005 12:10" +%s per ottenere la data da incollare in mysql.