IPv6 und OpenVPN

Started by block-by-default, July 01, 2024, 05:48:00 PM

Previous topic - Next topic
Hallo zusammen,

ich habe einen IPv6 Anschluss (Deutsche Glasfaser) und will über lan IPv4/6 mit IPv6 Portforwarding (oder wan IPv6) meinen Anschluss per IPv6 erreichbar machen. Dazu habe ich bei feste-ip.net die wan IPv6 hinterlegt, so dass ich darüber ein Mapping von IPv4 zur mir nach Hause herstellen kann.
Ich habe dies aktuell auch mit einer sophos genauso laufen.

Bei der OPNsense schaffe ich es nicht, dass ich den VPN-Dienst über IPv6 aus dem Internet erreiche. Intern und von der Firewall selber aus funktioniert es.


# internal lan
myuser@myhost ~ % nc -6 -z -w 2 2xxx:xxxx:xxxx:xxxx:21a:8cff:fe43:32f8 29930
Connection to 2xxx:xxxx:xxxx:xxxx:21a:8cff:fe43:32f8 port 29930 [tcp/*] succeeded!

# on OPNsense
root@OPNsense:/var/log # nc -6 -z -w 2 2xxx:xxxx:xxxx:xxxx:21a:8cff:fe43:32f8 29930
Connection to 2xxx:xxxx:xxxx:xxxx:21a:8cff:fe43:32f8 29930 port [tcp/*] succeeded!


Der VPN-Dienst lauscht auch auf allen Interfacen auf diesem Port für IPv4/6

root@OPNsense:/var/log # netstat -an | grep 29930
tcp46      0      0 *.29930                *.*                    LISTEN


Sehe auch im log der FW eingehende und ausgehende Pakete, aber es funktioniert einfach nicht. Welche Infos werden noch benötigt oder was könnte ich "vergessen" haben?

Danke und Gruß

Wie sieht denn deine Firewall-Regel auf WAN aus, die die Verbindung erlaubt?
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Jetzt hat sich die gesamte OPNsense weggehangen. Komme nur noch per consolen kabel darauf.


Setting timezone: Etc/UTC
Writing firmware settings: FreeBSD OPNsense
Writing trust files...done.
Scanning /usr/share/certs/blacklisted for certificates...
Scanning /usr/share/certs/trusted for certificates...
Scanning /usr/local/share/certs for certificates...
Writing trust bundles...done.
Setting hostname: OPNsense.localdomain
Generating /etc/resolv.conf...done.
Generating /etc/hosts...done.
Configuring system logging...done.
Configuring firewall.......done.
Configuring hardware interfaces...done.
Configuring loopback interface...done.
Configuring LAGG interfaces...done.
Configuring VLAN interfaces...done.
Configuring OPT1 interface...done.
Configuring interconnect interface...done.
Configuring LAN interface...done.
Configuring WAN interface...



^CEnter full pathname of shell or RETURN for /bin/sh:
root@OPNsense:/ #
root@OPNsense:/ #
root@OPNsense:/ # ifconfig igb0
igb0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        description: LAN (lan)
        options=4800028<VLAN_MTU,JUMBO_MTU,NOMAP>
        ether 00:1a:8c:43:32:f8
        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::21a:8cff:fe43:32f8%igb0 prefixlen 64 scopeid 0x1
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
root@OPNsense:/ # ifconfig igb1
igb1: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=4800028<VLAN_MTU,JUMBO_MTU,NOMAP>
        ether 00:1a:8c:43:32:f9
        inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

July 04, 2024, 11:24:04 AM #3 Last Edit: July 04, 2024, 12:03:40 PM by block-by-default
So, nachdem ich dieses Problem nun lösen könnte, komme ich leider immer noch nicht weiter ;-(

Ich versuche nun im LAN eine VPN Verbindung herzustellen, was leider scheitert.
Auf der OPNsense sehe ich, dass der VPN Dienst an allen Interfaces lauscht.
Ein telnet auf 192.168.1.1 29930 funktioniet auch und zeigt auf der OPNsense ein ESTABLISHED an.

Versuche ich dies nun über den VPN client, passiert gar nichts.
Bin gerade ratlos, wo ich am besten nach dem Fehler suche. Im log auf dem Client steht nur Uhrzeit Frame512/2112/512 mssfix-ctrl=1250

Im log auf der Firewall und filter auf dest_port is 29930 kommt nichts (außer mein telnet).

[edit]
Anbei noch die Konfiguration:

root@OPNsense:/var/etc/openvpn # cat server2.conf
dev ovpns2
verb 3
dev-type tun
dev-node /dev/tun2
writepid /var/run/openvpn_server2.pid
script-security 3
daemon openvpn_server2
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
proto tcp-server
cipher AES-256-CBC
auth SHA256
up /usr/local/etc/inc/plugins.inc.d/openvpn/ovpn-linkup
down /usr/local/etc/inc/plugins.inc.d/openvpn/ovpn-linkdown
client-disconnect "/usr/local/opnsense/scripts/openvpn/ovpn_event.py '2'"
tls-server
server 10.10.0.0 255.255.255.0
client-config-dir /var/etc/openvpn-csc/2
verify-client-cert none
username-as-common-name
auth-user-pass-verify "/usr/local/opnsense/scripts/openvpn/ovpn_event.py --defer '2'" via-env
learn-address "/usr/local/opnsense/scripts/openvpn/ovpn_event.py '2'"
lport 29930
management /var/etc/openvpn/server2.sock unix
push "route 192.168.1.0 255.255.255.0"
duplicate-cn
ca /var/etc/openvpn/server2.ca
cert /var/etc/openvpn/server2.cert
key /var/etc/openvpn/server2.key
dh /usr/local/etc/inc/plugins.inc.d/openvpn/dh.rfc7919
tls-auth /var/etc/openvpn/server2.tls-auth 0



[/edit]


> Ich versuche nun im LAN eine VPN Verbindung herzustellen, was leider scheitert.

Aus dem LAN macht ja auch keinen Sinn, du willst/musst ja von extern kommen, nicht von intern. Du kannst ja schlecht intern nen VPN machen, bei dem dir das VPN dann deine interne Route WIEDER pusht und die dann mit deiner eigenen kollidiert. Und je nach Regeln/NAT - die du nicht gepostet hast und wir daher raten müssen - kann das auch nicht funktionieren.

OpenVPN läuft nur mit v4+v6 wenn Multihome gewählt ist, dann ist aber kein Interface gebunden. Ein bisschen ähnlich (doof) wie Wireguard. Dann muss aber umso eher der Rest stimmen, also Port, Weiterleitung, Regeln etc.

> Bin gerade ratlos, wo ich am besten nach dem Fehler suche. Im log auf dem Client steht nur Uhrzeit Frame512/2112/512 mssfix-ctrl=1250

Dann stelle doch mal beide Seiten Server/Client auf Verbosity 3. Server hat es ja schon, dein Client wohl nicht, denn MEHR als nur die eine Zeile sollte da schon stehen. Ansonsten baut der gar nichts auf und du hast schlicht nen Config Problem in deiner Client Config.

Cheers
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

Danke, dann werde ich mal das Loglevel im Client *.ovpn setzen


# Set log file verbosity.
verb 3


Den Test innerhalb des LAN's war dafür gedacht, überhaupt eine VPN Verbindung aufbauen zu können. Wenn dies schon nicht funktioniert, dann kann der Rest auch nicht funktionieren - so meine Überlegung. (Klar ohne das routing etc., aber ein established VPN connection ;-))


Leider wird nicht mehr gelogt, obwohl ich dies in die ovpn Datei eingetragen habe.


dev tun
verb 3
persist-tun
persist-key
proto tcp-client
data-ciphers-fallback AES-256-CBC
auth SHA256
client
resolv-retry infinite
remote 192.168.1.1 29930 tcp
lport 0
auth-user-pass

July 05, 2024, 04:44:33 PM #7 Last Edit: July 05, 2024, 04:46:16 PM by JamesFrisch
Quotewan IPv6 hinterlegt, so dass ich darüber ein Mapping von IPv4 zur mir nach Hause herstellen kann.

Warum? Sorry, ich verstehe es nicht ganz.
Hast du eine public IPv4? Dann nutzt die public IPv4. Hast du ein IPv6 am WAN? Dann nutzt diese.

Am besten wäre natürlich beide, dann bist du voll dual stack.


Für die Evaluation würde ich aber mal mit IPv4 oder IPv6 anfangen. Ergänzen lässt es sich auch noch später.

> Für die Evaluation würde ich aber mal mit IPv4 oder IPv6 anfangen. Ergänzen lässt es sich auch noch später.

Nicht so wirklich. Ergänzen kann OpenVPN das nicht. Entweder es läuft auf v4 oder v6 entsprechend mit UDP oder TCP. Oder es läuft Multihome, dann ist es NICHT auf ein Interface gebunden, sondern nur auf v46/udp oder v46/tcp

Das konfiguriert sich dann aber anders. Daher "anfangen und umstellen" geht da nur begrenzt. Ja ich kann dann testen ob ich v6 überhaupt sauber auflegen kann, aber für das gewollte DS Setup hilft es mir nur marginal.

Wichtig ist da eher erstmal ob der Client mit der Config überhaupt beim Server oder der Sense ankommt oder schon per se komplett falsch abbiegt. Daher logging. Und mit Verb 3 drin wird eigentlich imer sauber geloggt, das klingt dann eher nach Problem auf dem Client.

BTW die Config schaut seltsam aus. Warum ist da nur data-ciphers-fallback in der config, warum CBC und nicht GCM? Da sollte man ggf. mal den Server nochmal anschauen wie der konfiguriert ist :)

Cheers
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

Da habe ich mich wohl unklar ausgedrückt.
Ich versuche es mal anders.


Hat OP eine echte IPv4?
So wie ich es verstanden habe, hat OP keine public IPv4 sondern CG-NAT.
Also müsste er einen IPv6 Tunnel aufbauen.

Das setzt aber auf der anderen Seite eine IPv6 fähiges Gerät und Internet voraus.
ipv6.google.com muss also auch auf der anderen Seite funktionieren.

Dann stellt sich natürlich noch die Frage, wie sinvoll ein VPN ist, der IPv6 only ist. Reicht dies OP? Wofür nutzt er den VPN?

Ich möchte vom ipv4 Client die OPNsense erreichen. Dies bewerkstellige ich über feste-ip.net, wo die IPv6 der OPNsense hinterlegt ist. Somit kann der Client den ipv4 dns Eintrag von feste-ip.net verwenden und dort wird dies an die IPv6 der OPNsense weitergeleitet (hoffentlich verständlich ausgedrückt).

Ich habe einen Anschluss der Deutschen Glasfaser und somit keine ipv4 über die ich erreichbar wäre.


Das ist leider nicht möglich.


QuoteIch möchte vom ipv4 Client die OPNsense erreichen.
Der Client kann nur IPv4? Kein IPv6?

QuoteDies bewerkstellige ich über feste-ip.net, wo die IPv6 der OPNsense hinterlegt ist.
Du hast bei feste-ip.net einen AAAA record hinterlegt, der auf die IPv6 der OPNsense zeigt?

QuoteSomit kann der Client den ipv4 dns Eintrag von feste-ip.net verwenden
Häää?? Wieso? Ein IPv4 Eintrag wäre ein A record. Da deine OPNsense aber keine public IPv4 hat, wo soll der A record hinzeigen? Auf welche IPv4?


QuoteIch habe einen Anschluss der Deutschen Glasfaser und somit keine ipv4 über die ich erreichbar wäre.

Dann bleibt dir nur einen IPv6 only tunnel. Im Tunnel selbst geht dann natürlich auch IPv4, aber der Tunnel ist nur IPv6. Deine OPNsense kann IPv6 und du hast einen AAAA record hinterlegt. Perfekt. Jetzt muss nur noch der Client IPv6 können. Das kannst du ganz einfach testen. Öffne auf dem client ipv6.google.com.