# [RISOLTO] Problemi di condivisione accesso ad Internet

## kueitao

Salve,

C'è un qualche problema che non permette che il PC interno dialoghi con Internet attraverso un'altro che è direttamente connesso ad Internet con ADSL e che con Iptables dovrebbe fare il forwarding e il masquerading delle connessioni.

Tanto per rendere chiara la situazione riporto che ho seguito la guida  "home-router-howto" della documentazione con quache piccola variazione che non credo comunque stia pesando sul problema attuale.

Il PC con Iptables e dnsmasq ha due schede eth0 e eth1, rispettivamente usate per il collegamento ad Internet tramite ADSL e per il collegamento al PC interno tramite un hub.

La connessione ad Internet dal PC esterno funziona perfettamente. Sono anche in grado di attivare una connessione ssh dal primo PC al secondo e viceversa, quindi nessun problema di visibilità tra i due.

Il problema è invece legato solo al fatto che dal PC interno non riesco a collegarmi o solo a fare il ping di nessun indirizzo esterno; quindi ho provato a vedere cosa transita su ppp0 (con tcpdump) sulla macchina esterna quando dal PC interno tento di accedere ad Internet.

Sull'esterna ho attivato "tcpdump -i ppp0 -n" e sono stato a guardare cosa transitava subito dopo aver richiesto il collegamento a www.google.it da un browser della macchina interna.

1) Scambio di messaggi con il DNS del provider.

2) Richiesta di connessione (syn) all'indirizzo fornito dal suddetto DNS.

3) Nessuna risposta da parte di www.google.it

Intendo dire che si arriva fino allla richiesta di connessione al web server di google.it però questo non risponde (la stessa cosa vale anche per altri indirizzi). Alla mia "syn" non viene risposto con il dovuto "syn/ack".

Nel tentativo di analizzare l'output alla ricerca di una diagnosi, ho notato una cosa che mi ha dato da pensare e francamente non capisco se si tratta di un sintomo del problema oppure solo di un modo particolare da parte di tcpdump d visualizzare i dati sui pacchetti che originano dall'interno della LAN. 

Ciò che mi sembra un po' strano è che i suddetti tentativi di connessione riportano l'indirizzo riservato del PC interno. Cioè vedo qualcosa tipo:

17.20.30.123456  IP  192.168.0.5 > 66.249.85.99  S  1234567890:1234568790 (0) win ...

E poi nessuna risposta (syn/ack) da parte del server.  Ovviamente il pacchetto IP che realmente è inviato a 66.249.85.99  non può contenere 192.168.0.5 come indirizzo sorgente perchè verrebbe scartato e nessuna risposta potrebbe mai essere instradata. 

Quindi non è che per qualche strano motivo il pacchetto contiene veramente l'indirizzo interno al posto di quello assegnato dal provider? Se è così perchè? Il masquerading non mi funziona?

Se invece si tratta solo di una caratteristica dell'output di tcpdump allora la diagnosi è ancora lontana... 

Ringrazio in anticipo tutti quelli che vorranno interessarsi per aiutarmi a scoprire dove risiede il problema e come risolverlo.

Cheers.Last edited by kueitao on Sun Aug 07, 2005 10:11 am; edited 1 time in total

----------

## gutter

A mio avviso si tratta di un problema di configurazione di iptables  :Confused: 

Potresti postare la configurazione di iptables?

----------

## comio

domanda di rito: hai abilitato l'ip forwarding?

ecco quello che ho in sysctl.conf

```

# cat /etc/sysctl.conf|grep ip_forward

net.ipv4.ip_forward = 1

```

ciao

----------

## kueitao

 *gutter wrote:*   

> A mio avviso si tratta di un problema di configurazione di iptables 
> 
> Potresti postare la configurazione di iptables?

 

Sure! Comunque si tratta di una configurazione che deve essere ancora rifinita ed ottimizzata.

#iptables-save

*nat

:PREROUTING ACCEPT

:POSTROUTING ACCEPT

:OUTPUT ACCEPT

-A POSTROUTING -o eth0 -j MASQUERADE

COMMIT

*filter

:INPUT DROP

:FORWARD DROP

:OUTPUT DROP

-A INPUT -i eth1 -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -j DROP (ridondante x via della policy)

-A FORWARD -s 192.168.33.0/255.255.255.0 -i eth1 -j ACCEPT

-A FORWARD -d 192.168.33.0/255.255.255.0 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -j DROP (ridondante come sopra)

-A OUTPUT -m state --state INVALID,NEW,RELATED,ESTABLISHED -j ACCEPT

-A OUTPUT -j DROP (idem)

COMMIT

Non riporto *raw e *mangle perchè comunque non hanno direttive e tutte le policies delle chains sono impostate in "ACCEPT".

Va bene così? Se serve altro chiedi pure.

A proposito di quanto ho notato dall'output di tcpdump, è allora normale che visualizzi l'indirizzo interno? O è proprio questa la riprova che qualcosa non funziona?

******** 

Nel frattempo mi dici dove sono conservate esattamente tutte le regole con cui ho impostato iptables? Cioè da dove sono lette le regole durante l'avvio di iptables al boot? Sulla Fedora2 che uso all'interno della LAN stanno su /etc/sysconfig/iptables, file che su Gentoo non esiste. 

********

----------

## kueitao

 *comio wrote:*   

> domanda di rito: hai abilitato l'ip forwarding?
> 
> ecco quello che ho in sysctl.conf
> 
> ```
> ...

 

Capisco che bisogna anche controllare le cose più ovvie e che spesso gli errori si trovano proprio tra le cose più banali.  :Smile:   Purtroppo non è questo il caso in quanto l'opzione è stata attivata.  :Crying or Very sad: 

Già che ci siamo, ripropongo la stessa domanda anche a te: "L'output di tcpdump che ho mostrato è o non è indicativo del problema attuale?".

Grazie

----------

## comio

 *kueitao wrote:*   

> 
> 
> Già che ci siamo, ripropongo la stessa domanda anche a te: "L'output di tcpdump che ho mostrato è o non è indicativo del problema attuale?".
> 
> 

 

sì... mi pare sensato. O meglio mi pare che non ci sia il nat. Posteresti la tua configurazione iptables (fai un iptables-save per avere quella in esecuzione)?.

ciao

----------

## kueitao

 *comio wrote:*   

> 
> 
> ...
> 
> Posteresti la tua configurazione iptables (fai un iptables-save per avere quella in esecuzione)?. 
> ...

 

Ti è sfuggito che è già stata pubblicata prima della tua ultima riposta quotata.  :Smile: 

Aspetto di sapere cosa ne pensi, grazie.

----------

## comio

 *kueitao wrote:*   

>  *gutter wrote:*   A mio avviso si tratta di un problema di configurazione di iptables 
> 
> Potresti postare la configurazione di iptables? 
> 
> Sure! Comunque si tratta di una configurazione che deve essere ancora rifinita ed ottimizzata.
> ...

 

Ma la interface di uscita è ppp0 o eth0? prova a cambiare quell'eth0.

La configurazione di iptables è solitamente in /var/lib/iptables/rules-save, ma modificando il file /etc/conf.d/iptables puoi impostare un altro file. (eventualmente per creare il file puoi dare un /etc/init.d/iptables save)

ciao

----------

## comio

 *kueitao wrote:*   

>  *comio wrote:*   
> 
> ...
> 
> Posteresti la tua configurazione iptables (fai un iptables-save per avere quella in esecuzione)?. 
> ...

 

ops mi è sfuggita!

chiedo venia.

comio

----------

## kueitao

 *comio wrote:*   

>  *kueitao wrote:*    *gutter wrote:*   A mio avviso si tratta di un problema di configurazione di iptables 
> 
> Potresti postare la configurazione di iptables? 
> 
> Sure! Comunque si tratta di una configurazione che deve essere ancora rifinita ed ottimizzata.
> ...

 

Ma non è la stessa cosa? Io non capisco bene come funziona pppoe (anzi qualsiasi tipo di ppp). In ogni caso ciò che capisco è che la mia macchina esterna è connessa fisicamente al provider tramite eth0. Puoi segnalarmi dei links a documenti che spieghino come l'interfaccia virtuale ppp0 interagisce con eth0?

In ogni caso domattina proverò a fare la modifica che proponi e poi ti faccio sapere se funziona. Immagino anche di dovere cambiare qualsiasi altra regola dove esiste al il match "-i eth0" in "-i ppp0". E' corretto? 

Ad esempio in *filter c'è "-A FORWARD -d 192.168.33.0/255.255.255.0 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT". Deve essere modificata anche questa?

 *Quote:*   

> 
> 
> La configurazione di iptables è solitamente in /var/lib/iptables/rules-save, ma modificando il file /etc/conf.d/iptables puoi impostare un altro file. (eventualmente per creare il file puoi dare un /etc/init.d/iptables save)
> 
> ciao

 

Grazie e ciao

----------

## comio

 *kueitao wrote:*   

> 
> 
> Ma non è la stessa cosa? Io non capisco bene come funziona pppoe (anzi qualsiasi tipo di ppp). In ogni caso ciò che capisco è che la mia macchina esterna è connessa fisicamente al provider tramite eth0. Puoi segnalarmi dei links a documenti che spieghino come l'interfaccia virtuale ppp0 interagisce con eth0?
> 
> 

 

non è la stessa cosa. Praticamente con eth0 tu hai la connessione fisica con il modem, poi, viene creato un "tunnel" con il ppp verso il tuo provider.

La route verso l'esterno non è tramite eth0 ma tramite ppp0.

Per essere più precisi dovresti far vedere le route della tua macchina e descrivere meglio la parte di ret.

 *kueitao wrote:*   

> 
> 
> In ogni caso domattina proverò a fare la modifica che proponi e poi ti faccio sapere se funziona. Immagino anche di dovere cambiare qualsiasi altra regola dove esiste al il match "-i eth0" in "-i ppp0". E' corretto? 
> 
> Ad esempio in *filter c'è "-A FORWARD -d 192.168.33.0/255.255.255.0 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT". Deve essere modificata anche questa?
> ...

 

Sì in pratica dovresti adeguare tutte le tue regole iptables secondo le route usate.... Tieni presente che le connession in ingresso sulla ppp0 hanno come indirizzo di destinazione quello del'interfaccia e non quello della macchina interna... solo dopo il nat l'indirizzo viene cambiato... quindi occhio alle regole (non mettere subito troppi vincoli... aggiungili man mano capendo quello che stai facendo).

ciao

----------

## kueitao

Come suggerito da Comio ho apportato le modifiche alle regole del firewall, sostanzialmente sostituendo "eth0" con "ppp0".

Ora con "tcpdump -i ppp0 -n" vedo che la connessione non è più iniziata da 192.168.xxx.xxx ma correttamente dal IP fornito dallo ISP. Però i problemi non sono del tutto risolti.

Purtroppo ora la connessione dalla LAN sembra funzionare solo verso alcuni siti e non altri. Ad esempio mi posso collegare con www.google.com e www.snort.org ma non con www.gentoo.org. Sembra che, dopo un primo scambio di pacchetti per la three-way-handshake, avvenga un ulteriore piccolo invio di bytes ai quali il sever risponde con "ack" e poi la connessione rimane in sospeso senza scaricare la pagina.

Di seguito mostro l'output di "tcpdump -i ppp0 -n" che si riferisce alla suddetta connessione.

Three-way-handshake eseguita come si deve (credo):

13:11:34.333505 IP 80.181.x.x.55213 > 204.225.92.144.80: S 3593392273:3593392273(0) win 5840 <mss 1460,sackOK,timestamp 3018656993 0,nop,wscale 2>

13:11:34.510403 IP 204.225.92.144.80 > 80.181.x.x.55213: S 624097174:624097174(0) ack 3593392274 win 5792 <mss 1460,sackOK,timestamp 584238644 3018656993,nop,wscale 0>

13:11:34.510668 IP 80.181.x.x.55213 > 204.225.92.144.80: . ack 1 win 1460 <nop,nop,timestamp 3018657170 584238644>

Unico successivo invio (P) di contenuti (326 bytes) da parte mia a www.gentoo.org e "ack" di conferma ricezione dal server. Poi il silenzio più totale...  :Shocked: 

13:11:34.511493 IP 80.181.x.x.55213 > 204.225.92.144.80: P 1:326(325) ack 1 win 1460 <nop,nop,timestamp 3018657171 584238644>

13:11:34.703044 IP 204.225.92.144.80 > 80.181.x.x.55213: . ack 326 win 6432 <nop,nop,timestamp 584238663 3018657171>

Che succede ancora? Dove sto sbagliando? Please, help! Ho ancora bisogno di ulteriore aiuto.  :Confused: 

Grazie ancora per tutti i precedenti suggerimenti.  :Cool: 

----------

## comio

prova a mettere -j ACCEPT sulla chain di Forward... vediamo cosa succede. Onestamente mi pare strano.

poi questa riga non mi convince:

```

-A FORWARD -d 192.168.33.0/255.255.255.0 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

```

ciao

----------

## kueitao

 *comio wrote:*   

> prova a mettere -j ACCEPT sulla chain di Forward... vediamo cosa succede. Onestamente mi pare strano.
> 
> 

 

Tenterò. Cosa ti pare strano?

 *comio wrote:*   

> 
> 
> poi questa riga non mi convince:
> 
> ```
> ...

 

Beh l'ho presa dalla guida che ho seguito (www.gentoo.org/doc/en/home-router-howto.xml.html). Tieni presente che dietro tuo suggerimento "-i eth0" è diventato "-i ppp0" (Non ho capito se ti riferivi a questo quando hai scritto che non ti convince).

Il controllo dello stato l'ho aggiunto di mia iniziativa per permettere il forwarding solo di connessioni "RELATED,ESTABLISHED". Non va bene?

Grazie ancora, ciao.

----------

## comio

mi pare strano che il tuo iptables faccia discriminazioni sui siti.

Prova a vedere se pinghi. Controlla se il dns risolve (quindi pinga sia con il nome host e sia con l'ip).

ciao

----------

## kueitao

 *comio wrote:*   

> mi pare strano che il tuo iptables faccia discriminazioni sui siti.
> 
> Prova a vedere se pinghi. Controlla se il dns risolve (quindi pinga sia con il nome host e sia con l'ip).
> 
> ciao

 

Scusa se rispondo prima di potere attuare i tuoi ultimi suggerimenti. Purtroppo devo ridurre al minimo la necessità di scollegarmi dalla connessione ADSL di questo computer per attivare la configurazione della LAN che stiamo esaminando. Tutto questo comporta anche accenzione/spegnimento del modem e riconfigurazione delle connessioni fisiche dei cavi di rete.

A proposito del tuo ultimo consiglio, faccio notare che l'output del tcpdump mostra che ò'handshake è completo e che addirittura è anche avvenuto un primo scambio di dati. Credo che quanto detto dimostri che la risoluzione dei nomi funzioni bene. Tra l'altro si vede anche che la connessione avviene tra il mio indirizzo e 204.225.92.144 porta 80 che è proprio uno tra gli IP addresses di gentoo.org.

Che ne pensi al riguardo?

Grazie ancora e ciao.

PS.: Mi sembra che il thread sia diventato un dialogo a due... Nessun altro ha delle idee?

----------

## kueitao

 *comio wrote:*   

> mi pare strano che il tuo iptables faccia discriminazioni sui siti.
> 
> Prova a vedere se pinghi. Controlla se il dns risolve (quindi pinga sia con il nome host e sia con l'ip).
> 
> ciao

 

Scusa se rispondo prima di potere attuare i tuoi ultimi suggerimenti. Purtroppo devo ridurre al minimo la necessità di scollegarmi dalla connessione ADSL di questo computer per attivare la configurazione della LAN che stiamo esaminando. Tutto questo comporta anche accenzione/spegnimento del modem e riconfigurazione delle connessioni fisiche dei cavi di rete.

A proposito del tuo ultimo consiglio, faccio notare che l'output del tcpdump mostra che ò'handshake è completo e che addirittura è anche avvenuto un primo scambio di dati. Credo che quanto detto dimostri che la risoluzione dei nomi funzioni bene. Tra l'altro si vede anche che la connessione avviene tra il mio indirizzo e 204.225.92.144 porta 80 che è proprio uno tra gli IP addresses di gentoo.org.

Che ne pensi al riguardo?

Grazie ancora e ciao.

PS.: Mi sembra che il thread sia diventato un dialogo a due... Nessun altro ha delle idee?

----------

## kueitao

Sono ancora qui.

Ho operato le modifiche sul firewall. Ho addirittura messo tutte le chains in ACCEPT, tanto al momento non ho nessun servizio aperto (tranne domain).

Purtroppo c'è sempre lo stesso problema. Il PC interno vede Internet e riesce addirittura ad instaurare una connessione TCP attraverso la 3way-handshake ma, dopo lo scambio di un paio di pacchetti (regolarmente ACKed), non succede più nulla... In pratica la pagina che aspetto si carica solo per una minima parte e il browser (konqueror) rimane in attesa con un messaggio tipo "retrieving 15.0 KB from www.gentoo.org....".

Pensavo ad un problema del browser ma ho provato il testuale "links" con il medesimo risultato. Ho provato anche a scaricare la posta con kmail (tanto per usare un protocollo applicativo diverso) e si pianta con "downloading 25 messages from tiscali.it...".

Anche con la posta la connessione si forma regolarmente e un primo flusso di pacchetti riesce a passare in ambo le direzioni. L'output di tcpdump appare regolare, semplicemente ad un certo punto non c'è più nessun flusso di pacchetti anche se non si vedono né "FIN" né "RST" che possano avere chiuso la comunicazione.

Sono sempre più confuso. Any help?

Grazie.

PS.: Se non riuscissi a trovare qui la soluzione, potrei postare il problema sul forum "Networking & Security" o sarebbe considerato cross-posting? Ritengo possibile che nel forum in lingua inglese, tra l'altro specializzato sul tema, si riesca a trovare più gente con le conoscenze tecniche adatte ad affrontare il problema.

----------

## comio

 *kueitao wrote:*   

> Sono ancora qui.
> 
> Ho operato le modifiche sul firewall. Ho addirittura messo tutte le chains in ACCEPT, tanto al momento non ho nessun servizio aperto (tranne domain).
> 
> 

 

Una domanda... dal nat è possibile navigare? Quel tipo di iptables cnon dovrebbe fare gli effetti da te descritti (almeno credo!).

Prova a mettere le regole in questo modo:

```

*nat

:PREROUTING ACCEPT

:POSTROUTING ACCEPT

:OUTPUT ACCEPT

-A POSTROUTING -s 192.168.33.0/255.255.255.0 -o ppp0 -j MASQUERADE

COMMIT

*filter

:INPUT DROP

:FORWARD DROP

:OUTPUT DROP

-A INPUT -i eth1 -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Provvisorio...

-A INPUT -j ACCEPT

-A FORWARD -i lo -j ACCEPT

-A FORWARD -s 192.168.33.0/255.255.255.0 -i eth1 -j ACCEPT

-A FORWARD -i eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -i ppp0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# Provvisorio...

-A FORWARD -j ACCEPT

-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# Provvisorio...

-A OUTPUT -j ACCEPT

COMMIT 

```

 *Quote:*   

> 
> 
> PS.: Se non riuscissi a trovare qui la soluzione, potrei postare il problema sul forum "Networking & Security" o sarebbe considerato cross-posting? Ritengo possibile che nel forum in lingua inglese, tra l'altro specializzato sul tema, si riesca a trovare più gente con le conoscenze tecniche adatte ad affrontare il problema.

 

Secondo me sarebbe una ottima idea... magari mantieni aggiornato questo post per i posteri.

ciao

----------

## randomaze

 *kueitao wrote:*   

> Se non riuscissi a trovare qui la soluzione, potrei postare il problema sul forum "Networking & Security" o sarebbe considerato cross-posting?

 

No, normalmente non é considerato cross-posting.

Naturalmente se li ti danno la soluzione dopo la vogliamo sapere anche noi in italiano  :Mr. Green: 

----------

## kueitao

 *comio wrote:*   

> Una domanda... dal nat è possibile navigare? Quel tipo di iptables cnon dovrebbe fare gli effetti da te descritti (almeno credo!).

 

Intendi chiedere se riesco a navigare dal PC esterno, quello con firewall e nat connesso al provider ADSL?

Se è così la risposta è positiva.

Ho solo notato una cosa alquanto strana che forse però non è connessa (Boh?!) all'attuale problema... Quando da questo eseguo un "emerge <program>" si blocca sempre per una ventina di secondi all'inizio del download del pacchetto con "HTTP request sent, awaiting response..." e poi continua con velocità di scarico normale (140KB/sec). 

 *comio wrote:*   

> 
> 
> Prova a mettere le regole in questo modo:
> 
> ```
> ...

 

Ora le mie regole sono identiche a quanto ho appena quotato.

Purtroppo non cambia niente. La situazione è sempre la stessa: dopo un primo scambio di pacchetti per la 3way-handshake si vede ancora qualche scambio e poi più niente e il browser rimane in attesa indefinitamente. Nessun RST o FIN.

Inoltre, secondo "iptables -vL" non esiste nessun match della prima e terza regola della chain FORWARD. In pratica sembrano essere superflue.

A questo punto mi chiedo se per caso non si tratta di qualche problema con il kernel, tipo qualche opzione di configurazione da attivare/disattivare oppure un vero e proprio bug... Any idea?

Grazie ancora per tutto il tempo che mi è stato riservato alla ricerca di una soluzione.

----------

## kueitao

 *kueitao wrote:*   

> 
> 
> A questo punto mi chiedo se per caso non si tratta di qualche problema con il kernel, tipo qualche opzione di configurazione da attivare/disattivare oppure un vero e proprio bug... Any idea? 
> 
> 

 

Ragazzi, devo dire che verso la fine me lo sentivo...  :Idea:  Ci sono arrivato appena ho sospettato che potesse avere a che fare con opzioni del kernel.  :Very Happy: 

La soluzione l'ho quindi trovata leggendo l'help delle opzioni di compilazione del kernel relative a iptables/netfilter: "make menuconfig -> Networking -> Networking Options -> Network Packet Filtering -> IP: Netfilter Configuration -> TCPMSS target support".

Consiglio di dare un'occhiata a questa opzione. Chiarisce proprio perchè ero in grado di navigare certi siti si e altri no.

Comunque l'ho attivata, ho ricompilato il kernel e poi ho aggiunto questa riga allle regole di iptables (come da consiglio dello stesso help):

"iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu"  :Very Happy:   :Very Happy:   :Very Happy: 

Un grazie in particolare a comio che comunque si è attivato tantissimo per aiutarmi.

Buon divertimento con Gentoo.

----------

## gamberetto

ciao a tutti,

scusate se scrivo in un topic con il tag [risolto], ma ho proprio lo stesso problema: dal PC direttamente connesso ad internet riesco a navigare tranquillamente, mentre dal PC (Windows XP) connesso attraverso la LAN riesco a navigare solo in certi siti (www.google.it ecc.) e comunque a risolvere l'indirizzo IP di qualsiasi sito.

La mia configurazione è quindi:

PC1 (gentoo):

- eth0 con modem annesso

- eth1 attaccato alla LAN

/etc/conf.d/net:

```
config_eth0=( "null" )

config_eth1=( "192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0" )

```

PC2 (windows xp):

- scheda ethernet sulla LAN con gateway su 192.168.0.1

Sul Gentoo ho attivato ip_forward attraverso /etc/sysctl.conf

ho seguito una guida e ho eseguito lo script firewall.sh:

```
#!/bin/bash

IPTABLES='/sbin/iptables'

# Set interface values

EXTIF='ppp0'

INTIF1='eth1'

# enable ip forwarding in the kernel

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

# flush rules and delete chains

$IPTABLES -F

$IPTABLES -X

# enable masquerading to allow LAN internet access

$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

# forward LAN traffic from $INTIF1 to Internet interface $EXTIF

$IPTABLES -A FORWARD -i $INTIF1 -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT

#echo -e "       - Allowing access to the SSH server"

$IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT

#echo -e "       - Allowing access to the HTTP server"

$IPTABLES -A INPUT --protocol tcp --dport 80 -j ACCEPT

# block out all other Internet access on $EXTIF

$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP

$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP

$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1412

```

L'ultima riga è quella suggerita dalla guida del kernel. Ho provato con --clamp-mss-to-pmtu ma non mi funzionava e così ho provato con --set-mss 1412.

Dopo il reboot iptables -L mi da:

```
Chain INPUT (policy ACCEPT)

target     prot opt source               destination         

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh 

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http 

DROP       all  --  anywhere             anywhere            state INVALID,NEW 

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination         

ACCEPT     all  --  anywhere             anywhere            state NEW,ESTABLISHED 

DROP       all  --  anywhere             anywhere            state INVALID,NEW 

TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS set 1412 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination 
```

ho scelto l'MSS a 1412 perché era quello impostato in /etc/ppp/pppoe.conf.

La cosa strana è che con la procedura di connessione in user mode (adsl-start) tutto mi funziona, mentre con la connessione in kernel-mode mi da questi problemi!

grazie per eventuali aiuti!

[PS_EDIT: non è che si potrebbe risolvere installando un server proxy sul PC1--Gentoo?]

----------

## kueitao

Ciao,

ti sei ricordato di attivare l'opzione relativa nel kernel? Rileggi il mio ultimo post nel caso ti sia sfuggito e dopo avere ricompilato il kernel reimposta la regola di Iptables come suggerito.

Good luck.

PS.: Sarà il caso di riaprire il thread togliendo [RISOLTO]?

----------

## gamberetto

 *kueitao wrote:*   

> 
> 
> ti sei ricordato di attivare l'opzione relativa nel kernel?
> 
> 

 

da lsmod mi compare anche il modulo ipt_TCPMSS caricato. Credo tu ti riferisca a questo. Comunque ho attivato tutta quella sezione come moduli nel kernel.

----------

## kueitao

Ciao,

Per quanto riguarda il kernel mi riferivo proprio a ciò che hai intuito e mi hai correttamente risposto che l'opzione è stata attivata.

Per quanto attiene al perdurare del problema, ti ricordo che le regole di Iptables sono controllate nell'ordine in cui appaiono dall'output di "iptables -L" o equivalentemente da "iptables-save"... Ci sei?

Quindi l'inclusione della regola è ininfluente poichè è posta alla fine della chain:

 *Quote:*   

> Chain FORWARD (policy ACCEPT) 
> 
> target     prot opt source               destination          
> 
> ACCEPT     all  --  anywhere             anywhere            state NEW,ESTABLISHED 
> ...

 

Il corretto posizionamento delle regole è:

DROP       all  --  anywhere             anywhere            state INVALID,NEW

TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU

ACCEPT     all  --  anywhere             anywhere            state NEW,ESTABLISHED,RELATED

Vorrei aggiungere che non condivido le tue scelte in merito alle policies delle chains ed in merito alla costruzione di alcune regole. Ti consiglierei di stringere un po' di più sulla sicurezzza ponendo almeno le policies delle chains in DROP e modificando di conseguenza le regole delle stesse... Comunque si tratta di un altro discorso.

Spero di essere stato utile.

Buon divertimento con Gentoo.

----------

## gamberetto

Grazie infinite dell'aiuto!

Effettivamente se avessi cercato di più sarei riuscito a risolvere anche da solo...

Grazie ancora  :Wink: 

P.S.:per le policy grazie del consiglio; darò un'occhiata nel forum: mi sembra ci sia un sacco di roba al riguardo.

----------

