{"id":103,"date":"2011-04-01T15:21:56","date_gmt":"2011-04-01T13:21:56","guid":{"rendered":"http:\/\/blog.sfsoft.it\/?p=103"},"modified":"2012-07-05T15:18:32","modified_gmt":"2012-07-05T13:18:32","slug":"configurare-ubuntu-come-gateway","status":"publish","type":"post","link":"http:\/\/www.sfsoft.it\/blog\/2011\/04\/01\/configurare-ubuntu-come-gateway\/","title":{"rendered":"Configurare Ubuntu come gateway"},"content":{"rendered":"<p>Per impostare Ubuntu come <em>gateway<\/em> utilizziamo <em>iptables<\/em><\/p>\n<p>Innanzi tutto impostiamo l&#8217;inoltro degli <em>IP<\/em><\/p>\n<pre lang=\"bash\">sudo nano \/etc\/sysctl.conf<\/pre>\n<p>E impostiamo il valore <em>net.ipv4.ip_forward<\/em> a 1 ( \u00e8 possibile anche eseguire il veloce comando <em>echo &#8220;1&#8221; &gt; \/proc\/sys\/net\/ipv4\/ip_forward<\/em> ma poi la modifica si perde al riavvio della macchina )<\/p>\n<p>Facciamo rileggere il file\u00a0<em>\/etc\/sysctl.conf<\/em><\/p>\n<pre lang=\"bash\">sysctl -p<\/pre>\n<p>Ora abilitiamo il <em>NAT<\/em> e richiamiamolo dal file <em>\/etc\/rc.local<\/em> in maniera che venga richiamato ad ogni <em>boot<\/em><\/p>\n<pre lang=\"bash\">sudo nano \/etc\/rc.local<\/pre>\n<p>e inseriamo le seguenti righe<\/p>\n<pre lang=\"bash\">modprobe ip_conntrack\r\nmodprobe iptable_nat<\/pre>\n<p>Se \u00e8 richiesto usare connessioni <em>FTP<\/em> impostare anche queste due righe<\/p>\n<pre lang=\"bash\">modprobe ip_conntrack_ftp\r\nmodprobe ip_nat_ftp<\/pre>\n<p>Ora occorre impostare le regole del <em>firewall<\/em>, impostiamo da subito il mascheramento sull&#8217;interfaccia <em>WAN<\/em> ( <em>eth1<\/em> in questo caso \u00e8 la scheda di rete collegata al nostro modem\/router )<\/p>\n<pre lang=\"bash\">sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE<\/pre>\n<p>Abilitiamo il forward<\/p>\n<pre lang=\"bash\">sudo iptables -t filter -P FORWARD ACCEPT<\/pre>\n<p>Diamo poi i permessi a se stesso e ad eventuali connessioni gi\u00e0 stabilite<\/p>\n<pre lang=\"bash\">sudo iptables -A INPUT -i lo -j ACCEPT\r\nsudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT\r\nsudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT<\/pre>\n<p>Diamo i permessi solo alla nostra <em>LAN<\/em> per evitare che da fuori si colleghino<\/p>\n<pre lang=\"bash\">sudo iptables -A INPUT -s 192.168.1.0\/24 -i eth0 -j ACCEPT<\/pre>\n<p>Dopo di ch\u00e8 sta solo nel giocare con le regole di <em>iptables<\/em> per abilitare o meno i servizi che ci servono.<\/p>\n<p>Ovviamente le regole qui sopra se riavviamo la macchina spariscono, quindi serve salvare uno <em>script<\/em> e farlo eseguire al <em>boot<\/em> richiamato magari da <em>\/etc\/rc.local<\/em> o meglio quando la scheda di rete viene attivata editando <em>\/etc\/network\/interfaces<\/em> e aggiungendo l&#8217;opzione <em>post-up<\/em><\/p>\n<pre lang=\"bash\">auto eth0\r\niface eth0 inet static\r\naddress 192.168.1.1\r\nnetmask 255.255.255.0\r\nnetwork 192.168.1.0\r\nbroadcast 192.168.1.255\r\npost-up iptables-restore &lt; file-con-le-nostre-regole<\/pre>\n<p>In questo caso le regole devono essere senza la chiamata a <em>iptables<\/em>, per ottenere il file adatto basta fare un <em>dump<\/em> prima<\/p>\n<pre lang=\"bash\">sudo iptables-save &gt; file-con-le-nostre-regole<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Per impostare Ubuntu come gateway utilizziamo iptables Innanzi tutto impostiamo l&#8217;inoltro degli IP sudo nano \/etc\/sysctl.conf E impostiamo il valore net.ipv4.ip_forward a 1 ( \u00e8 possibile anche eseguire il veloce comando echo &#8220;1&#8221; &gt; \/proc\/sys\/net\/ipv4\/ip_forward ma poi la modifica si perde al riavvio della macchina ) Facciamo rileggere il file\u00a0\/etc\/sysctl.conf sysctl -p Ora abilitiamo il [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,3,23],"tags":[40,16,39,8,20,5],"_links":{"self":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/103"}],"collection":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/comments?post=103"}],"version-history":[{"count":21,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/103\/revisions"}],"predecessor-version":[{"id":683,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/103\/revisions\/683"}],"wp:attachment":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/media?parent=103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/categories?post=103"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/tags?post=103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}