Zeroshell – Net Balancing – Multi WAN Ip – Virtual Server

Cari miei visitatori, oggi vi voglio mostrare come si può perdere la testa per una settimana per poi vantarsene

Premessa

Per realizzare quanto vi mostrerò ho utilizzato una distribuzione Linux denominata ZeroShell che più che una distribuzione è autentica “manna” caduta dalle mani di Fulvio Ricciardi.

La distribuzione, senza scendere nei particolari, permette di avere subito attivo un firewall completo di molte altre funzionalità. Inoltre la sua configurazione è realizzabile con pochi click del mouse seguendo semplici percorsi guidati. Scaricate e provate subito questa distribuzione che vi permetterà di prendervi delle belle soddisfazioni. Link alla pagina del download

Tornando a noi, il quesito da risolvere era :

Problema

Avendo a disposizione :  due connessioni Internet (di due ISP diversi) di cui una con i tipici 8 IP statici; tre server interni rispettivamente web, ftp e mail; una lan interna da collegare; come posso unire tutto questo in modo da avere : la lan protetta dal firewall; il net balancing con le due connessioni; i server raggiungibili dall’esterno e protetti (quindi non dmz pura bensì virtualserver con firewall) ?

Diamo per assunto i seguenti valori :

IP Provider 1 (ipotizziamo pubblici) 10.10.10.1/29 255.255.255.248 quindi da 10.10.10.1 a 10.10.10.8 ma possiamo usare da 10.10.10.2 a 10.10.10.7
IP Provider 2 (ipotizziamo pubblico) 172.16.1.1 255.255.255.254
Classe LAN192.168.0.1/24 255.255.255.0
Classe DMZ192.168.1.1/29 255.255.255.248
IP Server MAIL192.168.1.2
IP Server WWW192.168.1.3
IP Server FTP192.168.1.4
IP ZeroShell 192.168.1.1 192.168.0.1

Soluzione (forse) Innanzitutto ci server una macchina mooolto potente

, andrà bene un … : CPU 2GHz, 512 MB di Ram, 40 GB di hard disk, 4 schede di rete, lettore CD-Rom e monitor/mouse/tastiera.

Dopo l’installazione, che non spiego anche perchè veramente tanto semplice e ad ogni modo fate riferimento ad una delle tante guide reperibili presso il sito della distribuzione, ci ritroviamo con la nostra bella paginetta di amministrazione.

A questo punto dobbiamo realizzare la seguente impostazione dal menù SYTEM -> SETUP ->NETWORK

InterfacciaIndirizzo IPNote
ETH00192.168.0.1 – 255.255.255.0IP interfaccia LAN
ETH01 10.10.10.2 – 255.255.255.248 10.10.10.3 – 255.255.255.248 10.10.10.4 – 255.255.255.248 10.10.10.5 – 255.255.255.248 10.10.10.6 – 255.255.255.248 IP Interfaccia router provider 1
ETH02172.168.1.1 – 255.255.255.254IP Interfaccia router provider 2
ETH03192.168.1.1 – 255.255.255.248IP Interfaccia DMZ

Ora non ci resta che aggiungere all’interno della finestra SYSTEM -> SETUP -> STARTUP/CRON le seguenti regole di iptables

#Permettiamo di avere le connessioni in incoming direttamente verso i rispettivi server www/ftp/mail

iptables -t nat -I PREROUTING 1 -d 10.10.10.2 -i ETH01 -j DNAT --to-destination 192.168.1.2
iptables -t nat -I PREROUTING 1 -d 10.10.10.3 -i ETH01 -j DNAT --to-destination 192.168.1.3
iptables -t nat -I PREROUTING 1 -d 10.10.10.4 -i ETH01 -j DNAT --to-destination 192.168.1.4

#Permettiamo di avere le connessioni in outgoing dai rispettivi server www/ftp/mail

iptables -t nat -I POSTROUTING 1 -s 192.168.1.2 -o ETH01 -j SNAT --to-source 10.10.10.2
iptables -t nat -I POSTROUTING 1 -s 192.168.1.3 -o ETH01 -j SNAT --to-source 10.10.10.3
iptables -t nat -I POSTROUTING 1 -s 192.168.1.4 -o ETH01 -j SNAT --to-source 10.10.10.4

Dopo aver definito queste regole che permettono ad un server sulla DMZ nella classe 192.168.1.X di essere raggiunto ma anche di rispondere, stiamo quindi parlando di NAT 1:1, passiamo alla configurazione del firewall. Aggiungiamo le seguenti regole per ogni chain

CHAIN : FORWARD / POLICY : DROP

Seq  Input    Output   Description
1    ETH00    *        ACCEPT all opt -- in ETH00 out * 0.0.0.0/0 -> 0.0.0.0/0    no    
2    ETH03    *        ACCEPT all opt -- in ETH03 out * 0.0.0.0/0 -> 0.0.0.0/0    no    
3    *        *        ACCEPT all opt -- in * out * 0.0.0.0/0 -> 0.0.0.0/0 state RELATED,ESTABLISHED    no    
4    ETH03    ETH01    ACCEPT all opt -- in ETH03 out ETH01 192.168.1.0/29 -> 0.0.0.0/0    no    
5    ETH01    ETH03    ACCEPT tcp opt -- in ETH01 out ETH03 10.10.10.2 -> 192.168.1.2    no    
6    ETH01    ETH03    ACCEPT icmp opt -- in ETH01 out ETH03 0.0.0.0/0 -> 0.0.0.0/0 icmp type 8    no  
7    ETH01    ETH03    ACCEPT tcp opt -- in ETH01 out ETH03 10.10.10.3 -> 192.168.1.3    no
8    ETH01    ETH03    ACCEPT tcp opt -- in ETH01 out ETH03 10.10.10.4 -> 192.168.1.4    no

CHAIN : INPUT / POLICY : DROP
Seq  Input    Output     Description
1    ETH00    *          ACCEPT all opt -- in ETH00 out * 0.0.0.0/0 -> 0.0.0.0/0    no    
2    ETH03    *          ACCEPT all opt -- in ETH03 out * 0.0.0.0/0 -> 0.0.0.0/0    no    
3    *        *          ACCEPT all opt -- in * out * 0.0.0.0/0 -> 0.0.0.0/0 state RELATED,ESTABLISHED    no    

CHAIN : OUTPUT / POLICY : ACCEPT

Nessuna regola

Ora passiamo al NetBalancing

Nella finestra NETWORK -> NET BALANCER configureremo i 2 gateway utilizzando il pulsante “add” relativo alla Gateway List. In questo modo avremo i due

Gateway Description    IP Address    Interface    Weight    Status    Faults   
provider1             10.10.10.1    2         Active    0   
provider2             172.16.1.2    1         Active    0

Nella relativa schermata del NAT aggiungete le interfacce che volete nattare, quindi ETH01 ed ETH02.

Nel caso abbiate il server smtp solo con uno dei due provider potrete aggiungere una regola al net balancing attraverso la finestra : NETWORK -> NET BALANCER -> BALANCING RULES dove diremo :

1    *    *    MARK tcp opt -- in * out * 192.168.0.1/24 -> 0.0.0.0/0 tcp dpt:25 MARK set 0x65    provider1 (10.10.10.1)

Fatto! Ecco che ora avrete la vostra rete protetta da un fantastico firewall.

Buona navigazione.