OpenVPN-Server auf Linux; Fritzbox->Client TAP?

blubbersuelze

Neuer User
Mitglied seit
29 Okt 2007
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe einen funktionierenden OpenVPN-Server auf einem Linuxserver am laufen und mehrere OpenVPN-Clients.
Nun will ich eine Fritzbox noch als Client einbinden und diese dazu entsprechend modden.

Zur Struktur des Netzes:
-Der Server hat im LAN die IP 192.168.1.1 und stellt einen Ethernettunnel
-alle LAN-Clients und VPN-Clients bekommen vom DHCP-Server eine IP vergeben die zwischen 192.168.1.100 und 192.168.1.150 liegt da das lokale Netzwerk auf eine Bridge gemappt wird.
Dies hat den Sinn und Zweck das die VPN-Clients arbeiten können als wären sie physikalisch im lokalen Netzwerk und ausser der Bandbreite keinen Unterschied sehen und merken, was auch super funktioniert(z.b. Broadcasts für Spiele und so).

Mit den VPN-Clients klappt das wunderbar seit langer Zeit.
Nun soll ein weiteres Netzwerk über eine Fritzbox angebunden werden.
Dazu wird wahrscheinlich ebenso eine virtuelle Netzwerkkarte gebraucht die von meinem Server über das VPN ebenso eine DHCP-Lease bekommen soll.

Leider bekomme ich das nicht gebacken.
Bisher habe ich die Howto von Tecchannel abgearbeitet aber das VPN will einfach nicht hochkommen und ein nachträgliches einbauen einer virtuellen Netzwerkkarte über das Moddingscript von www.the-construct.com hilft auch nicht.

meine Client.ovpn sieht folgendermassen aus:
---------------------------------------------
client
tls-client
ns-cert-type server
dev tap
port 12345
proto tcp
remote mydomain.homeip.net
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
ping 15
ping-restart 120
cert client.crt
key client.key
comp-lzo
verb 3
daemon
#Route legen für 2tes Subnetz hinter dem LAN
route 192.168.2.0 255.255.255.0
pull
---------------------------------------------

wie gesagt die config funktioniert mit meinen Windows-Clients.

ich bin für jede Hilfe dankbar um die Fritzbox als funktionierenden OpenVPN-Client anzubinden.

mfg.
blubbersuelze :p
 
blubbersuelze schrieb:
aber das VPN will einfach nicht hochkommen
Da helfen nur mehr Informationen: Was genau meinst du mit "nicht hochkommen"? Wie lautet die Fehlermeldung? Als erstes solltest du das Programm starten, ohne den "daemon" Befehl, damit du die Startmeldungen siehst. Erste Vermutung: Das angelegte Device musst du per "dev-node" angeben.

Jörg
 
ich gebe in der debug.cfg bevor ich
./openvpn --config client.ovpn
aufrufe an:
mknod /var/tmp/tap c 10 200

openvpn gibt keine Fehlermeldung.
das Daemonflag hab ich auch deaktiviert und in der Prozessliste taucht kein openvpn auf.
selbst wenn ich es ohne Parameter starte kommt keine Fehlermeldung, was eigentlich kommen sollte.

Das Executionflag ist auch gesetzt.

mit "nicht hochkommen" meine ich das openvpn nicht startet, egal was ich mache. Sei es von gescriptet oder von Hand

Unter Linux hab ich keine Probleme damit aber auf der Fritzbox schaffe ich das irgendwie nicht :(
 
blubbersuelze schrieb:
mknod /var/tmp/tap c 10 200
Wie schon gesagt, dann benötigst du den Befehl "dev-node /var/tmp/tap" in der Config.
blubbersuelze schrieb:
das Daemonflag hab ich auch deaktiviert [...]
selbst wenn ich es ohne Parameter starte kommt keine Fehlermeldung
Wenn der "dev-node" Parameter nicht reicht, starte bitte das Programm mit einer Config ohne "deamon" und mit "verb 6" mittels
openvpn --config client.ovpn von der Console. Dann solltest/musst du in der Ausgabe des Programms was sehen, und ggf. diesen Output hier posten, sowas in der Art wie:
Code:
Sun Oct  28 11:02:20 2007 us=345911 OpenVPN 2.1_rc4 mipsel-linux [SSL] [LZO2] [EPOLL] built on Aug 11 2007
Sun Oct  28 11:02:20 2007 us=401084 Diffie-Hellman initialized with 1024 bit key 
....


Jörg
 
/var/tmp/tap
wird erstellt...

aber
./openvpn --config client.ovpn
macht garnix

ich starte es und habe OHNE irgendwelche Ausgaben die Shell wieder da.
"Daemon" ist in der client.ovpn gelöscht

Gerne würde ich Loggings posten, aber es entstehen keine, das ist das Problem
 
Dann starte doch bitte mal nur "openvpn" ohne Angabe einer Config. Sonst versuche doch bitte mal das Binary von hier stattdessen.

Jörg
 
also mit dem openvpn - binary von der verlinkten Seite sieht das folgendermassen aus:

Tue Oct 30 23:45:50 2007 SENT CONTROL [www.mustermann.de]: 'PUSH_REQUEST' (status=1)
Tue Oct 30 23:45:50 2007 PUSH: Received control message: 'PUSH_REPLY,ping 10,ping-restart 300'
Tue Oct 30 23:45:50 2007 OPTIONS IMPORT: timers and/or timeouts modified
Tue Oct 30 23:45:50 2007 Note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Tue Oct 30 23:45:50 2007 Note: Attempting fallback to kernel 2.2 TUN/TAP interface
Tue Oct 30 23:45:50 2007 Cannot allocate TUN/TAP dev dynamically
Tue Oct 30 23:45:50 2007 Exiting
#


ich hab vor aufrufen von openvpn natürlich
mknod /var/tmp/tap c 10 200
ausgeführt....

in /dev/net kann man leider kein tun direkt anlegen oder anderes verzapfen ...

es scheint aber nur noch an der virtuellen NIC zu liegen über die mit dem VPN-Server die Verbindung hergestellt werden soll

*freu*
 
Ich zitiere mich mal selbst ;-)
MaxMuster schrieb:
Wie schon gesagt, dann benötigst du den Befehl "dev-node /var/tmp/tap" in der Config.

Jörg
 
"dev-node" kennt die shell meiner Fritzbox 7170 nicht :(

ich habe die Firmwareversion 29.04.40 drauf vlt. hilft das was weiter
 
Der Befehl "dev-node /var/tmp/tap" gehört in die OpenVPN-Config.

Jörg
 
ok
dev-node ins configfile eingetragen und er stellt verbindung her.

jetzt muss ich es bloss noch überzeugen das das tap-device sich ip und kram vom dhcp des VPN-Server zieht.
Das klappt bisher noch nicht :(
 
Die Voraussetungen sind mit der Nutzung von Zertifikaten und dem dem "pull" in der Client-Config schon gegeben. Schickt der Server den IPs (mit "ifconfig-pool ...")? Was sagt der Client (ohne "daemon" gestartet) denn so beim Start über push/pull?


Jörg
 
die Verbindung zwischen der Fritzbox und meinem VPN-Server wird hergestellt
aber die Fritzbox bekommt vom DHCP-Server, welcher ebenso auf dem VPN-Server sitzt keine Lease. Die Notebooks, welche auch mit dem VPN-Server verbinden bekommen problemlos DHCP-Lease usw.

der Server spuckt mir aber folgendes aus:

Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 NOTE: Options consistency check may be skewed by version differences
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'version' is used inconsistently, local='version V4', remote='version V0 UNDEF'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'dev-type' is present in local config but missing in remote config, local='dev-type tap'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'link-mtu' is present in local config but missing in remote config, local='link-mtu 1576'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'tun-mtu' is present in local config but missing in remote config, local='tun-mtu 1532'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'proto' is present in local config but missing in remote config, local='proto TCPv4_CLIENT'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'comp-lzo' is present in local config but missing in remote config, local='comp-lzo'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'cipher' is present in local config but missing in remote config, local='cipher BF-CBC'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'auth' is present in local config but missing in remote config, local='auth SHA1'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'keysize' is present in local config but missing in remote config, local='keysize 128'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'key-method' is present in local config but missing in remote config, local='key-method 2'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 WARNING: 'tls-client' is present in local config but missing in remote config, local='tls-client'
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Oct 31 21:01:48 wotan openvpn[2756]: 84.58.109.43:61016 [client02] Peer Connection Initiated with 84.58.109.43:61016
Oct 31 21:01:48 wotan openvpn[2756]: client02/84.58.109.43:61016 MULTI: no dynamic or static remote --ifconfig address is available for client02/84.58.109.43:61016
Oct 31 21:01:49 wotan openvpn[2756]: client02/84.58.109.43:61016 PUSH: Received control message: 'PUSH_REQUEST'
Oct 31 21:01:49 wotan openvpn[2756]: client02/84.58.109.43:61016 SENT CONTROL [client02]: 'PUSH_REPLY,ping 10,ping-restart 300' (status=1)


diese Warnings kommen nur beim verbinden der Fritzbox.
An dem Punkt wo dieses Logfile hier aufhört meldet sich bei den Notebooks der DHCP-Server und übergibt eine Lease, was bei der Fritzbox nicht passiert

die Client.ovpn der Fritzbox sieht folgendermassen aus(bei den Notebooks ist sie, ausser der Punkt dev-node, identisch und läuft):

client
tls-client
ns-cert-type server
dev-node /var/tmp/tap
dev tap
port 12345
proto tcp
remote mydomain.dyndns.org
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
ping 15
ping-restart 120
cert client02.crt
key client02.key
comp-lzo
verb 3
pull



in der debug.cfg
wird noch
"mknod /var/tmp/tap c 10 200"
ausgeführt

ifconfig zeigt auch kein tap0-device an, sondern ist nur bei aktivem openvpn über "ifconfig tap0" abrufbar


ich hoffe das ihr mir weiterhelfen könnt :)
 
Die Box erwartet die IP vom VPN-Server, der aber nicht dafür konfiguriert ist ("no dynamic or static remote --ifconfig address is available for client02/84.58.109.43:61016"). Trag also für diesen Client eine IP ein, und es wird sicher besser (oder vergebe die IP auf dem Client mit einem "ifconfig <ip> <maske>" in der Client Config).

Jörg
 
Das ist ja das was ich nicht verstehe,
denn der Pool des DHCP-Server ist gross genug,
so das Anfragen eigentlich durchkommen sollten... bei den Notebooks klappt das ja auch ... und am Server will ich nichts umstellen, da dieser ja ohne probleme funktioniert funktioniert

von daher denke ich das das Clientseitig ein Problem sein muss.
kann das vielleicht am binary von openvpn sein das auf der Fritzbox verwendet wird? Weil das Serverlogfile ja auch einige Warnings ausgibt (siehe mein letztes Posting) die bei den anderen VPN-Clients nicht kommen.

Leider hab ich kein neueres Binary von openvpn gefunden mit dem ich das mal auf der fritzbox probieren könnte...

für weitere Ideen bin ich offen :)
 
also der Pool des DHCP-Servers ist mehr als gross genug
und die anderen VPN-Clients (welche die selben Configparameter haben) werden auch daraus versorgt, also sollte das mit der Fritzbox auch klappen.

Vlt. liegt es ja an der Version des openvpn Binary?
Leider habe ich keine neuere Version bisher gefunden als die Version die mir weiter oben empfohlen wurde.
Denn bei den anderen Clients bekomme ich auch die Warnings nicht die mir das Serverlog ausspuckt wenn die Fritzbox sich verbindet.

Für weitere Ideen und Lösungsvorschläge bin ich dankbar :)
 
blubbersuelze schrieb:
...die anderen VPN-Clients (welche die selben Configparameter haben) werden auch daraus versorgt, also sollte das mit der Fritzbox auch klappen.
Jein ;-) Die anderen Clients beziehen wie du schon gesagt hast ihre IP über den DHCP von Windows. Das ist vollkommen unabhängig von der OpenVPN Software (daher hast du dann ja auch bei der "virtuellen Netzwerkkarte" einen Haken bei "IP automatisch beziehen"). Wenn du es also schaffst, dieses Verhalten von Windows (die "Karte" bekommt einen "Link", also starte eine DHCP Anfrage über das Interface) in der Box "nachzubauen", dann geht das sicher auch. Ich kann dir leider nicht genau sagen, wie das geht, nur, wie es mit den Mitteln des OpenVPN funktioniert (und das habe ich ja auch schon gesagt ;-))

Du musst also vermutlich doch die OpenVPN Möglichkeiten nutzen, oder einen DHCP-Client compilieren und den auf der Box nach dem Verbindungsaufbau für das TAP starten (dafür benutzt man den OpenVPN Befehl "up <script>" in der Config, wobei <script> dann z.B. den dhcp-Aufruf für das TAP device starten kann.)

EDIT Du könntest vermutlich (getestet habe ich das nicht) den udhcp der busybox compilieren und dann das "up-script" anlegen mit dem Inhalt
Code:
#! /bin/sh
udhcp -i tap0


Jörg
 
Zuletzt bearbeitet:
Ich habe jetzt der virtuellen Netzwerkkarte von Hand eine IP gegeben und es funktioniert alles super von der Fritzbox aus.

Problem ist bloss das das Netz, welches über das VPN erreichbar sein sollte nicht von einem Testrechner aus erreichbar ist.

Weiss jemand wie ich IPforward in der Fritzbox aktiviere?
Das war bei meinem Server auch nötig das das Routing überhaupt funktioniert ;)
 
Die Box routet "von Haus aus" (ist ja ein Router ;-)). Von wo nach wo willst du denn?
Von "hinter der Fritzbox" in ein Netz "hinter dem Server"? Dann muss der Server (der vermutlich Defaultgateway in dem Netz ist?!?) natürlich wissen, wo dieses Netz ist (um die "Antwortpaket" dorthin zu schicken) und es zu der VPN-IP des Clients (die du jetzt per Hand vergeben hast) hinrouten.

Jörg
 
Zuletzt bearbeitet:
ok,

werde die Fritzbox mal ins Netzwerk hängen wo diese dann hin soll (wird Ende nächster Woche sein)
und mich dann nochmal melden ob es geklappt hat :)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.