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 LAN | 192.168.0.1/24 255.255.255.0 |
Classe DMZ | 192.168.1.1/29 255.255.255.248 |
IP Server MAIL | 192.168.1.2 |
IP Server WWW | 192.168.1.3 |
IP Server FTP | 192.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
Interfaccia | Indirizzo IP | Note |
ETH00 | 192.168.0.1 – 255.255.255.0 | IP 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 |
ETH02 | 172.168.1.1 – 255.255.255.254 | IP Interfaccia router provider 2 |
ETH03 | 192.168.1.1 – 255.255.255.248 | IP 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.