DD-WRT continua a reimpostare la crittografia da AES a TKIP: ecco come risolvere

Possiedo un router Cisco WRT54G con il firmware DD-WRT versione v24 preSP2 [Beta] Build 14896. Da parecchio riscontro dei problemi con il segnale wifi che saltuariamente diventa debole o instabile e mi tocca riavviare l’antenna. Tuttavia ciò è sopportabile, invece il problema che mi affliggeva da un paio di giorni era ben più serio: il segnale Wi-Fi dell’interfaccia fisica non era utilizzabile, mentre quello di un’interfaccia virtuale che ho attivato sì.

Dopo un breve controllo è venuto fuori che il tipo di crittografia impostato per la protezione WPA sull’interfaccia fisica era TKIP, mentre quello dell’interfaccia virtuale AES. Oltretutto, nel forum ufficiale un utente aveva avuto un problema analogo e aveva riportato una indicazione abbastanza chiara da un altro thread:

Please note that WPA2-AES is the only security type that works reliably with DD-wrt.

Tutto contento ho cambiato l’impostazione e ho controllato che funzionasse. Effettivamente il problema era risolto, ma è bastato riavviare il router per accorgermi che il problema era ritornato: il parametro si era reimpostato “da solo” a TKIP.

L'impostazione problematica dell'interfaccia fisica
L’impostazione problematica dell’interfaccia fisica

A questo punto ho cercato ancora un po’ in giro, finché non ho trovato altri utenti che avevano il mio stesso problema, ovvero la configurazione che non veniva salvata. La soluzione di uno di loro è stata chiarificatrice:

My nvram was exhausted– I had 17 bytes left. After freeing some space by removing comments in my Firewall script, the AES setting took, and my wireless worked flawlessly again.

Mi sono collegato subito via telnet al router collegandomi col cavo ethernet e ho usato il comando nvram show per vedere i contenuti e la dimensione della memoria interna, l’ultima riga recitava qualcosa come:

size: 32768 bytes (-7 left)

Veniva addirittura un numero negativo di byte rimanenti, indice che la memoria era totalmente piena. Nel mio caso il problema non era lo script del firewall, infatti i miei script personalizzati sono cortissimi, ma a quanto pare risiedeva nelle statistiche di traffico effettuate. Nel wiki di DD-WRT scrivono questo a riguardo:

The ttraff daemon can fill up a couple hundred bytes of nvram space every month. This may not seem like much but nvram is only ~32KB total and is full of lots of other data. Disabling ttraff and clearing it’s old nvram data is sometimes needed for devices with complex configurations, or to keep the router stable. This script will clear all of ttraff’s traffic data from nvram whereas using the ttraff GUI button to delete it still leaves the current month’s variable.

Effettivamente provando a dare nvram show | grep traf venivano fuori un sacco di dati, addirittura del 2011, contenenti le statistiche di quanti dati aveva generato il mio traffico internet dalla rete di casa. Se anche voi avete la memoria quasi esausta, vi consiglio perciò di eliminare la registrazione di questi dati e cancellarli.

Per prima cosa andate quindi all’interfaccia web del router, poi su Services e in fondo alla pagina disattivate il ttraff Daemon. Cliccate prima su Save e poi su Apply Settings. Ora collegatevi via telnet al router (assicurandovi di avere attivato nelle opzioni la possibilità di collegarvi) e dopo aver inserito come utente root e come password la stessa dell’interfaccia web, date questo comando:


for i in $( echo "01 02 03 04 05 06 07 08 09 10 11 12" ); do nvram unset traff-$i-2011; nvram unset traff-$i-2012; done

Come potete vedere è diverso da quello indicato nel wiki, in quanto io ho la versione “micro” del firmware e il comando cut non è presente. Col mio metodo cancellate il traffico di tutti i mesi del 2011 e del 2012, ma vi basta poco per adattarlo ad altri anni.

Ora potete controllare che tutto sia a posto dando di nuovo nvram show | grep traf e dovreste ottenere qualcosa di simile a questo:

ttraff_enable=0
size: 30559 bytes (2209 left)

Ora potete tornare all’interfaccia web e impostare la crittografia AES. Salvate le impostazioni, applicatele e poi riavviate il router. Vedrete che verranno mantenute.

Aggiornare il BIOS di un computer Dell senza Windows e senza una distro supportata

Aggiornamento 06/05/2012: ho scritto un altro articolo riguardo all’aggiornamento del BIOS senza Windows che non vale solo per Dell. Lo potete leggere qui.

Ormai l’ho lasciato trasparire da tutte le parti in modo aperto, come ben sapete, il fatto che ho acquistato un portatile Dell. Lo so, vi devo scrivere un post sull’installazione di Ubuntu, la configurazione, ecc. ecc… Ho già gli appunti pronti. 🙂

Tralasciando il motivo per cui ho fatto questa mossa incauta, ho fatto il downgrade del firmware. Il protatile mi è arrivato con la versione A09 ed io l’ho riportata alla A07. Questa mossa avrebbe dovuto darmi dei benefici che invece non ci sono stati, anzi…

Per questo motivo ho deciso di riaggiornarlo. 😛

Dell, fortunatamente, supporta l’aggiornamento da Linux (e che ci volete fare, Vista l’ho rimosso subito). Tuttavia, nasce un problema. Sono supportate solo alcune distribuzioni (mi va bene per fortuna… Ubuntu è tra queste) ma anche solo alcune versioni! In particolare in questo caso si va dalla 7.04 alla 8.04. Argh! E l’adorata Intrepid che uso io dov’è? Non c’è. :\

È fantastico sapere però, che qualunque cosa sia installata sul Dell, si può aggiornare il BIOS usando un cd live! Ebbene sì, è molto facile, e qui vi spiegherò brevemente come fare.

Per prima cosa procuratevi una ISO di Ubuntu 7.10 in versione Live CD (la 8.04 ha qualche problema di boot, almeno a me è successo così). A questo punto, dopo averla masterizzata, assicuratevi di poter connettere il computer via ethernet (è assai probabile che un’eventuale cifratura della vostra rete wi-fi non venga ben supportata da quella vecchia versione di Network Manager).

Fate il boot da CD e verificate di essere connessi alla rete. Aprite Synaptic e abilitate i repository universe (è fondamentale).

Ora entrate in un terminale e acquisite i privilegi di amministratore:

sudo -s

Adesso viene la parte divertente. Si tratta di scaricare e far partire uno script che preparerà il sistema (in questo caso live) alle operazioni successive:

wget -q -O - http://linux.dell.com/repo/firmware/bootstrap.cgi | bash

Rispondete alle noiose domande che vi verranno poste (vi toccherà molto probabilmente scrivere “yes” per esteso, siate pazienti) e una volta fatto proseguite andando avanti con l’installazione dei pacchetti:

aptitude install firmware-addon-dell
aptitude install $(bootstrap_firmware -a)

Al primo comando ci saranno altre domande noiose, mentre il secondo produrrà un sacco di output inguardabile riguardo a pacchetti mancanti. Ignoratelo. È arrivato il momento di aggiornare il firmware (che poi si occuperà di aggiornare il BIOS):

update_firmware

Infine, prima di fare qualsiasi altra cosa, assicuratevi che il computer sia alimentato da rete elettrica (non è così scontato per i laptop), nel caso attaccate la spina.

Non vi resta altro da fare che riavviare il sistema dall’apposito menù, attendere che il disco venga espulso e completare il riavvio. Vi si parerà davanti una schermata di questo tipo:

Aggiornamento del BIOS
Aggiornamento del BIOS