merkwuerdiges iptables forwarding problem

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
nonsenz
Beiträge: 232
Registriert: 26.10.2002 20:16:49
Wohnort: berlin

merkwuerdiges iptables forwarding problem

Beitrag von nonsenz » 09.09.2006 19:05:37

nabend zusammen...

...habe schon seit geraumer zeit ein merkwuerdiges problem mit iptables
auf meinem router. ich habe auch schon das entsprechende openwrt forum
befragt, aber leider keine hilfe bekommen.
nun zu meinem problem:

ich moechte ports auf bestimmte ip's weiterleiten.
z.b. tcp port 4662 auf ip 192.168.1.117 und 192.168.1.217.
dabei ist anzumerken, dass der pc hinter *.117 per kabel und *.217 per wlan mit
dem router verbunden sind.
nun ist es so, dass die weiterleitung auf *.117 klappt und die auf *.217 nicht.

hier mal die iptable -L ausgabe :

Code: Alles auswählen

Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere            state INVALID
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
DROP       tcp  --  anywhere             anywhere            tcp option=!2 flags:SYN/SYN
input_rule  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     gre  --  anywhere             anywhere
REJECT     tcp  --  anywhere             anywhere            reject-with tcp-reset
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

Chain FORWARD (policy DROP)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere            state INVALID
TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
forwarding_rule  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy DROP)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere            state INVALID
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
output_rule  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
REJECT     tcp  --  anywhere             anywhere            reject-with tcp-reset
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

Chain forward_ppp0 (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             192.168.1.117       tcp dpt:4662
ACCEPT     udp  --  anywhere             192.168.1.117       udp dpt:4672
ACCEPT     tcp  --  anywhere             192.168.1.217       tcp dpt:4662
ACCEPT     udp  --  anywhere             192.168.1.217       udp dpt:4672
ACCEPT     tcp  --  anywhere             192.168.1.2         tcp dpt:80
ACCEPT     tcp  --  anywhere             192.168.1.2         tcp dpt:1234
ACCEPT     tcp  --  anywhere             192.168.1.2         tcp dpt:443
ACCEPT     tcp  --  anywhere             192.168.1.2         tcp dpt:19673
ACCEPT     tcp  --  anywhere             192.168.1.2         tcp dpt:15101

Chain forwarding_rule (1 references)
target     prot opt source               destination
forward_ppp0  all  --  anywhere             anywhere

Chain input_ppp0 (1 references)
target     prot opt source               destination

Chain input_rule (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:6666
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:7777
input_ppp0  all  --  anywhere             anywhere

Chain output_rule (1 references)
target     prot opt source               destination
ich koennte mir vorstellen, dass es ein problem mit den interfaces gibt,
daher hier mal die ausgabe von ifconfig:

Code: Alles auswählen

br0       Link encap:Ethernet  HWaddr 00:17:31:BF:70:16
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:84391090 errors:0 dropped:0 overruns:0 frame:0
          TX packets:51814932 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3179085698 (2.9 GiB)  TX bytes:2316438824 (2.1 GiB)

eth0      Link encap:Ethernet  HWaddr 00:17:31:BF:70:16
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:65977924 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49127251 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1187808129 (1.1 GiB)  TX bytes:881491718 (840.6 MiB)
          Interrupt:4

eth2      Link encap:Ethernet  HWaddr 00:17:31:BF:70:16
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING ALLMULTI MULTICAST  MTU:1500  Metric:1
          RX packets:50277291 errors:0 dropped:0 overruns:0 frame:32345641
          TX packets:40570789 errors:1596 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2713893775 (2.5 GiB)  TX bytes:1857985818 (1.7 GiB)
          Interrupt:2 Base address:0x2000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:71 errors:0 dropped:0 overruns:0 frame:0
          TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5280 (5.1 KiB)  TX bytes:5280 (5.1 KiB)

ppp0      Link encap:Point-Point Protocol
          inet addr:x.x.x.x  P-t-P:x.x.x.x  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:33024 errors:0 dropped:0 overruns:0 frame:0
          TX packets:43258 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:23889175 (22.7 MiB)  TX bytes:25247226 (24.0 MiB)

vlan0     Link encap:Ethernet  HWaddr 00:17:31:BF:70:16
          UP BROADCAST RUNNING ALLMULTI MULTICAST  MTU:1500  Metric:1
          RX packets:34679959 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12094032 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1366085656 (1.2 GiB)  TX bytes:1304573836 (1.2 GiB)

vlan1     Link encap:Ethernet  HWaddr 00:17:31:BF:70:16
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:31151081 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37030424 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2919714193 (2.7 GiB)  TX bytes:3626571918 (3.3 GiB)
ich muss gestehen, dass ich grade von den interfaces verwirrt bin.
moeglicherweise hat jemand eine idee.
da ich schon so einiges gelesen und probiert habe, bin ich zz
ueberfragt.

danke und ciao
nons

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 09.09.2006 19:23:38

Sorry, aber was du vorhast, kann so auch nicht funktionieren: Einen bestimmten Port auf dem ppp0-Interface deines Routers kannst du auch nur an einen einzigen Rechner hinter dem Router weiterleiten - also entweder an 192.168.1.117 oder an 192.168.1.217. Einen anderen Port kannst du auch an eine ander interne IP "forwarden", aber eben nicht ein und denselben Port an zwei interne IP-Adressen.

Alles andere macht ja auch keinen Sinn: Wie soll der Router denn unterscheiden können, ob ein Paket von einem beliebigen Rechner aus dem Internet mit Ziel-Port 4662 und seiner ppp0-IP als Ziel-IP nun für 192.168.1.117 oder für 192.168.1.217 bestimmt ist ?

Benutzeravatar
nonsenz
Beiträge: 232
Registriert: 26.10.2002 20:16:49
Wohnort: berlin

Beitrag von nonsenz » 09.09.2006 19:39:28

... :-)

stimmt! daran habe ich noch garnicht gedacht! ohh mann...
es ging eben darum einen bestimmten rechner entweder ueber wlan oder kabel
den port weiterzuleiten. also nicht gleichzeitig. aber scheinbar
akzeptiert iptables dann nur den ertsen eintrag.
da das mit den 2 ip's nicht soo wichtig ist, werde ich einfach eine
der regeln entfernen.

also vielen dank, das hilft mir !

ciao
nons

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 10.09.2006 12:30:05

Jain, iptables akzeptiert nicht nur den 1. Eintrag. Akzeptiert werden beide, wie du in deiner Ausgabe ja siehst.
Allerdings wird das Paket die 1. Regel matchen und dann in keine weitere Regel mehr hineingeworfen. Mit dem 1. Match ist das Paket durch. Deshalb greift nur die 1. Regel, weil sie weiter vorn steht ;)

Antworten