Newsgroup: it.comp.os.linux.iniziare
Titolo: Piccolo firewall.

Salve, sto impazzendo nel cercare di realizzare un piccolo firewall da
usare temporaneamente su una distro ubuntu 9.04 live.
Il lavoro che deve svolgere ï¿œ il seguente:
condividere una connessione ad internet su ethernet ed eseguire il port
forward verso un indirizzo IP specifico della rete ethernet per le porte
20, 21, 80 tcp.
Qui di seguito quello che ho scritto e non funziona...
spero che qualcuno possa aiutarmi, vedendo dov'ï¿œ l'errore.
In particolare questo firewall funziona in uscita, ma non funziona il
port-forward.
Grazie a chi mi aiuterï¿œ.
#!/bin/sh
INTIF="eth0"
EXTIF="wlan0"
SERVER="10.1.30.40"
IPTABLES="/sbin/iptables"
echo "1" > /proc/sys/net/ipv4/ip_forward
############################
$IPTABLES -F FORWARD
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -t nat -F
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
#PORT FORWARDING
#$IPTABLES -A FORWARD -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $EXTIF -p tcp --dport 80 -j DNAT
--to-destination $SERVER:80
$IPTABLES -t nat -A PREROUTING -i $EXTIF -p tcp --dport 20 -j DNAT
--to-destination $SERVER:20
$IPTABLES -t nat -A PREROUTING -i $EXTIF -p tcp --dport 21 -j DNAT
--to-destination $SERVER:21
#$IPTABLES -A FORWARD -p tcp --dport 80 -o $INTIF -j ACCEPT
#MASQUERADE (porte in uscita)
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
#INPUT
$IPTABLES -A INPUT -i $EXTIF -p icmp -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp --dport 22 -j ACCEPT

 $IPTABLES -A INPUT -i $EXTIF -p tcp --dport 22 -j ACCEPT
cosi' ad occhio, senza approfondire , direi che manca SNAT .
isomma , i pacchetti girati verso $SERVER hanno come indirizzo mittente
NON il pc che esegue il forward , ma l'indirizzo reale di provenienza. ed
e' li che cercano di tornare.
rete ---> forward ---> $SERVER 
tramite SNAT devi dire ai pacchetti forwardati da " forwad "
a $ SERVER di tornare a " forward " . 
insomma, manca il ritorno.
ciao
-- 
----------------------------------
linux slackware
tutto il resto e' inutile
----------------------------------
   chiave pubblica gpg
 
www.claudiove.com/claudio.gpg
----------------------------------

 Che problemi ti da' esattamente?
Se tento di connettermi all'indirizzo ip del dispositivo $EXTIF del pc 
firewall da un browser, non vedo l'interfaccia web del dispositivo $SERVER.

 ciao
Grazie, cerco un po' nel man e domani provo.

 echo "1" > /proc/sys/net/ipv4/ip_forward
Non me ne intendo granch� di programmazione.. ma da riga di comando le
virgolette non vengono digitate.. Che sia questo il problema del mancato
routing ?
echo 1 > /proc/sys/net/ipv4/ip_forward
Ciao, Davide
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Ringrazio tutti, in particolare Claudio, che mi ha indicato la via.
Ho capito dov'era l'errore. Lo script ï¿œ corretto cosï¿œ com'ï¿œ, ma ho 
dimenticato di impostare correttamente l'indirizzo ip gateway nel 
dispositivo dietro il firewall, ponendolo uguale all'indirizzo IP della 
macchina firewall. Adesso funziona, sia con $EXTIF=wlan0, sia con 
$EXTIF=ppp0, che era il mio obiettivo originale.