PDA

Visualizza la versione completa : LAN-forwarding-accesso internet


urodelo
26-11-2005, 22:15
lo so che è un argomento trito e ritrito, ma non riesco a venirne a capo... :-(

Ho una rete LAN così composta:

modem/router adsl (192.168.1.1) -->firewall/router(eth1:192.168.1.10+eth0:192.168.2.10)
-->pc client (192.168.2.20)

Devo far accedere il pc client ad internet. Sul firewall ho abilitato iptables con tutti i moduli possibili (nat,masquerade,forward ecc), e lo lancio tramite uno script. Dalle discussioni precedenti, e dagli howto che ho letto, mi pareva di capire che bastassero 3 righe di codice su iptables per poter navigare in internet col pc client. In realtà, col pc client pingo ambedue le schede del firewall/router, ma non pingo il modem/router e nemmeno alcun IP fuori dalla mia LAN,tantomeno risolvo alcun host su internet, forse a causa di qualche regola di iptables che ho messo.
Al modem/router, riesco ad accedere in telnet, sia dal firewall che dal pc client. Inoltre, dal pc client, riesco ad usare skype, MA non riesco ad andare su alcun sito web, ad usare icq e chissà quant'altro... gli applicativi rimangono appesi come salami, senza connettersi a niente, e non capisco perché. :messner:
Forse il tutto dipende dal fatto che devo trattare con 2 segmenti di rete differenti (192.168.1.0 e 192.168.2.0), e forse qualcosa non funziona nel route dei pacchetti...

Questa cosa mi sta snervando, qualcuno ha dei suggerimenti?
grazie in anticipo

l.golinelli
26-11-2005, 23:19
non serve a nulla il nat visto che hai un modem/router su internet, basta che sul fw setti come default gw l'ip del modem/router e imposti il forwarding dei pacchetti...
inoltre sui client come default gw metti quello del fw linux e imposti i dns

urodelo
27-11-2005, 01:21
Sul pc client ho messo il firewall come default gw, e sul firewall ho messo come default gw della scheda collegata al modem, l'ip del modem stesso. Su client e firewall, in resolve.host ho messo i server dns forniti dal mio isp. Il forwardig è abilitato in iptables (con echo 1 > /proc/eccecc../ip_forwarding)
Allora devo togliere il masqueradinf in fase di postrouting?

l.golinelli
27-11-2005, 01:27
quello puoi lasciarlo ma non serve...

urodelo
27-11-2005, 11:11
ok, ma continua a non funzionare...:-(((
Posto il mio script di iptables, se qualcuno riesce a capire dove sbaglio... :-(

#!/bin/sh

LAN=192.168.2.0/24
#setto la variabile LAN che contiene il range di ip della lan
SERVER=192.168.1.10
#indirizzo ip del server, interfaccia verso il router
IPT="/sbin/iptables"
#variabile che contiene il path completo dell'eseguibile iptables

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

#cancello tutte le precedenti regole di iptables
$IPT -F
#che significa /sbin/iptables -F (dove F=flush)
$IPT -t nat -F
#cancello anche le regole per il nat

#inizializzo le regole di iptables

#catena di input, ciò che è permesso in ingresso su questa stessa macchina
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
#permetto in ingresso ssh da ovunque
$IPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
#permetto in ingresso connessioni iniziate da me
$IPT -A INPUT -s 192.168.2.0/255.255.255.0 -j ACCEPT
#accetto tutti i pacchetti provenienti dalla mia LAN
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
#accetto icmp in risposta ai miei ping

#catena di forward
$IPT -A FORWARD -p tcp -s $LAN -j ACCEPT
#permetto tutto in transito dalla lan verso l'esterno
$IPT -A FORWARD -p tcp -d $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
#permetto tutto in transito dall'esterno verso la lan, dove le
#connessioni iniziali siano partite dalla lan (flag -m state)


$IPT -A FORWARD -p tcp --syn -m limit --limit 1/sec -j ACCEPT

$IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/sec -j ACCEPT

$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/sec -j ACCEPT

#$IPT -A FORWARD --in-interface eth0 -j ACCEPT

#catena di nat del traffico, per mascherare gli indirizzi della lan con
#l'indirizzo esterno del server/firewall
$IPT -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE
#maschero solo quello che proviene dalla lan, o non quello che proviene
#da fuori

#regole di blocco di tutto il traffico rimamente
$IPT -A INPUT -j DROP
$IPT -A FORWARD -j DROP


:cry:

l.golinelli
27-11-2005, 13:30
dal fw navighi?

urodelo
27-11-2005, 13:33
si, dal fw navigo tranquillamente, pingo, uso gaim e tutto il resto. lo sto usando ora...

Loading