Draytek vs Firewall Linux

Prima di iniziare a scatenarvi faccio una premessa, sono un sistemista prevalentemente Linux, sono assolutamente convinto che l’Open Source sia, quasi sempre, la soluzione migliore (e non perchè costa poco o nulla); più avanti capirete il perchè della mia premessa.

Come ho detto sono un sistemista Linux pertanto se penso ad un firewall penso di farlo con l’ultima Debian a disposizione e ci installo sopra shorewall con i kit che negli anni mi sono messo a punto. Mi sono reso conto tuttavia negli anni che il firewall linux è sicuramente una soluzione doverosa in u ambiente IT di una certa dimensione, o quanto meno, dimensione a parte, in un ambiente in cui ci si renda conto dell’importanza di avere una sala macchine (possibilmente non in bagno) e non di una mensola su cui appoggiare tutto ciò che non usa nessuno.

Negli anni mi sono reso conto alcune situazione di rete (anche fino a 10 postazioni) non riescono a gestire la presenza di un firewall, tipicamente spesso ci sono problemi di tensione ed il firewall si spegne un po’ di volte al giorno (direte metti un UPS, dipende la maggioranza degli UPS che vedo in giro costano meno del mio pranzo quando arriva una sacro santa botta di tensione non possono fare altro che spegnersi) e puntualmente non ti ricordi di accenderlo. Tipicamente del firewall non se ne comprende l’utilità, grave errore, e lo si vede come un inutile balzello tecnologico o si riconduce alla deviazione mentale del “Signore del Computer” di turno, che in maniera lungimirante lo ha installato senza tastiera ne monitor (basta una console……se parte). Finisce che dopo un po’ di giornate faticose in questo stato il filesystem si deflagra e non funziona più nulla. Spiega al cliente quello che ti pare ma quello alla fine ti manda a ramengo le tue VPN e la tua sicurezza e passa a Team Viewer piuttosto che LogMeIn che sicuramente funzionano.

Circa sei ma mesi mi sono imbattuto per caso (acquisendo un nuovo cliente) in un router della Draytek, marchio che non avevo mai sentito e che ho guardato da subito con circospezione e diffidenza franco poi capirne il valore. ho studiato un po’ i modelli e ho stremato un po’ il supporto tecnico dell’importatore (che si trova in provincia di Torino) e alla fine mi sono fatto un’idea abbastanza chiara, sichhè in maniera coraggiosa ne ho acquistato uno e l’ho installato nella rete del mio ufficio al posto del Firewall.

Da li ho cominciato a piazzarlo ovunque avessi una di rete tale per cui al suo interno la gestione di un firewall apparisse problematica e la cosa ha portato i suoi benefici, quanto meno se va giù la corrente basta che la stessa torni su e lui funziona. Sicuramente il suo filesystem non patisce gli spegnimenti e le accensioni accidentali, in fondo si tratta di fare On piuttosto che Off.

Io opto sempre per prendere router che abbiano una o due porte WAN, lo uso esattamente come un firewall, lo piazzo tra la LAN e il router del fornitore dell’ADSL, a livello elettrico consuma meno di un pc sempre acceso, ha una gestione VPN di fondamentale rilevanza per il telelavoro ma soprattutto per la teleassistenza, ha un firewall classico configurabile piuttosto complesso e robusto e ha anche un firewall di “Contenuti” che non guasta.

A quanto sopra aggiungiamo copertura WiFi, una porta USB a cui collegare una stampante piuttosto che una chiavetta Internet (gestisce in maniera nativa il backup in 3G) piuttosto che un Hard Disk USB da condividere. La versione con due WAN gestisce due linee ed ha politiche di fail over piuttosto semplici da configurare (gestisce anche il bilanciamento di carico).

Alcune versioni hanno porte FXS a cui poter collegare telefoni o interni DECT che gestisce in maniera nativa (per esempio per collegare due sedi in vpn dati e fonia).

A corredo abbiamo ancora un sistema di esportazione dei log via socket (log server) e un sistema basico di alerting via posta elettronica piuttosto robusto.

Infine parliamo di prezzi, secondo me il costo è assolutamente equilibrato per quello che offrono soprattutto considerando che hanno veramente tanti modelli partendo dall’entry level (molto economico) per arrivare a modelli molto sofisticati (e di conseguenza costosi).

Per concludere (questa volta sul serio) questi router non sono i routerini che trovi al supermercato per 30 Euro ma sono macchine piuttosto complesse adatte ad una clientela aziendale e non sicuramente consumer, se poi ci aggiungiamo che il distributore è in Piemonte ed è molto collaborativo e cortese credo che non si possa chiedere di più.

Se avete domande contattatemi via mail e sarò contento di illustrarvi alcuni case history di varia complessità.

Gara di Tiro Operativo di UNUCI Voghera

Stradella (PV) – 29/06/2008

Domenica ho partecipato sotto il cappello (alpino) dell’ANA Sezione di Torino (mai espressione fu più calzante) alla gara di Tiro Operativo organizzata dalla sezione di Voghera dell’UNUCI. L’occasione è nata dalla frequentazione (sempre minore la mia) alle stesse competizioni di IDPA del Team Doppio Zero, club IDPA che fa riferimento alla suddetta sezione UNUCI.
Bella la gara e bella la compagnia, non posso dire altrettanto della mia personale performances, come sempre da un annetto a questa parte pessima.
Ma, come ho sempre sostenuto, per ora basta divertirmi (anche percheè se neanche mi divertissi dovrei spiegare a qualcuno cosa ci vado a fare).
Anche se la superficie non era grandissima tutto si è svolto in maniera rapida e puntuale, sono arrivato e dopo neanche 5 minuti ero già in linea che sparavo, cioè facevo rumore.
I 4 esercizi erano tutti ben congegnati e ben adattati alle linee di tiro, tutte partenze dal bancone, l’estrazione poteva effettivamente rappresentare qualche ombra per la sicurezza che ricordiamo essere al primo posto in queste manifestazioni.
Voglio ringraziare la sezione di Voghera dell’UNUCI per avermi invitato un minuto dopo aver deciso la data della gara ed avermi accolto calorosamente. Quando vedo gare di questo tipo partecipo sempre volentieri,
Con alcuni di loro ci vedremo sicuramente ai National IDPA.
Di seguito la classifica.
_classifica-29-06-08

A presto

DNS Dinamico su Pc Linux

Mi sono trovato nella condizione di mettere un firewall presso un’associazione la cui ADSL non disponeva di indirizzo ip pubblico statico, in uscita funziona tutto ma non è possibile erogare servizi (VPN) ne potersi collegare per la normale amministrazione del firewall.
Avevo sempre sentito parlare di DNS dinamico, ovvero di un servizio appoggiato presso un provider che mette a disposizione una serie di nomi registrati e li associa in tempo reale all’indirizzo che il gestore dell’ADSL ti ha dato.
Con questo sistema al variare dell’indirizzo ip assegnato dal gestore attraverso un software da installare su router o, come in questo caso, sul firewall si occupa di comunicarlo gestore del DNS dinamico, il quale provvederà ad aggiornare il record.
Questo servizio viene erogato da alcuni provider, alcuni anche in froma gratuita pur con qualche limitazione.
Io ho usato DynDNS, occorre creare un account (gratuito) ed installare (nel mio caso un firewall linux) ddclient (apt-get install ddclient).
Installato il pacchetto occorre compilare il file di configurazione ddclient.conf con i seguenti dati:


pid=/var/run/ddclient.pid
protocol=dyndns2
#use=if, if=eth1
use=web, web=http://checkip.dyndns.org
server=members.dyndns.org
login=username
password=password
pc.homelinux.com

L’ultima riga identifica il nome scelto da abbinare all’indirizzo dinamico.

Pubblicare un server FTP in DMZ

Oggi ho litigato con un problema, ovvero mettere un ftp al volo nella mia DMZ.
Ci arrivo, gli do la password, dopodichè non riesco a fare più nulla.
Le regole di forward erano corrette (infatti ci arrivavo tranquillamente).
L’FTP ovviamente funziona esclusivamente in modalità passiva.
Alla fine mi sono accorto, cercando su internet soluzioni che mancavano du e moduli, ovvero ip_conntrack_ftp e ip_nat_ftp.
In questo modo funzioana tutto correttamente.
Pertanto per pubblicare un server ftp in una DMZ occorreranno al minimo le seguenti regole

iptables -A FORWARD -i -m state --state RELATED,ESTABLISHED -j ACCEPT


iptables -A FORWARD -p tcp -o --dport 21 -j ACCEPT

ed al minimo i seguenti moduli (da attivare con il comando modprobe o da inserire in /etc/modules)

ip_conntrack_ftp
ip_nat_ftp

Non nascondo di aver trovato la soluzione su un forum, la giro per far si che possa servire a qualcuno.
Il mio stile (ammesso che ne abbia uno), come già citato nelle introduzioni, è molto scarno, scrivo solo quello che serve per risolvere piccoli problemi, le guide o gli howto più complicati sono un altra cosa e sono facilemente reperibili in rete.
Alla prossima.

Monitorare l’integrità dei file

Alcuni mesi fa mi sono trovato uno dei miei firewall (linux) “bucati”, il buco per fortuna non aveva causato danni tuttavia non mi ero accorto di nulla per alcune settimane.
Un consulente mi ha consigliato l’uso di uno script che una volta installato (per debian apt-get install integrit) effettua tutte le notti un controllo dei file (in base ad un elenco caricato nel file di configurazione) e alla fine manda una mail con l’elenco dei file modificati dal lancio precedente.
Ovviamente vanno messe sotto controllo esclusivamente cartelle che non devono variare se non per manutenzione volontaria.
Il sistema è ottimo poichè assolve a due problematiche specifiche:

  • Verificare che la macchina sia attiva (mi manda la mail)
  • Controllare che non siano stati manomessi i file o siano stati aggiunti software dannosi
  • Lo script per funzionare necessita di due file di cofigurazione, nello specifico:

    integrit.conf

    root=/
    known=/var/lib/integrit/known.cdb
    current=/var/lib/integrit/current.cdb

    / C

    !/backup
    !/cdrom
    !/dev
    !/etc
    !/floppy
    !/home
    !/lost+found
    !/media
    !/mnt
    !/proc
    !/root
    !/sys
    !/tmp
    !/var

    =/usr/include
    =/usr/X11R6/include

    =/usr/doc
    =/usr/info
    =/usr/share

    =/usr/X11R6/man
    =/usr/X11R6/lib/X11/fonts

    !/usr/src

    Le cartelle precedute dal carattere “!” sono da escludersi al controllo.

    integrit.debian.conf

    CONFIGS=”/etc/integrit/integrit.conf”

    EMAIL_RCPT=”root”
    ALARM_RCPT=”root”

    EMAIL_SUBJ=”[integrit] `hostname -f` – `date` ”
    EMAIL_FROM=”from: integrit@`hostname -f`”

    ALWAYS_EMAIL=true

    SAVECYCLE=30

    Quest’ultimo file si contiene le specifiche per l’invio delle mail.
    In questo caso il destinatario risulta essere root, potete camabiarlo con un indirizzo a piacimento oppure meglio ancora indicare un alias per l’utente root in /etc/alias in modo da tenere il file uguale per tutte le macchine in cui serve lo script.

    Generazione di file di configurazione per OpenVPN

    Trovandomi nella necessità di creare una serie di tunnel con OpenVPN ho scritto una piccola interfaccia in python per la creazione automatica dei file di configurazione client server.
    Il file di configurazione client ha estensione .ovpn poichè per le mie necessità il client è sempre Windows 2k o XP, il file di configurazione server ha invece estensione .conf poichè il server, sempre per le mie necessità, è Linux.
    Il programma attraverso domande successive chiede i parametri necessari per la scrittura dei file.
    Il programma è ovviamente impostato sulle mie necessità di criptazione.
    Lo trovo molto comodo come traccia da seguire per la creazione di un tunnel.

    genfileovpn.zip

    Creare l’interfaccia tun

    In alcune occasioni mi sono trovato nella necessità di dover creare manualmente l’interfaccia virtuale tun su un sistema Linux (poichè l’installazione del pacchetto Vtun non provvedeva alla sua creazione).
    Riporto il comando nudo e crudo:

    mknod tun c10 200

    Spero sia utile a qualcuno.

    Recuperare lo script iptables sulle release Debian

    Da un po’ di tempo a questa parte sulle distribuzioni debian è stato tolto l’utilissimo script /etc/init.d/iptables che cerca di default le regole nel file /var/lib/iptables/active è tuttavia possibile recuperarlo con i seguenti comandi

  • cd /usr/share/doc/iptables/examples/
  • gunzip -c oldinitdscript.gz > /etc/init.d/iptables
  • chmod + x /etc/init.d/iptables
  • cd /etc/init.d/
  • update-rc.d iptables defaults
  • cd /var/lib/
  • mkdir iptables
  • cp active /var/lib/iptables
  • Configurazione di minima di iptables

    Senza dilungarmi affatto nella spiegazione di iptables (ci sono fior di siti che ne parlano), di seguito metto un file di configurazione per iptables che permetta la messa in linea di un firewall per piccole reti che tenga chiuso in ingresso e limiti le porte in uscita.
    Più avanti commenterò a dovere.

    Generated by iptables-save v1.2.6a on Tue Mar 2 12:48:38 2004
    *mangle
    :PREROUTING ACCEPT [0:0]
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :POSTROUTING ACCEPT [0:0]
    COMMIT
    # Completed on Tue Mar 2 12:48:38 2004
    # Generated by iptables-save v1.2.6a on Tue Mar 2 12:48:38 2004
    *filter
    :INPUT DROP [0:0]
    :FORWARD DROP [0:0]
    :OUTPUT DROP [0:0]
    [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    [0:0] -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
    [0:0] -A INPUT -p tcp -m tcp --dport 5000 -m state --state NEW -j ACCEPT
    [0:0] -A INPUT -p udp -m udp --dport 5000 -m state --state NEW -j ACCEPT
    [0:0] -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
    #[0:0] -A FORWARD -i eth0 -o eth1 -m state --state NEW -j ACCEPT
    [0:0] -A FORWARD -i eth0 -p tcp -m state --state NEW -m multiport --dports ftp,telnet,ssh,smtp,pop3,imap2,imaps,pop3s,www,https,5000,3389,3306 -j ACCEPT
    [0:0] -A FORWARD -i eth0 -p udp -m state --state NEW -m multiport --dports ntp,5000,53,3306 -j ACCEPT
    [0:0] -A FORWARD -i tun+ -o eth0 -m state --state NEW -j ACCEPT
    [0:0] -A FORWARD -i eth0 -o tun+ -m state --state NEW -j ACCEPT
    [0:0] -A FORWARD -i eth0 -o eth0 -m state --state NEW -j ACCEPT
    [0:0] -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    [0:0] -A OUTPUT -p tcp -m state --state NEW -m multiport --dports ftp,telnet,ssh,smtp,pop3,imap2,imaps,pop3s,www,https,5000,3389,3306 -j ACCEPT
    [0:0] -A OUTPUT -p udp -m state --state NEW -m multiport --dports ntp,5000,53,3306 -j ACCEPT
    [0:0] -A OUTPUT -p icmp -j ACCEPT
    COMMIT
    # Completed on Tue Mar 2 12:48:38 2004
    # Generated by iptables-save v1.2.6a on Tue Mar 2 12:48:38 2004
    *nat
    :PREROUTING ACCEPT [257:29141]
    :POSTROUTING ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    [0:0] -A POSTROUTING -s 192.168.11.0/255.255.255.0 -o eth1 -j SNAT --to-source 85.34.163.218
    COMMIT
    # Completed on Tue Mar 2 12:48:38 2004