Newsgroup: it.comp.os.linux.iniziare
Titolo: forward in iptables...problemone :(

Ciao a tutti,
come sempre, dopo svariate prove e ricerche mi rivolgo a voi per un
aiuto.
Ecco la configurazione della mia LAN :
Linux box con Mandrake 9.1 che fa da router/firewall
Client windows (98 SE) con su diversi programmi di file sharing.
Per il corretto funzionamento dei suddetti prog. devo per forza
redirezionare alcune porte dal router al client win. Per tale motivo,
dopo qualche ricerca e lettura, ho impostato il mio firewall come
riportato di seguito (ho messo alcuni commenti, ma sono più per me che
per voi) :
 
#!/bin/bash
External_interface="ppp0"
Internal_interface="eth0"
INTRANET="
192.168.0.0/24
"
#abilita il forwarding da parte del server:
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
#accetta di essere pingato e di rispondere (pong):
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all
#definiamo le variabili d'ambiente per le porte relative ai prog di file
sharing (emule, overnet,
BCDC) che dovranno essere redirezionate dal router (linux) al client
windows su cui in effetti i programmi suddetti sono in esecuzione:
UDPFORWARD="4672 4662 4665 4775 1411 1412 1413 1414 1415 1416 1417 1418
1419 410 411 412 413 414 415 416 417 418 419 420"
TCPFORWARD="4661 4662 4711 5800 5801 6881 6882 6883 6884 1411 1412 1413
1414 1415 1416 1417 1418 1419 410 411 412 413 414 415 416 417 418 419
420 "
HOSTFORWARD="192.168.0.11"
#azzeriamo tutte le regole nelle catene
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
#definiamo le regole di policy (come vengono trattati tutti i pacchetti
che non rientrano nelle #regole definite dalle catene)
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP
#Impostiamo il masquerading per tutti i client della LAN
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#Impostiamo le regole di Forwarding in modo tale che vengano inoltrati i
pacchetti provenienti dalla LAN, ma non quelli provenienti dall'esterno
(che presentato indirizzi ip uguali a quelli dei client LAN);
ATTENZIONE! : abilitando le due righe sottostanti (adesso commentate),
si permette il forwarding ed il masquerading, ma si blocca il telnet
dall'esterno e la porta 25 (che io abbia testato); per un uso meno
paranoico sono sufficienti le righe adesso attive.
#/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i ppp0
-o eth0 -j ACCEPT
#/sbin/iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i ppp0
-s ! 
192.168.0.0/24
 -j ACCEPT
/sbin/iptables -A FORWARD -i eth0 -j ACCEPT
#Abilitiamo il redirezionamento delle porte usate dai prog P2P dal
router al client windows:
for PORT in $TCPFORWARD
do
/sbin/iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport $PORT -j DNAT
--to-destination $HOSTFORWARD:$PORT
/sbin/iptables -A FORWARD -i ppp0 -o eth0 -p tcp --dport $PORT -m state
--state NEW,ESTABLISHED,RELATED -j ACCEPT
done
for PORT in $UDPFORWARD 
do
/sbin/iptables -t nat -A PREROUTING -p udp -i ppp0 --dport $PORT -j DNAT
--to-destination $HOSTFORWARD:$PORT
/sbin/iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
done 
#Indichiamo ad iptables che deve fare i Log di tutto
/sbin/iptables -A INPUT -j LOG --log-prefix "fp=INPUT:99 a=DROP "
/sbin/iptables -A FORWARD -j LOG --log-prefix "fp=FORWARD:99 a=DROP "
/sbin/iptables -A OUTPUT -j LOG --log-prefix "fp=OUTPUT:99 a=DROP "
#In questo modo dovresti trovare i log richieste in /var/log/messages
Ebbene, come potete immaginare, il redirezionamento non va, e non
capisco in cosa ho sbagliato....
riporto di seguito un breve stralcio del mio log :
Sep 13 02:12:46 Goya kernel: fp=INPUT:99 a=DROP IN=ppp0 OUT= MAC=
SRC=151.28.19.51 DST=80.117.206.245 LEN=53 TOS=0x00 PREC=0x00 TTL=53
ID=13021 DF PROTO=TCP SPT=49153 DPT=5901 WINDOW=8192 RES=0x00 ACK PSH
URGP=0
Sep 13 02:12:46 Goya kernel: fp=OUTPUT:99 a=DROP IN= OUT=ppp0
SRC=80.117.206.245 DST=151.28.19.51 LEN=52 TOS=0x00 PREC=0x00 TTL=64
ID=256 DF PROTO=TCP SPT=5901 DPT=49153 WINDOW=3312 RES=0x00 ACK URGP=0
Sep 13 02:12:46 Goya kernel: fp=INPUT:99 a=DROP IN=ppp0 OUT= MAC=
SRC=151.28.19.51 DST=80.117.206.245 LEN=54 TOS=0x00 PREC=0x00 TTL=53
ID=13022 DF PROTO=TCP SPT=49153 DPT=5901 WINDOW=8192 RES=0x00 ACK PSH
URGP=0
Sep 13 02:12:46 Goya kernel: fp=OUTPUT:99 a=DROP IN= OUT=ppp0
SRC=80.117.206.245 DST=151.28.19.51 LEN=52 TOS=0x00 PREC=0x00 TTL=64
ID=256 DF PROTO=TCP SPT=5901 DPT=49153 WINDOW=3310 RES=0x00 ACK URGP=0
Sep 13 02:12:46 Goya kernel: fp=INPUT:99 a=DROP IN=eth0 OUT=
MAC=00:a0:d2:11:c7:12:00:06:7b:06:12:76:08:00 SRC=192.168.0.11
DST=192.168.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=128 ID=37794 DF PROTO=TCP
SPT=5900 DPT=32778 WINDOW=7928 RES=0x00 ACK PSH URGP=0
Sep 13 02:12:46 Goya kernel: fp=INPUT:99 a=DROP IN=ppp0 OUT= MAC=
SRC=151.28.19.51 DST=80.117.206.245 LEN=54 TOS=0x00 PREC=0x00 TTL=53
ID=13023 DF PROTO=TCP SPT=49153 DPT=5901 WINDOW=8192 RES=0x00 ACK PSH
URGP=0
Sep 13 02:12:46 Goya kernel: fp=OUTPUT:99 a=DROP IN= OUT=ppp0
SRC=80.117.206.245 DST=151.28.19.51 LEN=52 TOS=0x00 PREC=0x00 TTL=64
ID=256 DF PROTO=TCP SPT=5901 DPT=49153 WINDOW=3308 RES=0x00 ACK URGP=0
Sep 13 02:12:46 Goya kernel: fp=OUTPUT:99 a=DROP IN= OUT=eth0
SRC=192.168.0.1 DST=192.168.0.11 LEN=46 TOS=0x00 PREC=0x00 TTL=64
ID=49344 DF PROTO=TCP SPT=32778 DPT=5900 WINDOW=62780 RES=0x00 ACK PSH
URGP=0
Sep 13 02:12:46 Goya kernel: fp=INPUT:99 a=DROP IN=eth0 OUT=
MAC=00:a0:d2:11:c7:12:00:06:7b:06:12:76:08:00 SRC=192.168.0.11
DST=192.168.0.1 LEN=688 TOS=0x00 PREC=0x00 TTL=128 ID=38050 DF PROTO=TCP
SPT=5900 DPT=32778 WINDOW=7922 RES=0x00 ACK PSH URGP=0
Sep 13 02:12:46 Goya kernel: fp=OUTPUT:99 a=DROP IN= OUT=eth0
SRC=192.168.0.1 DST=192.168.0.11 LEN=50 TOS=0x00 PREC=0x00 TTL=64
ID=1094 DF PROTO=TCP SPT=32778 DPT=5900 WINDOW=62780 RES=0x00 ACK PSH
URGP=0
Spero che qualcuno di voi possa aiutarmi
Grazie sin d'ora per ogni consiglio 
Diego 

 URGP=0
[...]
Tutti i log che hai mostrato riguardavano la 5900 o la 5901 TCP, porte
che non hai indicato nella tua lista e che quindi non vengono prese in
considerazione dalle regole sul prerouting.  Quindi vengono loggate ma
in realta' sono pacchetti accettati.  Non e' che hai sbagliato la
lista delle porte, prova ad aggiungere anche 5900 e 5901 tcp. 
Sappiami dire :-)
-- 
Sono un servitore del Fuoco Segreto, e reggo la fiamma di Anor.
A nulla ti servira' il fuoco oscuro, fiamma di Udun.
Torna nell'Ombra! Non puoi passare.