# iptables NAT

## rota

ciao o due schede eth0 eth1 

sulla eth0 o l'ip piublico ( di fastoweb )

sulla eth1 o l'ip statico per la rete locale

mi anno  detto di usare iptabled NAT mi sono letto un po di guide su www.gogle.it/linux

ma non sono sicuro di cosa devvo fare

se qualcheduno sà di cosa parlo mi  aiuta a capire ......

----------

## fedeliallalinea

Io quando l'ho fatto ho seguito questa guida spiega molto bene la cosa e sicuramente la spiga megli di quanto possa fare io  :Very Happy: 

----------

## rota

grazieeeeeeeeeeeeee  :Shocked: 

----------

## abaddon83

ti basta abilitare il masquering con una regola tipo questa ^^

iptables -t nat -A POSTROUTING  -o eth0 -s 192.168.2.0/24 -j MASQUERADE

questa dice che il traffico che ha come sorgente la rete 192.168.2.0/24 va mscherato l'ip sorgente e dice che l'uscita è -o eth0 (internet)

----------

## rota

io o scritto cosi 

# Linux 2.4

# Appendi una regola di pre-routing (-A PREROUTING) alla tabella NAT (-t nat) 

# in modo che i pacchetti TCP (-p tcp) destinati all'indirizzo 1.2.3.4 (-d 

# 1.2.3.4) porta 8080 (--dport 8080) siano diretti (-j DNAT) verso l'indirizzo

# 192.168.1.1, porta 80 (--to 192.168.1.1:80).

iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 8080 \

        -j DNAT --to 192.168.1.1:80

solo che mi da errore :

bad argument j

----------

## rota

aem... mo provvo 

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE 

solo che non o capito una cosa ma la shedda eth1 non ce la metto???

----------

## rota

aspetta se o capito bene 

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE 

192.168.2.0/24  sarebbero gli ip localii ( eth0 )   :Question: 

----------

## Ty[L]eR

 *rota wrote:*   

> 
> 
> 192.168.2.0/24  sarebbero gli ip localii ( eth0 )  

 

un range di IP della tua lan... nel tuo caso mi sembra che sia eth1 se non ho capito male... poichè eth0 è fastzoz

----------

## rota

si me so sbaliato a scrivve:  :Embarassed:   :Sad: 

una cosa non mi è chiaro ma perche devvo metterci acnhe /24 non basta l'indirizzo della shedda con l'ip staticho???

io com co messo pure /24 

pero mi chieddo 1 ) come faccio a vedere cosa o creato 

2) è quando riavvio che succede come faccio a  fare in mo do che non mi tocca ripetere il comando ogni volta????

----------

## rota

quello che a me servve è che le due shedde diventino cme se fosse una 

m.. unaltra cosa squid potrebbe dare probb.

----------

## Truzzone

Mi 'intrometto' in questo thread per chiedere una cosa:

Ho due schede di rete nel mio serverino, in (eth0) ho collegato il router/modem ethernet e nell'altra (eth1) ho collegato lo switch, dove sono collegati anche altri pc a cui devo offrire internet e spazio di condivisione comune nel serverino, come devo configurare le 2 schede nel file /etc/conf.d/net ?

Questa sintassi è corretta:

```

iface_eth0="192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0"

iface_eth1="192.168.1.1 broadcast 192.168.0.255 netmask 255.255.255.0"

gateway="eth0/192.168.0.1"

```

Ciao by Truzzone   :Very Happy: 

----------

## rota

allora i o buttato giu il proxy è non riesco a vedere niente 

quando do il comando 

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE 

mi dice :

cant use  -o with PREROUTING

che o sbagliato???

----------

## federico

Il che e' vero,non puoi usare -o con PREROUTING ma se hai dato il comando che hai detto, ovvero con POSTROUTING quell'errore te lo sei inventato  :Smile: 

Devi dare il comando corretto con POSTROUTING

----------

## rota

m... io 

o scritto 

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE 

come mi anno sugg che ne so io come và scritto  :Embarassed: 

come lo devvo scrivvere allora  :Question: 

----------

## federico

Che e' corretto, ma dando quel comando e' IMPOSSIBILE che esca l'avviso per l'opzione PREROUTING...

Potresti mostrarci un po' di output di bash?

Fede

----------

## rota

allora mo o scritto bene il comando io sbagliavvo a scrivvere 

invece di scrivvere 

-A  POSTROUTING

scrivvevo 

-A  PREROUTING

mo ,lo corretto solo che si va bene non mi dà errori ma non mi permette di usare lo stesso internet  :Crying or Very sad: 

----------

## federico

L'ip forwarding e' attivo?

ot # cat /proc/sys/net/ipv4/ip_forward 

0

altair root # 

se ti da zero allora e' scorretto e devi fare

echo 1 >  /proc/sys/net/ipv4/ip_forward

----------

## PXL

io per abilitare il masquerade sul firweall ho semplicemente usato questo comando:

```
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
```

semplicemente tutto il traffico che va verso l'interfaccia ppp0, verrà mascherata con l'indirizzo in ppp0 =)

io non ho fastweb e quindi non so se ti viene creata una nuova connessione come ppp0, con ip pubblico, altrimenti metti al posto di ppp0 eth0 =)

buona fortuna

----------

## ProT-0-TypE

mi accodo a questo post perchè ho un piccolo problemino anche io

ho due schede di rete

eth0: 192.168.100.100 a cui è collegato il modem

eth1: 192.168.0.1 a cui è collegato un altro pc

Quali sono le regolette per fare il forwarding e far si che Internet funzioni pure sull'altro pc?

io ci ho provato ma mi apre alcuni siti si e altri no..

----------

## federico

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward

ps: e' impossibile che alcuni siti vengano aperti e altri no, in quel caso l'errore non e' da imputarsi a queste righe...

----------

## ProT-0-TypE

non sto usando il mio pc per cui non mi ricordo le mie regole.. mi ricordo solo che erano 3 righe, e mi sa che la prima era 

```
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
```

ppp0 al posto di eth0. sbagliato?

Lo so, è strano, ma se uso winzozz come server, il client le pagine me le apre tutte, se uso la gentoo no..

----------

## Ty[L]eR

mmmm credo che potreste provare ad emergere net-firewall/shorewall per configurare IPTABLES (nat e firewall)... sinceramente non l'ho mai provato poichè mi son scritto le regole da solo... ma personalmente blocco tutto in entrata tranne i pochi servizi che lascio aperti (in uscita c'è il via libera  :Embarassed:  ) ma comunque ne parlano tutti benissimo... 

imho potrebbe essere una soluzione  :Very Happy: 

EDIT:

```

#NAT

/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

/sbin/iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

/sbin/iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

echo '1' > /proc/sys/net/ipv4/ip_forward

```

cmq questo è un pezzo dello script bash che eseguo all'avvio per nat e firewall... (basta che inserisci il path dello script, che ovviamente dev'esser eseguibile, nel file /etc/conf.d/local.start)

----------

## ProT-0-TypE

io non devo bloccare nulla ma solo ridirigere!

questa:

```
/sbin/iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
```

a che serve esattamente?

----------

## Ty[L]eR

se non sbaglio (se sbaglio correggetemi) quel che ho postato forwarda tutto e poi fa un controllo sulla provenienza della richiesta e/o sullo stato

----------

## ProT-0-TypE

```
       iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

       iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

       iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT

       iptables -A FORWARD -j DROP
```

Un qualcosa del genere può andare?

Uff ora non ho l'altro pc e non posso provare :'(

----------

## Truzzone

 *ProT-0-TypE wrote:*   

> ...
> 
> Quali sono le regolette per fare il forwarding e far si che Internet funzioni pure sull'altro pc?
> 
> io ci ho provato ma mi apre alcuni siti si e altri no..

 

Hai configurato i DNS forniti dal tuo provider internet sul pc in cui navighi?

Se lo fai in gentoo basta creare/modificare il file /etc/resolv.conf così:

Contenuto /et/resolv.conf

```
nameserver indirizzodnsprimario

nameserver indirizzodnssecondario
```

Ciao by Truzzone   :Very Happy: 

----------

## ProT-0-TypE

no, i dns sono ok! (li ho ricopiati da quelli del server). credo sia un problema di regole di iptables

----------

## federico

Prototype io ti consiglio di mettere in discussione il minor numero possibile di parametri.

La questione del forward su iptables nn ti serve, non e' quello che stai cercando, a te serve il masquerading.

E' inutile generare regole di firewalling come quella che usi tu per il forward se poi non sei neanche sicuro che sia forward quello che ti serve (e nello specifico, NON e' quello che ti serve)

----------

## ProT-0-TypE

si infatti chiedevo quello che ci dovevo mettere!  :Very Happy: 

----------

## federico

```

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward 

```

Su una macchina senza particolari stranezze queste due righe attivano il forwarding basilare.

-o idica la scheda di output per i pacchetti, nel mio caso eth0

-s eventualmente indica una sorgente accettata, io solitamente metto qualcosa come "-s 192.168.15.0/24" che e' la mia sottorete, tutte le macchine.

Ricordati di impostare gli ip dei DNS sui client.

Se i moduli iptables sono presenti nel kernel tutto funzionera' correttamente    :Cool: 

----------

## ProT-0-TypE

si, i moduli ci sono! prima avevo il modem usb e tutto funzionava alla perfezione!poi ho aggiunto una scheda di rete e messo il modem ethernet... e oar funziona male! appena posso provo come mi hai detto tu, grazie!

----------

## ProT-0-TypE

continua a funzionarmi male.. alcuni siti me li apre, altri no...

la configurazione che sto usando è:

```

      ifconfig eth1 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255        

      route add -net 192.168.0.0 netmask 255.255.255.0 eth1

      iptables -F

      iptables -X

      iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

      echo "1" > /proc/sys/net/ipv4/ip_forward

```

EDIT: Risolto, in questo post

----------

