Customizzare IPCop. Routing Statico con IPCop 2.x

Editare i files di configurazione manualmente senza alterare il sistema.

Routing Statiche IPCop

Benvenuti nel secondo articolo sulla customizzazione del Firewall IPCop. Se nell’articolo precedente avevamo analizzato la malleabilità di questa distribuzione Firewall con l’utilizzo di specifici Tools messi a disposizione, per il cambio delle porte d’accesso, aumentandone il livello di sicurezza. Oggi vediamo come personalizzare alcuni componenti essenziali di rete, manualmente, dove si richiede un certo livello di competenza sul mondo Linux, mantenendo un approccio più professionale.

Parliamo di Routing Statico.

L’instradamento Statico (in inglese static routing) è un metodo di routing che non implementa una tecnica adattiva. Le rotte tra i nodi di una rete sono descritte tramite percorsi fissati a priori.

Queste rotte generalmente sono inserite nel router dall’amministratore di rete. In questa maniera si può configurare un’intera rete (network) ma questo tipo di configurazione non è adatta a gestire gli errori (non è fault tolerant). Quando c’è un cambiamento nella rete o si verifica un errore tra due nodi collegati staticamente, il traffico non viene redirezionato verso altri percorsi tramite i quali sarebbe possibile portare il pacchetto a destinazione. La conseguenza è che i pacchetti per i quali il routing statico prevede il transito lungo un percorso momentaneamente interrotto dovranno attendere finché il percorso non sia stato riparato o finché l’amministratore di rete non abbia definito una nuova rotta. In questo scenario è inevitabile che molte richieste supereranno il proprio il tempo limite per essere trasmessi (timeout) prima che qualche intervento ripristini la rotta ed andranno perduti. Con IPCop è possibile utilizzare entrambe le strade sia statiche che dinamiche (di default).

In Pratica

Di solito capita di dover aggiornare le precedenti versioni del firewall IPCop. Per quelli che stanno usando una versione precedente, di solito la 1.4, per aggiungere delle Route Statiche si doveva intervenire manualmente nei files di configurazione. Ora con la nuova versione ed il cambio di Kernel, tutti i files di configurazione sono cambiati.

Nelle versioni precedenti si doveva editare il file /etc/rc.d/rc.local per aggiungere alcune righe di comando a mano. Nell’attuale versione il file si chiama /etc/rc.d/rc.event.local.

Viene chiamato file di avvio di IPCop e gestisce gli eventi di Arresto/Avvio/Riavvio, delle interfacce di rete (esclusa la RED) che vengono avviate o interrotte, o quando l’interfaccia RED/WAN si riavvia. Può contenere i propri comandi specifici da eseguire assieme a eventi particolari.

Ad esempio, lo script viene richiamato come questo al boot:

/etc/rc.d/rc.event.local system up

Il primo parametro è un evento: system, network, red, …

Il secondo parametro è un valore: up, down.

Guardate questo codice su come aggiungere i propri comandi al file. Per esempio, per l’installazione di un modem interno in fase di avvio, si deve editare il file così:

if [ ${1} == "system" -a ${2} == "up" ]; then
echo "Setting up modem"
setserial /dev/ttyS2 uart 16550A irq 12 port 0x2400
fi

(Perl) I numeri di IRQ e porta sono solo esempi, e varieranno su sistemi diversi.

Oppure, se si desidera attivare lo screen blancking di un terminale collegato a IPCop, che agisce come uno screensaver ed evita il burn-in dall’oscuramento dello schermo dopo un periodo di inattività, è possibile aggiungere questo:

if [ ${1} == "system" -a ${2} == "up" ]; then
echo -e "Enable screen blanking ... \033[9;1]"
fi

(Perl)

IMPORTANTE!!!
Il file rc.event.local non sarà sovrascritto da aggiornamenti ufficiali, ed è incluso nel set di file salvati quando si esegue il backup del sistema.

Regole Firewall Personalizzate o con assegnazione di routing statico

Altro file di customizzazione è /etc/rc.d/rc.firewall.local , richiamato dal file /etc/rc.d/rc.firewall .

Questo script Shell Bash permette agli amministratori di effettuare le proprie modifiche alle regole del firewall. In uso manuale basta editarlo con il comando:

# nano /etc/rc.d/rc.firewall.local

Come precedentemente abbiamo appreso, che questi sono i files da editare a seconda delle nostre esigenze, teniamo in considerazione anche le regole di customizzazione segnalate nel manuale ufficiale di IPCop: http://www.ipcop.org/2.0.0/en/admin/html/custom.html

Come aggiungere Static Routes sulla versione 2.x di IPCop, in modo permanente.

Editare il file:

# nano /etc/rc.d/rc.event.local

Aggiungendo:

if [ ${1} == "network" -a ${2} == "up" ]; then
/sbin/route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.1.1.1
fi

Verificare e visualizzare le tabelle di routing:

# route -n

Come aggiungere Regole Firewall Personalizzate in modo permanente:

Editare il file:

# nano /etc/rc.d/rc.firewall.local

Aggiungendo:

iptables -A CUSTOMFORWARD -i lan-1 -o lan-1 -j ACCEPT

Dove ci sono catene specifiche che gli utenti IPCop possono utilizzare per aggiungere le proprie regole, chiamate CUSTOMINPUT, CUSTOMFORWARD, CUSTOMOUTPUT, CUSTOMPREROUTING e CUSTOMPOSTROUTING.

ATTENZIONE!!!
Il file /etc/rc.d/rc.firewall.local non sarà sovrascritto da aggiornamenti ufficiali, ed è incluso nel set di file salvati quando si esegue il backup del sistema. Si richiede competenza nell’utilizzo di IPTables per Linux, app nativa nel modulo Netfilter del Kernell IPCop.

Scarica la guida Freeware a IPTables : http://sandrolnx.altervista.org/docs/GuidaPraticaIptables.pdf

Altra cosa interessante, segnalata da altri miei colleghi, è che si possono sfruttare queste personalizzazioni manuali anche nel caso ci sia la necessità di usare o rendere compatibili i trasformatori o adattatori USB-ETHERNET su alcuni dispositivi. Ovviamente solo dopo che il dispositivo sia dotato di Drivers conformi per il Kernel di IPCop.

Spero che questo articolo possa tornare utile a qualche operatore nel settore.
Buon Custom a tutti!!!

Rif: http://www.ipcop.org/2.0.0/en/admin/html/custom-rc-event-local.html
Rif:  http://www.ipcop.org/2.0.0/en/admin/html/custom-chains.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *