Condividi su Facebook
Alix Board ~ Realizzare un firewall domestico a costi contenuti
Scritto da: Monska il 01/05/2010 alle 19:18
Tag: Internet, Linux, Reti, Firewall.Visto 8338 volte.


Firewall

Molto spesso ho progettato di sostituire il classico router domestico con un qualcosa di più performante e più soddisfacente dal punto di vista della configurazione.
Le alternative che sono riuscito a trovare non sono mai state però delle soluzioni abbordabili economicamente, ma anche dal punto di vista della rumorosità e delle dimensioni.
Dopo molto tempo speso su siti in quasi tutte le lingue, sono giunto però ad una conclusione soddisfacente, che ha finalmente dato una risposta alla mia esigenza.

Nel post di oggi vogliamo mostrare una valida alternativa ai router domestici, mostrando come installare e configurare una distribuzione linux per essere utilizzata come firewall per la nostra rete domestica.
Per cominciare abbiamo bisogno dell'hardware necessario. La scelta è ricaduta su Alix Board di PC Engines. Più precisamente sul modello Alix 2D13.
Vi proponiamo la scheda tecninca di questa scheda:
Processore: AMD Geode LX800 a 500MHz
Ram:   256MB DDR DRAM
Archiviazione: Compact Flash Socket
Networking: 3 x LAN 10/100
I/O: 2 x USB, Seriale

]Alix Board Appliance

Con questo tipo di hardware ci siamo garantiti consumi bassissimi, assenza di rumore grazie alla totale mancanza di parti in movimento e delle prestazioni sufficienti per la gestione del nostro firewall.
Serve inoltre connettere il nostro computer al sistema attraverso la porta seriale. A tale scopo possiamo utilizzare un cavo seriale, oppure, nel caso di computer portatili, si può optare per un convertitore USB/Seriale.
Come disco viene utilizzata una Compact Flash. È necessario quindi una compact flash, che consigliamo da 4/8GB ed un lettore di compact flash per il nostro computer.
ATTENZIONE: i passi successevi sono correllati all'utilizzo dell'hardware sopra indicato; è comunque possibile seguire questi passi anche per l'installazione su altre piattaforme senza alcuna garanzia di funzionamento.

Grazie all'ottima gestione del networking, esistono moltissime distribuzioni *nix orientate ad essere sistemi firewall. Tra esse vi citiamo quelle da noi testate e che sono degne di nota per le funzionalità implementate:
~ PFSense
PFSense è una distribuzione basata su FreeBSD che integra un sistema firewall completo e molto prestante anche su hardware a basse prestazioni.
~ IPFire
IPFire è una distribuzione linux, anch'essa molto leggera, in grado di gestire tranquillamente una rete domestica sull'hardware proposto.

Tra le varie possibilità, quella che più ci è sembrata completa ed anche graficamente accattivante, è Endian Firewall.
Di questa distribuzione esiste una versione commerciale ed una community edition. Noi abbiamo testato la versione community, ed i risultati sono stati più che soddisfacenti.
L'installazione, però, risulta essere un po' ostica, a causa della mancanza di una schermata per la scelta del partizionamento del disco.
Il problema risulta facilmente risolvibile seguendo i seguenti passi:

1. Scarichiamo e masterizziamo l'ultima versione di Endian dal sito (al momento della stesura della guida la versione distribuita è la 2.3)

2. Colleghiamo il lettore di schede con la compact flash inserita nel computer

3. Facciamo bootare il nostro computer dal CD appena creato

4. Alla schermata di scelta lingua passiamo sulla tty3 schiacciando la combinazione di tasti ALT+F3; vedremo quindi la shell

5. Identifichiamo come è stata riconosciuta la nostra compact flash attraverso il comando fdisk -l

6. Identifichiamo inoltre quali sono i dischi rigidi e le partizioni presenti sul computer sempre attraverso il comando fdisk -l (in genere il disco primario è riconosciuto come hda o sda mentre la compatct flash come hdb o sdb);
abbiamo quindi reperito le informazioni necessarie per "ingannare" il sistema

8. Spostiamo nella cartella /dev con il comando cd /dev

9. Cancelliamo TUTTI i file associati ai dischi ed alle partizioni presenti nella cartella /dev: per esempio cancelliamo /dev/sda, /dev/sda1, /dev/sda2, ...

10. Rinominiamo tutti i file associati alla compact flash facendo quindi assumere ad essi i nomi del disco primario: per esempio mv /dev/sdb /dev/sda, mv /dev/sdb1 /dev/sda1, ...

Una volta eseguite queste operazioni siamo pronti a procedere con l'installazione. Torniamo quindi nella schermata di scelta lingua sulla tty1 con la combinazione di tasti ALT+F1.
Scegliamo la lingua che più ci aggrada e proseguiamo nell'installazione.
Ci verrà richiesto un IP per l'interfaccia green. Scegliamo l'IP che diventerà poi l'ip del nostro firewall ed il nostro gateway. È quindi necessario ricordarsi successivamente di questo dato per accedere all'interfaccia amministrativa.
Quando l'installazione richiederà se abilitare il supporto alla porta seriale/console diamo risposta affermativa.
Nel caso l'installazione proponga l'utilizzo del RAID scegliamo di non utilizzare questa funzionalità.
L'unico punto delicato è il momento in cui la procedura di installazione mostra il disco sul quale verrà installato il sistema.
ACCERTIAMOCI che il device sia ESATTAMENTE quello che indica la compact flash.
ATTENZIONE: un errore in questo punto potrebbe costarci la perdita di TUTTI i dati presenti nel nostro computer. È ovviamente consigliabile, per evitare qualsiasi rischio, quando possibile l'utilizzo di un computer vecchio sul cui disco non risiedono dati vitali.

La durata dell'installazione dipende dal computer utilizzato. Una media è di circa 15/20 minuti.
Possiamo vedere l'installation progress sulla tty2 attraverso la combinazione di tasti ALT+F2.

Una volta che l'installazione è stata completata possiamo riavviare il computer e inserire la compact flash nell'apposito alloggiamento sulla Alix Board.
Colleghiamo ora il computer alla porta seriale del dispositivo ed avviamo il programma di gestione della porta seriale (consigliamo l'utilizzo di minicom, ricordandovi di configurare correttamente la porta seriale da utilizzare, che nel caso del convertitore USB/Seriale è in genere ttyUSB0).
Avviamo il dispositivo e vedremo il boot.
Dobbiamo ora compiere uno dei passi più importanti: all'avvio del grub è necessario premere il tasto e per editare la voce di boot.
L'obiettivo è specificare in maniera esplicita quale porta seriale utilizzare. Editiamo come segue la linea kernel:
kernel [...] console=ttyS0,38400n8 panic=10 quiet ro
Con questa direttiva stiamo specificando che vogliamo utilizzare la console ad un bitrate di 38400 e con opzione 8N1. Configuriamo quindi il nostro programma di gestione della seriale con i paramentri specificati.
Facciamo bootare il dispositivo ed attendiamo che appaia il prompt che ci mostrerà delle scelte. Editiamo la password dell'interfaccia web e la password dell'utente di sistema root attraverso l'utility proposta.
Scegliamo successivamente di accedere alla shell ed andiamo ad editare il file /boot/grub/grub.conf con le direttive precedenti in modo da rendere permanenti le nostre direttive.
Una volta completate le primissime operazioni di configurazione password colleghiamo il nostro computer attraverso un cavo di rete al dispositivo e settiamo un ip statico della stessa classe assegnata al dispositivo.
Attraverso un ping identifichiamo quale delle porte è stata assegnata come interfaccia green del dispositivo e lasciamo il cavo collegato ad essa.
Possiamo ora raggiungere attraverso un browser l'interfaccia di amministrazione della distribuzione puntando all'indirizzo assegnato in precedenza.
Completiamo tutti i passi proposti, a seguito dei quali verrà riavviato il dispositivo.
Una volta completato il riavvio, il nostro firewall sarà pronto all'uso.
Possiamo configurare a nostro piacimento tutte le utility messe a nostra disposizione attraverso una interfaccia semplice ed intuitiva:

]Endian Dashboard

Se siete interessati all'acquisto dell'hardware vi consigliamo di visitare il sito Varia Store, che vi permette di acquistare a prezzi veramente contenuti.


25/05/2010 - 09:27:44Gianni dice:
Il vero problema delle Alix board sono le scarse porte ethernet - se non si ha voglia di recuperare un vecchio modem ADSL usb una viene occupata dal vecchio router (che praticamente passa solo i dati a quello nuovo) e ne rimangono due. Troppo poche, lol.
10/06/2010 - 13:11:04Monska dice:
Si è vero, una porta di rete in più farebbe anche comodo, ma in una LAN domestica una volta che hai due zone LAN sei ben oltre alle normali esigenze casalinghe.
17/10/2010 - 18:39:31Roby dice:
Non funziona.
Ho provato ad installarla tramite un diverso pc con diversi controller e il kernel si riavvia continuamente...
Diverso controller e diverse posizioni (sda anzichè hda)..
Output:
[ 0.70357] i8042.c: No controller found.
[ 1.607974] ide_generic: I/O resource 0x1F0-0x1F7 not free.
[ 1.624704] ide_generic I/O resource 0x170-0x177 not free.
Mounting tmpfs on /dev
mount: bad UUIDmkrootdev: UUID (null) not found
mount: error 2 mounting ext3 flags noatime
well, retriyng without the option flags
mount: error 2 mounting ext3
well, reterying read-only without any flag
mount: error 2 mounting ext3
ERROR opening /dev/console!!!!: 2
switchroot: mount failed: 22
[ 1.877823] Kernel panic - not syncing: Attempled to kill init!
[ 1.895583] Rebooting in 10 seconds..

Soluzioni?
17/10/2010 - 19:58:49Roby dice:
Aggiungo grub.conf modificato come da tuo post:

timeout 3
foreground = 16064e
background = ffffff
serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1
terminal --timeout=2 serial console

title EFW (2.6.27.19-72.e25)
root (hd0,0)
kernel /boot/vmlinuz-2.6.27.19-72.e25 root=UUID=(null) console=ttyS0,38400n8 panic=10 quiet ro
initrd /boot/initrd-2.6.27.19-72.e25.img
savedefault
18/10/2010 - 14:54:33Monska dice:
Ciao Roby, da quello che posso vedere è un errore nella riga del kernel: root=UUID=(null).

Questa istruzione non può funzionare poichè in questo modo non stai specificando quale partizione deve essere montata come ROOT.

Prova a sostituirla con:

root=/dev/hda1

e fammi sapere se questa modifica funziona.

Probabilmente in fase di installazione qualcosa non è andato a buon fine nell'identificazione della UUID della partizione.

Puoi anche provare a recuperare la UUID montando la CARD sul tuo computer e eseguendo il comando:

# blkid

Non esitare a commentare per qualsiasi ulteriore informazione.
19/10/2010 - 00:17:10Roby dice:
Se non sbaglio avevo già provato con /dev/hda1, sempre se sull' alix la CF è considerata primary master..

Appena posso riprovo.
Ma non è possibile installarla tramite boot ethernet pxe come con IPCop?
19/10/2010 - 00:26:57Roby dice:
-il broblema penso sia dovuto anche al fatto che utilizzo un lettore usb, quindi viene montata come SDA, ma poi la utilizzo su un Pata
19/10/2010 - 09:49:38Monska dice:
Guarda anche io la installo con un lettore usb e questo problema me lo ha dato una sola volta e ho risolto con /dev/sda. Un altro consiglio: prova a togliere il quiet dalla riga del kernel e vedere se ti da informazioni in più perchè io avevo visto che lo prendeva come sda in questo modo.
19/10/2010 - 12:24:50Roby dice:
Postereste cortesemente il vs. grub.conf?
(dato che l' impaginazione mette a capo le righe, mettete un commento o tra una riga e l' atra)
Grazie
19/10/2010 - 14:29:28Roby dice:
Questo dovrebbe essere la con corretta:

root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
kernel /boot/vmlinuz-2.6.27.19-72.e25 root=/dev/hda2 console=ttyS0,38400n8 panic=10
[Linux-bzImage, setup=0x3000, size=0x1e8b90]
initrd /boot/initrd-2.6.27.19-72.e25.img
[Linux-initrd @ 0xffcf000, 0x2086c bytes]
savedefault

Ora parte, ma quando carica i vari demoni, oltre che a farlo in maniera lenta, da un errore:

---
Endian Firewall starting up...
---
Boot Progress: 0% (0/51) Service: save_defaults
Boot Progress: 41% (21/51) Service: firewall
Boot Progress: 49% (25/51) Service: dnsmasq
Boot Progress: 56% (29/51) Service: emi
Boot Progress: 60% (31/51) Service: templatecreation
Boot Progress: 66% (34/51) Service: ipsec
Boot Progress: 84% (43/51) Service: smtpscan
Boot Progress: 88% (45/51) Service: squid
System ready.

Dumping boot messages
ioctl: Invalid argument
ioctl: Invalid argument
ioctl: Invalid argument
ioctl: Invalid argument
INIT: Entering runlevel: 3

Release: Endian Firewall Community release 2.4.0

Management URL: https://192.168.1.254:10443
Green IP : 192.168.1.254/None
-----------------
0) Shell
1) Reboot
2) Change Root Password
3) Change Admin Password
4) Restore Factory Defaults
Choice:
19/10/2010 - 15:22:38Roby dice:
Prime impressioni:
Molto intuitivo e versatile: spam assassin, antivirus...ecc

Contro:
Su una configurazione hardware con Aix2d3 (3Lan - Cpu 500Mhz) e CF 4GB la cpu risulta libera al 68% (media), mentre la ram è libera solamente al 30% (media). Con un pc solo, attualmente la ram libera è al 17% !

L' installazione partiziona in automatico senza la swap e ne crea 2 ext3 (file system non molto adatto ad una CF).

Potrei provare ad installare il tutto su un HardDisk 120Gb 2,5", magari sperando di poter decidere se e come inizializzare una partizione di swap!
19/10/2010 - 15:30:36Roby dice:
Retifico:

Cup libera attualmente al 94%
Ram libera sempre al 17%
con un sulo pc in navigazione/Yourube
19/10/2010 - 23:58:00Roby dice:
Appena ho un po di tempo la proverò su HD che comunque è più prestante e sicuro visto il FS installato. Dovrò inoltre vedere se sarà possibile creare 1GB di Swap: che mi dire?
Approposito, su alix il disco deve essere montato come hdc giusto?

Grazie
20/10/2010 - 09:08:20Monska dice:
Per il disco mi pare di si per l'hdc.
Per quanto riguarda lo swap puoi fare 2 cose:
- la crei e la monti tu a mano
- usi una CF più grande (8GB)
Inoltre ti consiglio di usare la release 2.3 di endian che risulta essere molto più leggera della 2.4.
20/10/2010 - 10:54:51Roby dice:
Tu usi la 2.3? Che differenze ci sono? Quanta ram e cpu impegna e che servizi hai attivi?
La 2.3 viene comunque tenuta aggiornata (quantomeno a livello di bug/sicurezza)?

E' possibile partizionare il disco durante l' installazione o fa tutto sempre in automatico?
Come hai partizionato il disco (successivamente se non prima)?
Pensavo di allocare 2GB di swap all' inizio dell' Hard Disk, subito dopo la partizione di boot, che ne pensi?
21/10/2010 - 00:10:15Monska dice:
Io uso la 2.3.
Premetto immediatamente che il partizionamento avviene sempre in maniera automatica (se non ricordo male anche altre distro firewall fanno così come pFsense, ipFire e Monowall), la differenza è che mettendo un CF da 8GB ha dedicato 500MB allo swap.
Per creare altre partizioni, cosa che io NON HO MAI FATTO, penso basti usare GParted, o un altro software di partizionamento, su un PC e sistemare successivamente a mano il file /etc/fstab e /boot/grub/grub.conf.
Comunque secondo me 2GB di swap su questo dispositivo sono esagerate e a occhio rimarrebbero inutilizzate, ti consiglio di aggiungere al più 1GB.

A livello prestazionale la 2.3 è decisamente più rapida e reattiva. Poche settimane fa ho provato ad aggiornare alla 2.4 ma risultava troppo lenta e devo essere sincero non ho nemmeno letto tutti i servizi che attiva al boot ma c'è qualcosa in più rispetto alla 2.3. Tengo a sottolineare che per uso domestico la 2.3 risulta eccellente comunque.
Benchmark:

6 dispositivi connessi, openvpn attivo ma nessun client connesso, appena finito di presentare la dashboard
CPU 1 => 34%
MEM => 33% (249MB)
SWAP => 0% (512MB)

6 dispositivi connessi, openvpn attivo 1 client connesso, appena finito di presentare la dashboard
CPU 1 => 43%
MEM => 38% (249MB)
SWAP => 0% (512MB)

Ho differenziato sulla VPN poichè è la cosa che più pesa proceduralmente.
Spero che queste informazioni ti possano essere d'aiuto.
21/10/2010 - 02:15:39Roby dice:
La 2.3 prevede l' utilizzo di spamassassin e antivirus? Lo chiedo più per curiosità che per una reale esigenza, visto che sulla 2.4 sono presenti.

Per quanto riguarda i 2GB di Swap, chiaramente intendevo su un disco rigido ide da 120GB che avrei disposizione (inoltre, da NRG-Systems dovrebbe arrivarmi a giorni un case con supporto HD).
Ad ogni modo, visto le risorse e visto che comunque il sistema ha solo 256Mb di ram, concordo per il giga. Pensavo, tramite Gparted, di spostare le partizioni e inserire lo swap subito dopo la partizione di boot, che dici? (ovviamente dovrei modificare anche grub oltre che fstab).
30/10/2010 - 11:22:11Monska dice:
Scusa per il ritardo...
Comunque si la 2.3 prevede spamassassin e antivirus.
04/04/2011 - 12:13:48leleee dice:
ciao, sarei interessato a installare ipfire sull alix il problema e' che prima dell ip chiede che schede di rete associare e installandolo da un altro pc sulla memoria mi vede le schede di rete del pc in uso non dell alix...

distinti saluti
11/04/2011 - 15:29:07Monska dice:
Ciao leleee, puoi tranquillamente dire al sistema di configurare le interfacce del tuo portatile, poi, spostando la card nell'alix, riconfigurare le interfacce attraverso l'apposito TAB o connettendoti attraverso la porta console.
Altra possibilità sarebbe installare ipfire attraverso una macchina virtuale alla quale configuri 3 schede di rete come nell'Alix e passi come disco direttamente la card.
Ad ogni modo, con un po' di giri, riesci a configurare le interfacce affinchè funzionino correttamente.

Aggiungi un commento:
Nick:
captchaInserire il codice:





Licenza Creative Commons

Blog CodiceASbarre.Net di CodiceASbarre.Net sotto licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Italia License.
Lavoro basato su www.codiceasbarre.net.
Ulteriori permessi in merito questa licenza possono essere richiesti a info@codiceasbarre.net.


Link ad altri blog: