[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