IPCop – Come aprire la rete Green alla rete Blue

La Blue Net di IPCop serve ad interfacciare una connettività wifi che si ntende mantenere separata dalla rete locale LAN (Green Net). Questo per consentire una maggiore sicurezza, dal momento che gli endpoint che si collegano ad IPCop tramite wifi non vedranno la rete locale a meno di aprire le porte desiderate per i protocolli TCP ed UDP.

IPCop però non supporta nativamente il bridging delle schede di rete e non risulta agevole simulare il comportamento tipico dei router adsl comunemente in commercio nei negozi al giorno d’oggi. Non c’è modo infatti, tramite interfaccia grafica, di consentire il pieno accesso alla Green Net da parte dei computer che si collegano per mezzo della wifi (vedi ad esempio il trafico ICMP).

Mi è capitato di recente di installare una versione di IPCop con supporto wifi per mezzo dell’addon WLAN-AP e di dover simulare proprio il tipico comportamento dell’Access Point, dove la rete cablata è condivisa con quella senza fili.

Per abilitare tutto il traffico ho inserito alcune righe nel file /etc/rc.d/rc.firewall.local che è il file contenente i comandi da impartire al sistema operativo durante il boot per personalizzare le regole di firewalling senza interferire con la distribuzione:

/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p icmp -j ACCEPT
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p tcp -j ACCEPT
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p udp -j ACCEPT

Queste righe sono state inserite nella sezione start (ovviamente). In linea di principio, per abiitare un protocollo è sufficiente impartire il comando secondo a forma:

/sbin/iptables -A CUSTOMFORWARD -i 'blue device' -o 'green device' -p 'protocollo' -j ACCEPT

Per comodità, di seguito è riportato un esempio di rc.firewall.local che svolge questa attività:

#!/bin/sh
# Used for private firewall rules
# See how we were called.
case "$1" in
start)
## add your 'start' rules here
#morzello blue vs green
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p icmp -j ACCEPT
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p tcp -j ACCEPT
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p udp -j ACCEPT
;;
stop)
## add your 'stop' rules here
;;
reload)
$0 stop
$0 start
## add your 'reload' rules here
;;
*)
echo "Usage: $0 {start|stop|reload}"
;;
esac

Spero che questo articolo possa essere utile a chi deve ottenere questo risultato.

SGCop ver 1.4.21

Nuova versione di SGCop disponibile sul sito.

Anche questa volta non ci sono sostanziali differenze con la relativa versione di originale. L’unica modifica apportata riguarda l’upload degli aggiornamenti.
Da questa versione infatti il firewall punterà ad una cartella di questo sito per fare gli aggiornamenti e non più sul server di IPCop. Resta comunque possibile caricare i files di IPCop perchè il relativo certificato GPG è ancora presente.
Da notare che l’indice dei nuovi upgrade è ancora prelevato dal sito di IPCop; questo per consentire all’amministratore di sapere se ci sono nuovi aggiornamenti per la piattaforma (Io purtroppo non sono molto veloce a mantenere il codice sorgente).

Per qualunque informazione lasciate un post.

Alla prox.

SGCop Downloads

SGCop – Release 1.4.21
sources 1.4.21 – sgcop-src-1.4.21.tar.gz
update from 1.4.18 to 1.4.19 – sgcop-1.4.19-update.i686.tgz
update from 1.4.19 to 1.4.20 – sgcop-1.4.20-update.i686.tgz
avmdrv – 2.4.36-1 – sgcop-avmdrv-2.4.36-1.i686.tgz
install iso image 1.4.21 – sgcop-1.4.21-install-cd.i686.zip
install pxe image 1.4.21 – sgcop-1.4.21-install-pxe.i686.tgz
install usb fdd image – 1.4.21 – sgcop-1.4.21-install-usb-fdd.i686.img.gz
install usb hdd image – 1.4.21 – sgcop-1.4.21-install-usb-hdd.i686.img.gz
install usb zip image – 1.4.21 – sgcop-1.4.21-install-usb-zip.i686.img.gz
update from 1.4.20 to 1.4.21 – sgcop-1.4.21-update.i686.tgz

SGCop – Release 1.4.18
sources 1.4.18 – sgcop-src-1.4.18.tar.gz
update from 1.4.16 to 1.4.17 – sgcop-1.4.17-update.i686.tgz
avmdrv – 2.4.34-1 – sgcop-avmdrv-2.4.34-1.i686.tgz
install iso image 1.4.18 – sgcop-1.4.18-install-cd.i686.zip
install pxe image 1.4.18 – sgcop-1.4.18-install-pxe.i686.tgz
install usb fdd image – 1.4.18 – sgcop-1.4.18-install-usb-fdd.i686.img.gz
install usb hdd image – 1.4.18 – sgcop-1.4.18-install-usb-hdd.i686.img.gz
install usb zip image – 1.4.18 – sgcop-1.4.18-install-usb-zip.i686.img.gz
update from 1.4.17 to 1.4.18 – sgcop-1.4.18-update.i686.tgz

SGCop – Release 1.4.16
GnuPG Patch for SGCop 1.4.16 – sgcop-1.4.16-gnupg-patch.tar.gz
update from 1.4.15 to 1.4.16 – sgcop-1.4.16-update.i686.tgz
install usb zip image – 1.4.16 – sgcop-1.4.16-install-usb-zip.i686.img.gz
install usb hdd image – 1.4.16 – sgcop-1.4.16-install-usb-hdd.i686.img.gz
install usb fdd image – 1.4.16 – sgcop-1.4.16-install-usb-fdd.i686.img.gz
install pxe image – 1.4.16 – sgcop-1.4.16-install-pxe.i686.tgz
install iso image – 1.4.16 – sgcop-1.4.16-install-cd.i686.iso.zip
fcdsl drivers – 1.4.16 – sgcop-1.4.16-fcdsl.i686.tgz

SGCop ver 1.4.18

Ho appena finito di caricare sul sito tutti i files relativi alla nuova versione di SGCop.

Sostanzialmente non ci sono particolari modifiche al sistema operativo se non quelle indicate già nella release di IPCop 1.4.18.

Da parte mia ho solo aggiunto il certificato GPG al fine di rendere possibile gli upgrade direttamente dal frontend web come avviene per IPCop.
Poichè questa opzione è stata aggiunta solo adesso, chi volesse aggiornare il software già dalla versione 1.4.16 deve scaricare la patch sgcop-1.4.16-gnupg-patch.tar.gz disponibile su questo sito e copiarne il contenuto nella cartella /root.

Per quanto riguarda la release 1.4.17 tengo a precisare che non dovrebbero esserci problemi di spazio dato che non sono a conoscenza di Magnia multiprocessore. Il kernel smp non è disponibile in SGCop, dunque la directory /boot dovrebbe avere spazio sufficiente per fare l’aggiornamento alla versione 1.4.18 senza rimuovere alcun file.

Enjoy.

SGCop – The IPCop porting for Toshiba Magnia SG Series

Tempo fa ho attivato un contratto ADSL per connettermi ad Internet da casa. Quasi subito però mi sono accorto che i vari modem/router in circolazione non facevano al caso mio.
Io volevo una soluzione che mi consentisse di fare tante cose (VPN, Wi-Fi, DMZ, un piccolo server Web, …).
Sul mercato ho trovato tante alternative valide ma nessuna che mi lasciasse peinamente soddisfatto.
Così su Ebay ho comprato un Toshiba Magnia SG30.
Si tratta di un banalissimo PC di compatte dimensioni, senza monitor e tastiera ma con integrato due schede di rete ed uno switch.
Come soluzione era l’ideale, però il software che vi era montato non era più manutenuto da Toshiba e poi non era proprio quello che avevo in mente.
Come sistema operativo alternativo pensai subito a Linux, come distribuzione ad IPCop.
Unico problema e che IPCop non è fatto per essere installato su un pc senza mouse e tastiera, almeno non senza problemi. Del resto io volevo sfruttare tutte le potenzialità dell’hardware che avevo a disposizione.

Cos’è SGCop
SGCop nasce da una mia esigenza personale. In parole povere si tratta del porting di IPCop per i PC della serie Magnia SG (SG10,SG20 e SG30).

Le sostanziali differenze con IPCop sono:

- compilazione del codice ottimizzata per i686;
- supporto della console seriale (ttyS);
- supporto “grezzo” del display LCD.

Per quanto riguarda il resto, SGCop è al 100% compatibile con IPCop.

Poichè IPCop esegue codice compatibile con i sistemi i386, gli unici plug in che possono creare problemi sono quelli che installano moduli aggiuntivi nel kernel.

Purtroppo io non ho avuto molto tempo da dedicare al porting ed alcune cose non sono ancora completate.

Installare SGCop

Installare SGCop è facile come IPCop ed infatti è possibile seguire il manuale di IPCop per completare tutto il processo.

Tuttavia il processo di installazione originale prevede l’uso di una console virtuale (tty1,tty2,…) che non sul Magnia.
Poichè ho voluto lasciare la piena compatibilità con IPCop, per avviare l’installazione è necessario impartire il comando da console:

/bin/install [console]

Dove il parametro console puo essere /dev/tty2 se si dispone di un monitor ed una tastiera ovvero /dev/null in caso si stia utilizzando una console seriale (si perdono però i dettagli della installazione che IPCop invia su tty2).