[Berlin-wireless] Port forward to LAN-port
Fabian Schonack
freifunk
Fr Okt 31 16:21:13 CET 2008
> Alles klar, diese Einschränkungen nerven. Der Leidensdruck war bei mir
> einfach noch nicht gross genug um das ganze Teil umzubauen.
>
> > > [...]
> > > Hast du die entsprechenden Ports in der Firewall geöffnet? Es sollte
> > > etwa so aussehen:
> > >
> > > # firewall port öffnen
> > > iptables -I INPUT -p tcp --dport 2217 -j ACCEPT
> > > # nat einrichten
> > > iptables -t nat -I PREROUTING -i vlan1 -p tcp -d externeip --dport
> > > 2217 -j DNAT --to interneip
> >
> > was macht denn die externip da? Damit ist die ip des WAN ports
> > gemeint, oder? Sieht aber zumindest aehnlich aus wie meins. habe die
> > Einschraengungen -d externip und vlan1 im PREROUTING nicht drin und
> > die INPUT habe ich auch nur auf tcp, ACCEPT und --dport
> > zusammengestrichen gehabt. Dummerweise auch mit diesen weichen regeln
> > kein erfolg. Ferner frage ich mich ob die INPUT ueberhaupt richtig
> > ist, ist doch eher ein FORWARD, oder? Will ja ncihts auf dem
> > FF-router will an einen seiner ausgaenge.
>
> Ich bin mir da jetzt selber nicht 100% sicher. Der Weg eines Pakets ist
> ja bekanntlich der folgende:
>
> -- PREROUTING --+-- FORWARD --+ POSTROUTING --
>
> INPUT OUTPUT
>
> +---- HOST ---+
>
> D.h, Ein Paket, das an die externe IP-Adresse deines Routers und den
> konfigurierten Port gesendet wird läuft zuerst mal durch PREROUTING,
> dort wird es auf es auf eine andere destination address umgebogen und
> durchläuft deshalb die FORWARD und nicht die INPUT chain. Einwände?
Genau so hatte ich das ja auch verstanden deswegen hatte ich mich ueber deine
INPUT gewundert.
>
> Die externe IP in der Rule brauchst du, weil du nur Verbindungen
> umbiegen willst, die explizit auf die entsprechende IP:Port Kombination
> lauten.
OK, aber feinheiten wollte ich spaeter machen. deswegen hatte ich testweise um
ueberhaupt mal an den host ranzukommen alle einschraenkungen aussen vor
gelassen. half aber bis nichts. *hmpf*
Zum verdeutlichen wie es bis jetzt nicht geht:
Glaube das ist genauso wie du dir das auch gedacht hattest.
CHAIN="PREROUTING";
#--to-destination ipaddr[-ipaddr][:port-port]
NAT_DST="192.168.1.103-192.168.1.103:80-80";
INCOMMINGPORT="2217";
#insert rule on top
iptables -t nat -I $CHAIN -p tcp --dport $INCOMMINGPORT -j DNAT --to $NAT_DST;
#show it to me
iptables -L $CHAIN -v -n -t nat --line-numbers |more
#live mode
#while [ TRUE ]; do iptables -L $CHAIN -v -n --line-numbers |more ;sleep
1;done
CHAIN="FORWARD";
#--to-destination ipaddr[-ipaddr][:port-port]
DST="192.168.1.103/24";
#umgebogenen zielport sonst kommt sie noch an "ipfilter" vorbei
INCOMMINGPORT="80";
#insert rule on top
iptables -I $CHAIN -j ACCEPT -p tcp --dport $INCOMMINGPORT -d $DST
#show it to me
iptables -L $CHAIN -v -n --line-numbers |more
#EOS
Damit kommen die http request offenbar schonmal bis zur FORWARD. Dummerweise
ist das fuer ich das ende der Packetverfolgung.
Einzige idee die mir noch bleibt. Was ist mit der Rueckroute muss man da noch
was machen? Das POSTROUTING veraendert die Rueckwegzieladdresse, oder?
Chain FORWARD (policy ACCEPT 10 packets, 1714 bytes)
num pkts bytes target prot opt in out source destination
1 6 360 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.0/24 tcp dpt:80
Chain PREROUTING (policy ACCEPT 127K packets, 5028K bytes)
num pkts bytes target prot opt in out source destination
1 2 120 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:2217
to:192.168.1.103:80
>
> LG
> Lorenz
>
> _______________________________________________
> Berlin mailing list
> Berlin at berlin.freifunk.net
> http://lists.berlin.freifunk.net/cgi-bin/mailman/listinfo/berlin
--
104.198.0.16
Mehr Informationen über die Mailingliste Berlin