{"id":332,"date":"2019-11-05T23:48:46","date_gmt":"2019-11-05T22:48:46","guid":{"rendered":"http:\/\/www.forlex.it\/blog\/?p=332"},"modified":"2021-11-17T09:18:30","modified_gmt":"2021-11-17T08:18:30","slug":"zeroshell-net-balancing-multi-wan-ip-virtual-server","status":"publish","type":"post","link":"http:\/\/www.forlex.it\/index.php\/2019\/11\/05\/zeroshell-net-balancing-multi-wan-ip-virtual-server\/","title":{"rendered":"Zeroshell &#8211; Net Balancing &#8211; Multi WAN Ip &#8211; Virtual Server"},"content":{"rendered":"\n<p>\nCari miei visitatori, oggi vi voglio mostrare come si pu\u00f2 perdere la testa per una settimana per poi vantarsene <\/p>\n\n\n\n<p><strong>Premessa<\/strong><\/p>\n\n\n\n<p>Per realizzare quanto vi mostrer\u00f2 ho utilizzato una distribuzione Linux denominata <a href=\"http:\/\/www.zeroshell.net\/\">ZeroShell<\/a> che pi\u00f9 che una distribuzione \u00e8 autentica &#8220;manna&#8221; caduta dalle mani di <a href=\"http:\/\/www.zeroshell.net\/contacts.php\">Fulvio Ricciardi<\/a>.<\/p>\n\n\n\n<p>La distribuzione, senza scendere nei particolari, permette di avere subito attivo un firewall completo di molte altre funzionalit\u00e0. Inoltre la sua configurazione \u00e8 realizzabile con pochi click del mouse seguendo semplici percorsi guidati. Scaricate e provate subito questa distribuzione che vi permetter\u00e0 di prendervi delle belle soddisfazioni. <a href=\"http:\/\/www.zeroshell.net\/download\/\">Link alla pagina del download<\/a><\/p>\n\n\n\n<p>Tornando a noi, il quesito da risolvere era :<br><br><strong>Problema<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"images\/stories\/zeroshell\/forlex-dia.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Avendo a disposizione :&nbsp; 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&#8217;esterno e protetti (quindi non dmz pura bens\u00ec virtualserver con firewall) ?<\/p>\n\n\n\n<p>Diamo per assunto i seguenti valori :<\/p>\n\n\n\n<table class=\"wp-block-table\"><tbody><tr><td>\nIP Provider 1\n(ipotizziamo pubblici)\n<\/td><td>\n10.10.10.1\/29 255.255.255.248\nquindi da 10.10.10.1 a 10.10.10.8 ma possiamo usare\nda 10.10.10.2 a 10.10.10.7\n<\/td><\/tr><tr><td>\nIP Provider 2\n(ipotizziamo pubblico)\n<\/td><td>172.16.1.1 255.255.255.254<br><\/td><\/tr><tr><td>Classe LAN<\/td><td>192.168.0.1\/24 255.255.255.0<br><\/td><\/tr><tr><td>Classe DMZ<\/td><td>192.168.1.1\/29 255.255.255.248<br><\/td><\/tr><tr><td>IP Server MAIL<\/td><td>192.168.1.2<\/td><\/tr><tr><td>IP Server WWW<\/td><td>192.168.1.3<\/td><\/tr><tr><td>IP Server FTP<\/td><td>192.168.1.4<\/td><\/tr><tr><td>IP ZeroShell<\/td><td>\n192.168.1.1\n192.168.0.1\n<\/td><\/tr><\/tbody><\/table>\n\n\n\n<p><strong>Soluzione<\/strong> (forse)\nInnanzitutto ci server una macchina mooolto potente <\/p>\n\n\n\n<p>, andr\u00e0 bene un &#8230; : CPU 2GHz, 512 MB di Ram, 40 GB di hard disk, 4 schede di rete, lettore CD-Rom e monitor\/mouse\/tastiera.<\/p>\n\n\n\n<p>Dopo l&#8217;installazione, che non spiego anche perch\u00e8 veramente tanto semplice e ad ogni modo fate riferimento ad una delle tante guide <a href=\"http:\/\/www.zeroshell.net\/documentation\/\">reperibili presso il sito della distribuzione<\/a>, ci ritroviamo con la nostra bella paginetta di amministrazione.\n<\/p>\n\n\n\n<p>A questo punto dobbiamo realizzare la seguente impostazione dal men\u00f9 SYTEM -&gt; SETUP -&gt;NETWORK<\/p>\n\n\n\n<table class=\"wp-block-table\"><tbody><tr><td>Interfaccia<\/td><td>Indirizzo IP<\/td><td>Note<\/td><\/tr><tr><td>ETH00<\/td><td>192.168.0.1 &#8211; 255.255.255.0<\/td><td>IP interfaccia LAN<\/td><\/tr><tr><td>ETH01<\/td><td>\n10.10.10.2 &#8211; 255.255.255.248\n10.10.10.3 &#8211; 255.255.255.248\n10.10.10.4 &#8211; 255.255.255.248\n10.10.10.5 &#8211; 255.255.255.248\n10.10.10.6 &#8211; 255.255.255.248\n<\/td><td>IP Interfaccia router provider 1<\/td><\/tr><tr><td>ETH02<\/td><td>172.168.1.1 &#8211; 255.255.255.254<\/td><td>IP Interfaccia router provider 2<\/td><\/tr><tr><td>ETH03<\/td><td>192.168.1.1 &#8211; 255.255.255.248<\/td><td>IP Interfaccia DMZ<\/td><\/tr><\/tbody><\/table>\n\n\n\n<p>Ora non ci resta che aggiungere all&#8217;interno della finestra SYSTEM -&gt; SETUP -&gt; STARTUP\/CRON le seguenti regole di iptables<br><br>#Permettiamo di avere le connessioni in <strong>incoming<\/strong> direttamente verso i rispettivi server www\/ftp\/mail<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">iptables -t nat -I PREROUTING 1 -d 10.10.10.2 -i ETH01 -j DNAT --to-destination 192.168.1.2<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">iptables -t nat -I PREROUTING 1 -d 10.10.10.3 -i ETH01 -j DNAT --to-destination 192.168.1.3<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">iptables -t nat -I PREROUTING 1 -d 10.10.10.4 -i ETH01 -j DNAT --to-destination 192.168.1.4<\/pre>\n\n\n\n<p>#Permettiamo di avere le connessioni in <strong>outgoing<\/strong> dai rispettivi server www\/ftp\/mail<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">iptables -t nat -I POSTROUTING 1 -s 192.168.1.2 -o ETH01 -j SNAT --to-source 10.10.10.2<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">iptables -t nat -I POSTROUTING 1 -s 192.168.1.3 -o ETH01 -j SNAT --to-source 10.10.10.3<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">iptables -t nat -I POSTROUTING 1 -s 192.168.1.4 -o ETH01 -j SNAT --to-source 10.10.10.4<\/pre>\n\n\n\n<p>\n\nDopo 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\n<\/p>\n\n\n\n<p>CHAIN : FORWARD \/ POLICY : DROP<br><br><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Seq&nbsp; Input&nbsp;&nbsp; &nbsp;Output&nbsp;&nbsp; Description<br><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">1&nbsp;&nbsp; &nbsp;ETH00&nbsp;&nbsp; &nbsp;*&nbsp;&nbsp; &nbsp;    ACCEPT all opt -- in ETH00 out * 0.0.0.0\/0 -&gt; 0.0.0.0\/0&nbsp;&nbsp; &nbsp;no&nbsp;&nbsp; &nbsp;<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">2&nbsp;&nbsp; &nbsp;ETH03&nbsp;&nbsp; &nbsp;*&nbsp;&nbsp; &nbsp;    ACCEPT all opt -- in ETH03 out * 0.0.0.0\/0 -&gt; 0.0.0.0\/0&nbsp;&nbsp; &nbsp;no&nbsp;&nbsp; &nbsp;<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">3&nbsp;&nbsp; &nbsp;*&nbsp;&nbsp; &nbsp;    *&nbsp;&nbsp;      ACCEPT all opt -- in * out * 0.0.0.0\/0 -&gt; 0.0.0.0\/0 state RELATED,ESTABLISHED&nbsp;&nbsp; &nbsp;no&nbsp;&nbsp; &nbsp;<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">4&nbsp;&nbsp; &nbsp;ETH03&nbsp;&nbsp; &nbsp;ETH01&nbsp;&nbsp; &nbsp;ACCEPT all opt -- in ETH03 out ETH01 192.168.1.0\/29 -&gt; 0.0.0.0\/0&nbsp;&nbsp; &nbsp;no&nbsp;&nbsp; &nbsp;<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">5&nbsp;&nbsp; &nbsp;ETH01&nbsp;&nbsp; &nbsp;ETH03&nbsp;&nbsp; &nbsp;ACCEPT tcp opt -- in ETH01 out ETH03 10.10.10.2 -&gt; 192.168.1.2&nbsp;&nbsp; &nbsp;no&nbsp;&nbsp; &nbsp;<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">6&nbsp;&nbsp; &nbsp;ETH01&nbsp;&nbsp; &nbsp;ETH03&nbsp;&nbsp; &nbsp;ACCEPT icmp opt -- in ETH01 out ETH03 0.0.0.0\/0 -&gt; 0.0.0.0\/0 icmp type 8&nbsp;&nbsp; &nbsp;no&nbsp; <br>7&nbsp;&nbsp; &nbsp;ETH01&nbsp;&nbsp; &nbsp;ETH03&nbsp;&nbsp; &nbsp;ACCEPT tcp opt -- in ETH01 out ETH03 10.10.10.3 -&gt; 192.168.1.3&nbsp;&nbsp; &nbsp;no <br>8&nbsp;&nbsp; &nbsp;ETH01&nbsp;&nbsp; &nbsp;ETH03&nbsp;&nbsp; &nbsp;ACCEPT tcp opt -- in ETH01 out ETH03 10.10.10.4 -&gt; 192.168.1.4&nbsp;&nbsp; &nbsp;no <br><br>CHAIN : INPUT \/ POLICY : DROP\n<br>Seq&nbsp; Input&nbsp;&nbsp; &nbsp;Output&nbsp;&nbsp; &nbsp; Description\n<br><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">1&nbsp;&nbsp; &nbsp;ETH00&nbsp;&nbsp; &nbsp;*&nbsp;&nbsp; &nbsp;      ACCEPT all opt -- in ETH00 out * 0.0.0.0\/0 -&gt; 0.0.0.0\/0&nbsp;&nbsp; &nbsp;no&nbsp;&nbsp; &nbsp;<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">2&nbsp;&nbsp; &nbsp;ETH03&nbsp;&nbsp; &nbsp;*&nbsp;&nbsp; &nbsp;      ACCEPT all opt -- in ETH03 out * 0.0.0.0\/0 -&gt; 0.0.0.0\/0&nbsp;&nbsp; &nbsp;no&nbsp;&nbsp; &nbsp;<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">3&nbsp;&nbsp; &nbsp;*&nbsp;&nbsp; &nbsp;    *&nbsp;&nbsp; &nbsp;      ACCEPT all opt -- in * out * 0.0.0.0\/0 -&gt; 0.0.0.0\/0 state RELATED,ESTABLISHED&nbsp;&nbsp; &nbsp;no&nbsp;&nbsp; &nbsp;<\/pre>\n\n\n\n<p>CHAIN : OUTPUT \/ POLICY : ACCEPT<br><br>Nessuna regola<\/p>\n\n\n\n<p>Ora passiamo al <strong>NetBalancing<\/strong><\/p>\n\n\n\n<p>Nella finestra NETWORK -&gt; NET BALANCER configureremo i 2 gateway utilizzando il pulsante &#8220;add&#8221; relativo alla Gateway List. In questo modo avremo i due<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Gateway Description&nbsp;&nbsp;&nbsp; IP Address&nbsp;&nbsp;&nbsp; Interface&nbsp;&nbsp;&nbsp; Weight&nbsp;&nbsp;&nbsp; Status&nbsp;&nbsp;&nbsp; Faults&nbsp;&nbsp; <br>provider1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  10.10.10.1 &nbsp;&nbsp;              2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Active&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; <br>provider2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  172.16.1.2 &nbsp;&nbsp;              1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Active&nbsp;&nbsp;&nbsp; 0<br><\/pre>\n\n\n\n<p>Nella relativa schermata del NAT aggiungete le interfacce che volete nattare, quindi ETH01 ed ETH02.<\/p>\n\n\n\n<p>Nel caso abbiate il server smtp solo con uno dei due provider potrete aggiungere una regola al net balancing attraverso la finestra : NETWORK -&gt; NET BALANCER -&gt; BALANCING RULES dove diremo :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">1&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; MARK tcp opt -- in * out * 192.168.0.1\/24 -&gt; 0.0.0.0\/0 tcp dpt:25 MARK set 0x65&nbsp;&nbsp;&nbsp; provider1 (10.10.10.1)<\/pre>\n\n\n\n<p>Fatto! Ecco che ora avrete la vostra rete protetta da un fantastico firewall.<\/p>\n\n\n\n<p>Buona navigazione.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cari miei visitatori, oggi vi voglio mostrare come si pu\u00f2 perdere la testa per una settimana per poi vantarsene Premessa Per realizzare quanto vi mostrer\u00f2 ho utilizzato una distribuzione Linux denominata ZeroShell che pi\u00f9 che una distribuzione \u00e8 autentica &#8220;manna&#8221; &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/www.forlex.it\/index.php\/2019\/11\/05\/zeroshell-net-balancing-multi-wan-ip-virtual-server\/\"> <span class=\"screen-reader-text\">Zeroshell &#8211; Net Balancing &#8211; Multi WAN Ip &#8211; Virtual Server<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/posts\/332"}],"collection":[{"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/comments?post=332"}],"version-history":[{"count":2,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/posts\/332\/revisions"}],"predecessor-version":[{"id":553,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/posts\/332\/revisions\/553"}],"wp:attachment":[{"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/media?parent=332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/categories?post=332"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/tags?post=332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}