vpnc unter OpenBSD ;)

rogx

Well-Known Member
hallo forum,

schoen endlich gibt es den vpnc unter OpenBSD

http://www.openbsd.org/cgi-bin/cvsweb/ports/security/vpnc/

Kompilieren klappt wunderbar. Doch nun mein Problem:

> /usr/local/sbin/vpnc
dann gebe ich IPSec-ID,IPSEc-secret,VPN-host und benutzernamen und passwort ein :

> tail /var/log/messages
Jun 1 03:39:42 mumu vpnc: local address for TUN_IP is TUN-IP
Jun 1 03:39:42 mumu vpnc: local address for VPN-HOST is LOCAL-GW

toll, nun gebe ich wie unter FreeBSD meine routen ein:

>route add -host VPN_HOST LOCAL-GW
>route delete default
>route add default -interface TUN-IP

okay, schaue ich mir die tabelle noch mal an:

>netstat -rn | more
Routing tables

Internet:
Destination Gateway
default TUN-IP
127/8 127.0.0.1
127.0.0.1 127.0.0.1
TUN-IP TUN-IP
VPN-HOST LOCAL-GW

aber ich habe weder ins locale Netz noch in das Internet eine Verbindung, allerdings kann ich den VPN-HOST anpingen und ein tcpdump -i wi0 zeigt mir esp-traffic

Frage 1: gibt es jemanden der schon eine Verbindung mit vpnc unter OpenBSD konfiguriert hat?

Frage 2: setzt der vpnc irgendwelche internen routen ?


danke schonmal
rogx
 
OpenBSD und vpnc :-(

Hallo und guten Morgen ;-)

Ich habe so ziemlich das gleiche Problem, vpnc (bei mir über T-DSL) auf einem 3.5er snapshot. Der IPSEC-Verbindungsaufbau scheint zu funktionieren soweit ich das beurteilen kann.

Das Problem scheint offenbar im richtigen Routing zu liegen.

T-ONLINE-GW = mein von t-online zugewiesenes gateway
T-ONLINE-IP = meine mir von t-online zugewiesene IP-Nummer
VPN-GW = mein vpn-gateway an der Uni
VPN-IP = meine mir vom Uni-VPN-Server zugewiesen IP-NUmmer

Rechner ist per dsl online, ich starte vpnc (manuell!) und /var/log/messages meldet brav:

[...] vpnc: local address for [VPN-IP] is [VPN-IP]
[...] vpnc: local address for [VPN-GW] is [T-ONLINE-IP]

Und so sieht die Routing-Tabelle aus:

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu Interface
default [T-ONLINE-GW] UGS 1 112 - tun0
127/8 127.0.0.1 UGRS 0 0 33224 lo0
127.0.0.1 127.0.0.1 UH 2 0 33224 lo0
[VPN-IP] [VPN-IP] UH 0 0 - tun1
192.168.100/24 link#2 UC 0 0 - gem0
192.168.100.102 127.0.0.1 UGHS 0 0 33224 lo0
[T-ONLINE-GW] [T-ONLINE-IP] UH 1 0 1492 tun0
224/4 127.0.0.1 URS 0 0 33224 lo0

So, fehlen nur noch die Routen.

Ich habe mich an diesem Howto für NetBSD orientiert:
http://www.feyrer.de/NetBSD/netbsd-vpn-howto.html
-> siehe Abschnitt 5.1:

route add -net [UNI-NETZ] -interface [VPN-IP]

Anmerkung: UNI-NETZ in form von aaa.bbb also ohne .0.0

Ergebnis:

Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu Interface
default [T-ONLINE-GW] UGS 1 112 - tun0
127/8 127.0.0.1 UGRS 0 0 33224 lo0
127.0.0.1 127.0.0.1 UH 2 0 33224 lo0
[UNI-NETZ]/16 [VPN-IP] US 0 0 - tun1
[VPN-IP] [VPN-IP] UH 0 0 - tun1
192.168.100/24 link#2 UC 0 0 - gem0
192.168.100.102 127.0.0.1 UGHS 0 0 33224 lo0
[T-ONLINE-GW] [T-ONLINE-IP] UH 1 0 1492 tun0
224/4 127.0.0.1 URS 0 0 33224 lo0

"Gib mir ein Ping Wassili!", sodann:

vpnc: routing loop to [VPN-GW]

Tja, soweit so blöd. Wenn ichs mit dem vpnc.sh-Skript versuche, welches dem OpenBSD-Port beigefügt ist wird noch eine Host-Route zum VPN-GW gesetzt und mein default-gateway auf die VPN-IP umgesetzt und ich lange ebenfalls bei einem routing loop.

Ich habe in den letzten Tagen so ziemlich alle möglichen und unmöglichen Routing-Varianten ausprobiert, ohne Erfolg. Es ist wirklich zum Mäusemelken.

Ich kann mich daher rogx nur anschließen:
gibt es jemanden der schon eine Verbindung mit vpnc unter OpenBSD konfiguriert hat?

verzweifelnd...
tun1
 
mal ne ganz blöde frage. wieso beschäftigt ihr euch mit vpnc wenn doch isakmpd schon immer saube lief?

ramtha
 
Moin allerseits, hat mittlerweile jemand das Problem mit der routing loop gelöst? Habe nämlich gerade genau das beschrieben Problem.

Habe einen OpenBSD snapshot installiert vpnc aus den ports installiert, und mit /usr/local/sbin/vpnc und per Hand die Route eingetragen und als default gesetzt. Ergebnis ist eine roting loop. Gleiches kommt raus wenn ich versuche vpnc über das vpnc.sh Skript zu starten.
An pf kanns nicht liegen, das dieses deaktiviert ist.

./edit: PS Habe schon auf der Mailingliste gesucht und mal vpnc bzw routing loop und OpenBSD gegoogelt, aber nichts brauchbares gefunden.
 
Zuletzt bearbeitet von einem Moderator:
Ich hatte das gleiche Problem (siehe weiter oben) habe aber auch keine Lösung gefunden. Daher nutze ich jetzt den Cisco-Client unter OSX.

Tut mir leid, aber ich hätte gerne etwas positiveres gepostet. ;)
 
@rogx

wenn du den entfernten vpn-host anpingen kannst, ist der tunnel aufgebaut. das einzige problem was ich in deiner routing-tabelle sehe ist default auf tun. das musst du ändern, denn mit diesem eintrag wird ALLES was nicht im subnet deines client liegt in den tunnel geworfen.

@tun1

wenn du das hinbekommst
> tail /var/log/messages
Jun 1 03:39:42 mumu vpnc: local address for TUN_IP is TUN-IP
Jun 1 03:39:42 mumu vpnc: local address for VPN-HOST is LOCAL-GW
läuft auch dein tunnel; soll heißen: du hast wahrscheinlich ein paar Einträge verwechselt ;-)

morph
 
morph schrieb:
wenn du das hinbekommst
> tail /var/log/messages
Jun 1 03:39:42 mumu vpnc: local address for TUN_IP is TUN-IP
Jun 1 03:39:42 mumu vpnc: local address for VPN-HOST is LOCAL-GW
läuft auch dein tunnel; soll heißen: du hast wahrscheinlich ein paar Einträge verwechselt ;-)

morph

Ja, das bekomme ich hin, habs eben nochmal getestet. Aber sobald es ans Routing geht ist der Ofen bei mir aus. ;'(

Ich habs jetzt wieder zig mal versucht, aber vermutlich bin ich zu blöd dazu. Stimme aus dem Publikum: "Wo er Recht hat, hat er recht"

Also, falls jemand ein funktionierendes vpnc-Skript für OpenBSD hat, mit dem er sich über eine dsl-Verbindung einwählt, könnte er es hier vielleicht mal posten?
Eine korrekte Routing-Tabelle wäre auch schon mal was, dann wüßte ich wenigstens wie es aussehen sollte. :D
 
FTR:

Ich habe mich an diesem Howto für NetBSD orientiert:
http://www.feyrer.de/NetBSD/netbsd-vpn-howto.html
-> siehe Abschnitt 5.1:

route add -net [UNI-NETZ] -interface [VPN-IP]

Anmerkung: UNI-NETZ in form von aaa.bbb also ohne .0.0

Ergebnis: [...]

vpnc: routing loop to [VPN-GW]

Aller Wahrscheinlichkeit nach liegt Dein VPN-Gateway innerhalb des [UNI-NETZ]es, in dem Fall kommt es (auch unter NetBSD) zu der "rooting loop". Um das zu verhindern, muss vor dem Aufruf des vpnc eine Host-Route zum VPN-Gateway gesetzt werden, also route add [VPN-GW] [LOCAL-GW].

Tja, soweit so blöd. Wenn ichs mit dem vpnc.sh-Skript versuche, welches dem OpenBSD-Port beigefügt ist wird noch eine Host-Route zum VPN-GW gesetzt und mein default-gateway auf die VPN-IP umgesetzt und ich lange ebenfalls bei einem routing loop.

So würde alles, was nicht an's lokale Subnetz geht, durch den Tunnel geroutet (und nicht nur der Traffic in's Uni-Netz, wie bei Huberts Anleitung oben). Hier muss in jedem Fall zuerst die Host-Route zum VPN-Gateway gesetzt werden, um nicht die "routing loop" zu erzeugen.

Eine korrekte Routing-Tabelle wäre auch schon mal was

Code:
Destination        Gateway            Flags     Refs     Use    Mtu  Interface
default            [VPN-IP]           UGS         0      172      -  tun0
[VPN-GW]           [LOCAL-GW]         UGHS        2      182      -  wi0
[LOCAL-NET]        link#2             UC          2        0      -  wi0
[LOCAL-GW]         08:00:20:7d:ce:18  UHLc        1        0      -  wi0

Manuell gesetzt sind hier natürlich nur die ersten beiden Einträge (S-Flag). Die Default-Route (statt nur die Route zur Uni) auf den Tunnel umzubiegen, ist optional, siehe oben. Der entscheidende Punkt ist wie gesagt, dass hier die zweite Route vor dem vpnc-Aufruf gesetzt wurde.

Ich benutze vpnc nur unter NetBSD, gehe aber davon aus, dass OpenBSD diesbezügl. keinen Unterschied macht.

Holger
 
Zurück
Oben