VPN/IPtables Frage

dMopp

Banned
Registriert
März 2007
Beiträge
9.688
Hallo an alle.

Ich habe mal wieder ne kleien Frage bezüglich IPtables + VPN.


Folgender Aufbau:
Heimnetz: 192.168.178.0
VPN Netz: 10.8.0.0
Fremdnetzte: 192.168.1.0 192.168.0.0 192.168.178.0 (und weitere... )

Folgendes soll funktionieren:

Im Heimnetz befindet sich ein upnp Server und dieser soll für alle Fremdnetzte sichtbar sein. Welche Regel müsste ich dafür aufstellen?

Aktuell mache ich folgendes:
Maskieren Wenn Ziel ist nicht 192.168.178.0 und Ausgehende Schnittstelle ist eth0
Maskieren Wenn Quelle ist 192.168.178.0 und Ausgehende Schnittstelle ist tun0

So komme ich zwar von meinem Fremdnetz auf alles in meinem Heimnetz (und theoretisch auch auf alle alles in den Fremdnetzten, aber bisher konnte ich das NICHT testen), jedoch finde ich den DLNA Server so nicht..

Zusammenfassend:
Sobald sich jemand ins VPN einwählt soll alles zu funzen als wenn er sich per WLAN bei mir daheim aufhält. Samt Kommunikation untereinander.
 
Zuletzt bearbeitet:
Damit wollte ich mich aus naheliegenden Gründen auch mal beschäftigen :) Womit realisierst du dein VPN? OpenVPN? Nimm dir mal tcpdump zur hilfe, und guck was für Pakete upnp verwendet. Ich vermute multicast, die eventuell von deinen Regeln nicht berücksichtigt werden.
 
Naja, ich achte nicht auf die Art der Pakete :D (Die Regel ist 1:1 wie in den iptables oben abgegeben) tcpdump ist immer etwas nervig ... :(


Edit: ich versuche es mal über einen anderen Weg:


Also:

Ich will verschiedene Clienten mit MEINEM heimnetzwerk verbinden, so dass alle geräte im netzwerk gesehen werden können und die wiederum alle die VPN Clients sehen können. Selbstverständlich samt allen diensten/Protokollen.

Irgendwie stehe ich da auf dem Schlauch xD


Aufbau:
Client 1 -> Netzwerk 192.168.30.0
Client 2 -> Netzwerk 192.168.0.0
Client 3 -> Netzwerk 192.168.178.0
Client 4 -> Netzwerk 192.168.1.0
Client 5 -> Netzwerk 192.168.2.0

VPN Netz: 10.8.0.0

Zielnetz (für alle) 192.168.178.0


Ich hoffe mir hilft da einer, denn so ganz will es nicht klappen (Außer von Client 1, da funzt nur das upnp nicht >_<... )
 
Zuletzt bearbeitet:
Toll. Wenn ich nach upnp vpn iptables suche, listet Google diese Seite als erstes ;)

Aber ich habe weiter gesucht und folgendes gefunden:
http://mediatomb.cc/dokuwiki/faq:faq schrieb:
make sure that both player and server are on the same subnet, otherwise getting UPnP to work requires additional work. You may easily use some kind of tunnel such as OpenVPN to route multicast traffic between subnets, allowing UPnP to work on both subnets.
[...]
The UPnP protocol players use to find media servers relies on the IGMP protocol, which uses multicast. Be sure your firewall is allowing IGMP join requests from any IP address, and general IGMP traffic destined for broadcast addresses. For example, using iptables on linux and assuming eth1 is the interface MediaTomb is listening on:
Code:
  # Special case to allow 0.0.0.0 source for UPnP to use IGMP to
  # register clients with media servers and routers.
  iptables -A INPUT -i eth1 -s 0.0.0.0/32 -d 224.0.0.1/32 -p igmp -j ACCEPT
 
  # Any firewall code to limit eth1 input traffic to the appropriate IP subnets
  # must come AFTER the above special case.
 
  # UPnP uses IGMP multicast to find media servers.  Accept IGMP broadcast packets
  iptables -A INPUT -i eth1 -d 239.0.0.0/8 -p igmp -j ACCEPT
Similarly, if the interface MediaTomb is listening on is a bridge, ensure IGMP snooping is enabled. On linux, this means setting CONFIG_BRIDGE_IGMP_SNOOPING=y in your kernel config file, and rebuilding your kernel if it wasn't previously set.

Das sollte erstmal klappen. Allerdings gibt es dann noch ein Problem:
OpenVPN war bei unseren Installationen immer langsam. Mehr als 10 MBit gingen nicht wirklich drüber und beim zocken z.B. war der Ping schlecht. Daher hatte ich Probleme mitm Streamen von HD-Content. Woran das genau lag, weis ich nicht. Ich hatte einmal ein uraltes AMD Board das davon meiner Einbildung nach nicht betroffen war. Vielleicht also ein Netzwerktreiber-Problem.

Wenn ich mal n Wochenende Zeit habe, versuche ich mal n Referenzsetup zu beschreiben. Mir schwebt vor z.B. ne Linux-VM unter Windows als LAN-Bridge zu verwenden.
 
Aaaalso, das erste was ich gefunden habe ist, dass man TAP statt TUN verwenden muss... Was ja schonmal kacke ist... >_>

Zweiter Versuch: Der MediaServer läuscht nun direkt auf den TAP/TUN (jeh nach dem was ich grad rumspiele) Device und dennoch lässt sich nix finden >_>. Es ist zum Mäusemelken :D



Edit: Bis auf NATTING muss ich an den IPTables nix fummeln, da die eh alles erlauben (liegt daran, dass der Server sich eh hinter ner FW befindet.. Die Wiederum hat mit dem Problem nix am hut, da der traffic ja durch den ovpn Port gejagt wird, der freigegeben ist )
 
Zuletzt bearbeitet:
Kannst du bitte nochmal dein Problem formulieren, das sich ja jetzt seit dem OP geändert hat? Zum debuggen eigenet sich tcpdump bestens und ich empfehle dir, dich damit auseinanderzusetzen (ist eigentlich ganz einfach). Außerdem gibt's in iptables das LOG-Target ;)

gruß
hostile
 
rcpdump benutze ich ja :D

Problem ist weiterhin: Außerhalb des Heimnetz ist der upnp Server (twonky) nicht sichtbar.

IP-Tables erlauben ALLES, außer... (sind also quasy ohne funktionen, abgesehen vom NAT Teil)
 
Der UPNP-Server läuft ja auch auf dem OpenVPN-Server, richtig? Auf welchen IP-Adressen lauscht der? Kannst du mal paar Fakten posten? ("netstat -a4np", "iptables -L -n", "route -n")

gruß
hostile
Ergänzung ()

Kannst du mal deine openvpn.conf posten?

gruß
hostile
 
Sicher sicher... :D

- Twonky lauscht auf eth0 und tun0
- netstat steht nix was helfen würde :D
- iptables:
Code:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
- route:
Code:
0.0.0.0         192.168.178.1   0.0.0.0         UG    0      0        0 eth0
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
10.8.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.178.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

178.1 ist der Router.. die Geräte selbst verwenden den Server (178.254 bzw 8.2) als Gateway


Server.conf:
Code:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group users
persist-key
persist-tun
status openvpn-status.log
verb 5
client-to-client
push "route 192.168.178.0 255.255.255.0"
 
Code:
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere            !192.168.178.0
MASQUERADE  all  --  anywhere             10.8.0.0
MASQUERADE  igmp --  anywhere             anywhere

Wobei Regel 3 nur nen Test ist und nicht relevant :D

Regel 2 auch.. Wird durch Regel 1 ja schon gesagt .. Is alles temporär :D
 
Wenn es dir hilft :D

Code:
tcp        0      0 10.8.0.1:9000           0.0.0.0:*               LISTEN      28593/twonkymediase
tcp        0      0 192.168.178.254:9000    0.0.0.0:*               LISTEN      28593/twonkymediase
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      28593/twonkymediase
tcp        0      0 192.168.178.254:9000    192.168.178.123:53479   VERBUNDEN   28593/twonkymediase
udp        0      0 192.168.178.254:1030    0.0.0.0:*                           28593/twonkymediase
udp        0      0 127.0.0.1:1030          0.0.0.0:*                           28593/twonkymediase
udp        0      0 10.8.0.1:1030           0.0.0.0:*                           28593/twonkymediase
udp        0      0 239.255.255.250:1900    0.0.0.0:*                           28593/twonkymediase
udp        0      0 239.255.255.250:1900    0.0.0.0:*                           28593/twonkymediase
udp        0      0 10.8.0.1:1900           0.0.0.0:*                           28593/twonkymediase
udp        0      0 192.168.178.254:1900    0.0.0.0:*                           28593/twonkymediase
 
Na normalerweise (zB bei Rythmbox) siehst du alle upnp Server in ner Liste... das tun die vpn Clients halt nicht
 
Okay. Das geht ja über Multicast soweit ich weiß. Das tun-device in deinem OpenVPN unterstützt das nicht (out-of-the-box oder gar nicht, keine Ahnung). Benutz doch mal das tap-device (Layer 2).

gruß
hostile

PS: Hatte Enigma ja schon geschrieben.. ^^

PS2: Und du bist doch schon selbst auf die Lösung gekommen?
Ergänzung ()

Also es geht auf jeden Fall, hab's selbst ausprobiert :P

gruß
hostile
 
Bei mir gings nicht ;D

Aber naja ich belasse ich zuerst dabei, da ich ungerne TAP verwende :/
 
Ich will nicht grundsätzlich ALLES durch ballern, was bei TAP aber der Fall ist :/
Ergänzung ()

So neues Problem... :D


Mein Netzwerk hat ja das Netz 192.168.178.0

Dass von Client5 leider auch xD Sobald ich die VPN-Verbindung herstelle, ist beim clien das Internet "weg" (DNS Auflösung klappt nimmer, ob der ip verkehr noch richtig klappt weis ich net.. zumindest das vpn bleibt erhalten)... Gibt es da nen Trick? (den ich vergessen habe oder so)
 
Zuletzt bearbeitet:
Zurück
Oben