• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] OpenVPN (schwierigkeiten mit bridge)

xapient

Member
nunja.. seit ein paar tagen arbeite ich mich jetzt schon in die materie ein.. der vpn server ist configuriert, ebenso der client.. gelöst habe ich dies mit "openvpn"
um sich vorstellen zu können welche art von vernetzung ich plane habe ich eine kleine zeichnung gemacht.
vpn.jpg



die meisten pcs in den beiden netzen sind windowspcs. der vpnserver und der vpnclient jedoch laufen mit suse9.2

ping von 10.0.0.1 zu 10.0.0.2 und umgekehrt kommt an.
ich kann per samba smb:/10.0.0.2 auf alle freigaben des sambaservers des vpn-clients zugreifen, was umgekehrt auch funktioniert. die arbeits gruppe des vpn-clients wird mir auch noch angezeigt ebenso wie meine arbeitsgruppe am client aufscheint.. (beide suserechner mimen den winsserver im lokalen netz)
der datentransfer zwischen vpnServer und vpnClient ist also gewährleistet...
dann hört es aber auch schon auf.. zugreifen ist (per namen) nicht mehr möglich und auch die anderen windows clients in den netzen von 10.0.0.1 und 10.0.0.2 sind nicht erreichbar.

ich habe schon unmengen probiert und ich denke nicht dass es am vpn selbst liegt.. ich poste dennoch die configs..

Code:
##### SERVER #####
dev tap0
server-bridge 10.0.0.1 255.255.255.0 10.0.0.2 10.0.0.10
ifconfig 10.0.0.1 255.255.255.0
port 1194
proto tcp-server

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem

tls-auth shared.key 0

client-to-client
keepalive 10 120

tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-tun
persist-key
comp-lzo
comp-noadapt
verb 3
Code:
##### CLIENT #####
client
tls-client
dev tap
remote YY.YY.YY.YY
port 1194
proto tcp-client

pull
ifconfig-nowarn

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client1.crt
key /etc/openvpn/keys/client1.key

tls-auth shared.key 1

tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ping 10
route-delay 10
persist-key
persist-tun
comp-lzo
comp-noadapt
verb 3

es müsste doch irgendwie mit routing zu lösen sein. nur steh ich da ein wenig an .. wie genau müsste jetzt so ein eintrag in /etc/sysconfig/network/routes aussehen für client und server..

oder hab ich vielleicht etwas grundsätzliches übersehen? müssen die andren clients sich etwa jeder einzeln noch irgendwie per vpn einklinken und auch alle eine 10.0.0.x ip bekommen.. wohl kaum !?

eigentlich geht es ja darum das die ganzen broadcasts nicht ankommen.. die kann man ja gar nicht routen dacht ich.. was beim bridging ja auch nich nötig sein sollte.. stimmt das?
das mit der bridge funktioniert leider nicht richtg..

in dem moment in dem ich eth0 und tap0 auf die bridge lege (br0) bekommt diese meine interne addresse 192.168.0.3 und eth0 - tap0 verlieren ihre..
damit ist der vpn tunnel dann aber unterbrochen.. ich müsste doch aber nun, wenn ich vom client aus 10.0.0.1 pinge auf die bridge kommen.. oder besser.. 192.168.0.3 jetzt pingen können..
starte ich openvpn neu,hat tap0 wieder 10.0.0.1 und es geht wieder wie beschrieben.. das netz dahinter bleibt jedoch verborgen..

wann muss ich die bridge überhaupt einrichten? vorm vpnserverstart (dann wird tap0 wieder aus der bridge genommen.. lösch ich jedoch die zeile "ifconfig 10.0.0.1 255.255.255.0" wird tap0 zwar nicht neu belegt, es funktioniert aber immernoch nicht...


vielen dank für eure ratschläge,
xapient
 
OP
X

xapient

Member
habe hier
--> http://www.pc-portal.at/thread.php?id=534
eine komplettlösung des problems gepostet.. (die zweite ist die mit welcher ich erfolgreich seit einigen wochen arbeite..)
wers mit der net schafft schaffts nie..

mfg
Xapient
 
Ich hatte das Tutorial aus dem Link schon durch und hatte mein VPN wie in der 2. Lösung beschrieben aufgebaut. Aber es geht nur, wenn ich die SuSEfirewall2 ausschalte, obwohl br0, tap0 und eth0 unter INT als interne Netzwerkkomponenten eingestellt sind. Und auch wenn ich nur br0 (was logisch das einzige Interface ist, durch das Daten gehen) als INT setze, bleiben die Pakete immer mit folgender Fehlermeldung in dem Netfilter / IPTables hängen:
Code:
Mar 15 15:00:31 Router kernel: SFW2-FWDint-DROP-DEFLT IN=br0 OUT=br0 PHYSIN=tap0 PHYSOUT=eth0 SRC=192.168.0.201 DST=192.168.0.60 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=11810 SEQ=1
Habt Ihr dazu auch ne Lösung?
 

Darkside

Newbie
xapient schrieb:
in dem moment in dem ich eth0 und tap0 auf die bridge lege (br0) bekommt diese meine interne addresse 192.168.0.3 und eth0 - tap0 verlieren ihre..
damit ist der vpn tunnel dann aber unterbrochen.. ich müsste doch aber

Hallo@all

ich muss mal dieses Thema aufgreifen, da ich genau mit dem o.g. ein Problem habe.

Erst mal zur Konfiguration:
Für mein HomeLan nutze ich komplett das Netzwerk 192.168.178.0/24. Da ich ein VPN mit einem Ethernet-Tunnel (dev tap) nutzen will, wird auch dieser IP-Adressen aus diesem Netzwerk bekommen.

Aufbau Netz:
Internet -> AVM FritzBox Fon WLAN mit Intern 192.168.178.1 -> nicht managbarer Switch -> Linux Rechner (192.168.178.5) + Windowsrechner (192.168.178.10)

Der Linuxrechner soll OpenVPN-Server werden ... via DynDNS lasse ich der Fritzbox mitteilen, welche IP Adresse ich vom Prov bekommen habe.
Auf der Fritzbox gibt es zudem 2 Portweiterleitungen auf den Linxserver (192.168.178.5) einmal für SSH Zugriffe extern und eben OpenVPN.

OpenVPN ist soweit (sowohl auf Client-Seite als auch auf Server-Seite), das auf beiden ein tap-Device angelegt wird und ein Tunnel (per Zertifikate) aufgebaut wird. Soweit so schick.

Nun weiß ich aber, das ich auf dem Linuxrechner zwischen eth0 und tap0 eine Brücke basteln muss, damit der VPNClient, bzw. der Rechner auf der den VPN-Clienten spielt, mein gesamtes Netzwerk sehen kann.

Dazu verwende ich das Bridge-Script von der OpenVPN Seite.

Aber das klappt nicht!!

Das heißt, das Bridge-Device (br0) wird angelegt, beide Devices (eth0 + tap0) hinzugefügt, die ursprünglichen Devices werden in den Promisc Mode gesetzt und das Bridge-Device bekommt die 192.168.178.5 und als MAC die, von dem physischen Device (also eth0).

Die Kommunikation zwischen Fritzbox, Linuxkiste und der Windowskiste funktioniert danach wie gewohnt. Sowohl SSH als auch bspw. Samba etc.

Aber von extern kann plötzlich weder ein Tunnel aufgebaut werden, noch der SSH Zugang hergestellt werden. Als wenn die ursprüngliche Weiterleitung NICHT funktioniert. Selbst, wenn ich auf der Fritzbox den Linuxrechner zu einem "Exposed Host" mache funktioniert es nicht.

Ein tcpdump -i br0 zeigt mir alle möglichen Datenpakete aus dem lokalen Netz ... aber nichts, was irgendwie über extern rein zu kommen scheint.

Jemand ne Idee warum das so ist??

Danke schon mal fürs durchlesen :)

Darks
 
in einem typischen Netzwerk (mit 192.168.0.1 als GW)
muss in der SuSEfirewall2 CLASS_ROUTING="no" gesetzt werden
dafür dann FW_FORWARD"192.168.0.0/24,192.168.0.0/24"

Die FW_FORWARD Regel natürlich an die lokalen Gegebenheiten anpassen.
Dann kann man INT mit "eth0 tap0 br0" definieren und es sollte luppen

hf
 

Darkside

Newbie
Danke für die AW :)

Ich vergass zu erwähnen das
a) Kein Suse (getuntes Debian Sarge mit fast aktuellem Kernel)
b) keinerlei Firewall auf dem Gerät läuft

Aber ich hab es vor 5 minuten gelöst bekommen, nach dem ich nun fast ne Woche drann verzweifelt bin. Was ganz genau geholfen hat, weiß ich nicht, aber ich habe mein Bridge-Init Script ergänzt um
  • auch den br0 Adapter mit "promisc" in den promiscuous mode gesetzt
  • da die default-route irgendwie verloren gegangen ist, lasse ich die eben mit route add hinzugefügen
  • ssh wird beendet
  • ssh wird gestartet
  • openvpn wird gestartet

So klappt das ganz fein :)

Will heute Nachmittag noch mal schauen, welcher der 4 Punkte nun der ausschlaggebende war. Wenn Interesse besteht, kann ich es ja mal berichten ... auch mein config Files posten etc. Ansonsten Danke fürs lesen und vor allem Antworten

Bye

PS: Oh, jetzt sehe ich ja, das dies ein SuSE-Forum ist. Sorry. Ich hab immer nur "linux-club" gesehen und dachte, das wäre auch was für mich :)

SORRY an alle. War keine böse Absicht. ggf. löscht meine Postings einfach.
 
ich benutz SuSE auch nur auf der Arbeit als Desktop System (da die Bedingung für meinen privaten Umstieg von Win auf Lin war, dass mein Arbeitsplatz schnell wieder einsatzbereit ist)
Auf Servern setze ich Debian ein und am Notebook Gentoo testing
:)

/edit: Aber jetzt gleite ich ins off-topic ab o_O
 
Oben