NAS autocostruito (parte I)

Il mio vecchio muletto Pentium III 800 MHz cambia forma e diventa un NAS a tutti gli effetti!

Per circa quattro anni è stato un semplice PC con distro Mandriva Linux (ex Mandrake) collegato alla rete di casa dal quale potevo scaricare con torrent ed emule. Dati i consumi non molto ridotti (ho stimato all’incirca 120-150W a regime) per utilizzarlo lo accendevo solo alla bisogna… decisamente poco pratico. Ho allora deciso di trasformarlo in un server 24H/24 per avere qualcosa in più, tipo:

client bittorrent ed emule, con possibiltà di lanciare i download anche da remoto fuori casa
server FTP
server UPnP per streaming dei video direttamente sulla TV di casa

Eccolo prima della trasformazione, nel classico case ATX;

picture1

Volendolo tenere acceso tutto il giorno si è reso necessario apportare qualche modifica 1) per renderlo un pò più bello esteticamente 2) più silenzioso e 3) a più basso consumo possibile.

Per prima cosa ho scollegato tutte le parti interne rimuovendole completamente dal vecchio case, predisponendo il nuovo alloggio: il mio videoregistratore Sony ormai non più utilizzato.
La scheda madre può essere fissata allo chassis con viti di stesso taglio ma più lunghe. Su di essa riprendono posto CPU, memoria e scheda di rete:

picture4

A questo punto ho aperto l’alimentatore e riposizionato solo la scheda interna. Il nuovo hard disk da 250 GB prende posto sopra la scheda madre. Tutti gli appoggi sono stati realizzati con comuni tasselli distanziatori in plastica:

picture5

La pulsantiera originale del PC (power on/off e reset) più i led sono stati riallocati sul frontalino del VCR. La bocca del videoregistratore è invece utilissima per cambiare al volo l’hard disk senza aprire tutto. Ecco il risultato finale:

picture7

picture8

il PC nel nuovo case può stare tranquillamente in salotto senza dare troppo nell’occhio ma è ancora troppo rumoroso, consuma molto e il sistema operativo da classico computer desktop non va più bene (mouse, tastiera e schermo non ci sono più). Nella seconda parte vedremo i settaggi del BIOS e l’installazione/configurazione del nuovo OS (non Linux!) per completare l’opera.

picture6

Ecco alcuni contenuti dai quali sono stati presi idee e interessanti spunti:

http://nemonasserver.blogspot.com
http://www.pcsilenzioso.it/forum/showthread.php?t=16917
http://www.tomshw.it/forum/hard-disk-ssd-e-raid/141123-guida-costruire-un-nas.html

Alicekeygen 0.3, recupero chiavi WPA dal router Alice AGPF

Rilasciata la versione 0.3 di Alicekeygen. In questa nuova versione il tool prevede tre modalità di funzionamento:

  • modo istantaneo
  • modo dizionario
  • modo ricerca

alicekeygen

Nel modo istantaneo il tool genera immediatamente una lista di wpa candidate da provare. Occorre specificare l’SSID di rete, il mac address wifi della stessa rete e il file config aggiornato (incluso nel pacchetto).

$ ./alicekeygen s Alice12345678m 00:23:8E:01:02:03q agpf_config.txt

Nel modo dizionario il tool genera un file dizionario da passare a programmi esterni di bruteforcing quali aircrack-ngpyrit per recuperare la chiave WPA corretta. Una vasta gamma di opzioni permettono di raffinare il dizionario e ridurne le dimensioni. Il tempo necessario al recupero della chiave dipende ovviamente dalla velocità della macchina (CPU, estensioni CUDA, etc..) e dalla dimensione del dizionario. Per alcune stime sui tempi medi di recupero della chiave si veda la sezione “casi d”uso modalità dizionario”. I programmi esterni di bruteforcing, per poter funzionare correttamente, necessitano del file 4-way-handshake. In questa modalità il recupero della chiave è pressochè garantito.

Come si recupera il 4-way-handshake nei pacchetti EAPOL? Ecco un”ottima guida.

Il modo ricerca permette 1) di verificare che una data chiave wpa venga effettivamente generata da alicekeygen e 2) recuperare i dati associati a quella chiave (serie e seriale del router alice).

MySQL database replication using SCP and SSH

Did you know? One of the most important practices about networks and computers is backup. Sure it is! Backup can save your ass from catastrophic failures and its implementation costs almost nothing. So why people don’t do it? I don’t know.

However, another important thing to remember is to store the backup physically far away from the original data, for example uploading it on a remote server. At work I got a very small MySQL database which needed to be replicated on a remote server every 1 minute; to do so you can 1) install & setup the MySQL relication system or 2) use bash scripting!

Option 1) seems a waste of time and resources while the 2nd one seems a lot more suited for the problem and also a lot more funny.

On the origin machine (the computer which owns the original MySQL database) I created a simple script executed every minute by the local cron daemon.

First, we get a local dump of the database. Notice the fancy password 123456 🙂

mysqldump -u root -p123456 <database> > /tmp/db_dump.sql

Then, we move the local backup to the remote machine via the secure copy command scp. Scp is the union of SSH and CP. It takes a file and securely transfers it to a remote location.

scp -P 56022 -i <rsakey> /tmp/db.sql user@remotehost:/tmp

The local dump has been moved to the remote /tmp directory. Now we need to import the remote dump on the remote MySQL server. To do so, we should execute the following command on the remote machine!

mysql -u root -p123456 <database> < /tmp/db.sql

We can”t execute that command because we are not there! So, how to do it? Well, that”s one of the classic situation where SSH comes so handy! With SSH we can securely execute commands as we were in front of the remote keyboard! Nice huh? Just execute the local command:

ssh -p 56022 -i <rsakey> user@remotehost “mysql -u root -p123456 <database> < /tmp/db.sql”

 

A simple cron rule will execute the scripts every 1 minute, as expected:
#!/bin/bash
* * * * * root /var/students/update_db.sh