WireGuard Verbindung Android vs iOS

Started by anym001, September 13, 2023, 07:42:39 AM

Previous topic - Next topic
September 13, 2023, 07:42:39 AM Last Edit: September 13, 2023, 08:18:39 AM by anym001
Hallo,

ich habe auf meiner OPNsense schon seit einiger Zeit WireGuard erfolgreich laufen.
Habe bis dato immer ein Android Smartphone verwendet und bin nun auf ein iPhone umgestiegen.

Dazu habe ich die Konfigurationen von meinem Android Gerät auf dem iPhone übernommen.

Nun ist mir aufgefallen, dass ich zwar normal ins Internet komme, aber nicht mehr in mein Heimnetzwerk.
Interessanterweise tritt dies nur bei einem speziellen WLAN auf. Habe ein anderes WLAN getestet, da funktioniert es. Auch im mobilen Netzwerk funktioniert es reibungslos.

Ping möglich - iPhone 10.0.3.2 -> WG0 10.0.3.1
Ping nicht möglich - iPhone 10.0.3.2 -> Server 192.168.200.8 (Von meinem Android Smartphone möglich)

Hat jemand eine Idee an was das liegen könnte?

Im Anhang die Log-Datei des iPhone.

#################

     WAN / Internet
            :
            : PPPoE
            :
      .-----+-----.
      |  Gateway  |  (or Router, CableModem, whatever)
      '-----+-----'
            |
        WAN | IP or Protocol
            |
      .-----+------.   WG0             .------------.
      |  OPNsense  +-----------------+ (Clients/Servers) |
      '-----+------'   10.0.3.1/24   '------------'
            |
        LAN | 192.168.200.1/24
            |
      .-----+------.
      | LAN-Switch |
      '-----+------'
            |
    ...-----+------... (Clients/Servers)

Ich nehme an, das Android-Gerät verbindet sich über IPv4 und das iPhone über IPv6, deshalb das

QuoteDNS64: mapped XX.XXX.XX.XXX to itself.

im Log.

https://de.wikipedia.org/wiki/NAT64#DNS64

Kannst du auch mal den Android-Log zeigen?

Weiterhin ist mir dieser Fehler aufgefallen:

QuoteReceived invalid response message from XX.XXX.XX.XXX:51633

Ich hab meine OPNsense derzeit auf IPv4 only eingestellt.
Kann es eventuell daran liegen?
Sollte das iPhone nicht IPv4 verwenden, wenn IPv6 nicht verfügbar ist?

Im Anhang die Android Log-Datei.

Auf was weißt die
Quoteinvalid response message
hin?

September 13, 2023, 01:30:23 PM #3 Last Edit: September 13, 2023, 01:35:51 PM by vpx
Das DNS64 scheint die WG App selbst zu machen, du brauchst also kein IPv6 auf der OPNsense.

Kannst du das mal probieren, ich weiß allerdings nicht ob das im aktuellen iOS noch funktioniert:

https://support.vyprvpn.com/hc/de/articles/360038553932-Wie-deaktiviere-ich-IPv6-unter-iOS-
(Edit: Nvm, das gilt nur für die OpenVPN Connect App, hatte ich mich verguckt)

Probleme iOS oder MacOS mit WireGuard zu verbinden haben einige Benutzer.

Der erste hatte als Lösung anstatt der WG App die integrierte IPSec VPN Funktion von iOS verwendet:

https://github.com/trailofbits/algo/issues/14247

Hier wurde vorgeschlagen, auf dem Server die "Allowed IPs" auf 0.0.0.0/0 zu setzen.

https://serverfault.com/questions/1089816/how-to-connect-a-macos-client-to-linux-wireguard-server

Hier tritt das Problem nur mit iOS 16 auf:

https://www.reddit.com/r/WireGuard/comments/11go97n/wireguard_not_connecting_sometimes/

"Allowed IPs" habe ich bereits auf 0.0.0.0/0 gesetzt.

Habe jetzt auch mal eine andere App probiert (Passepartout).
Leider ebenfalls ohne Erfolg.

Zusätzlich habe ich noch WireGuard auf meinem Unraid Server eingerichtet und versucht mich dorthin zu verbinden.
Portweiterleitung im Router angelegt.
Leider komme ich hier weder ins Internet noch ins Heimnetzwerk.
Adressbereich WLAN Arbeit 192.168.201.1/24 / Adressbereich Heimnetzwerk 192.168.200.1/24
Also an einer Überschneidung sollte es eigentlich nicht liegen.

Kann es an irgendwelchen Routings und Einstellungen in der OPNsense liegen?

Wenn etwas falsch konfiguriert wäre dann hätte dein Android-Gerät ja auch keine Verbindung.

Was sagt denn der Passepartout-Log?

Anbei die beiden Logs aus der Passepartout-App.

Was wir aufgefallen ist:
Die Meldung
QuoteDNS64: mapped XXX.XXX.XXX.XXX to itself.
taucht auch im Log auf, wenn ich mich in einem anderen WLAN oder im mobilen Netzwerk befinde, wo WireGuard normal funktioniert. -> Das ist es schon mal nicht.

Ich glaub das die Meldung
QuoteReceived invalid response message from XXX.XXX.XXX.XXX:51633
anzeigt, dass die Verbindung ins Heimnetz nicht fuktioniert.
Nur weiß ich leider nicht was ich mit dieser Meldung anfangen soll.

Das Passepartout zeigt das gleiche Verhalten wie die WireGuard App, das lässt vermuten, dass es am iOS liegt oder an falschen Client-Einstellungen.

Bei iOS gab es wohl auch schon Probleme mit VPN:

https://administrator.de/forum/nach-ios-update-16-1-kein-vpn-mehr-moeglich-4531475089.html

Das aktuelle 16.6 und 16.6.1 hatte ja auch einige Sicherheitsupdates:

https://www.heise.de/news/Luecken-gestopft-Apple-bringt-iOS-16-6-macOS-13-5-watchOS-9-6-und-tvOS-16-6-9225677.html
https://www.theverge.com/2023/9/8/23864150/ios-16-6-1-iphone-security-vulnerability-0-day-exploit-patch-update

Kann mir vorstellen, dass diese Updates Kompatibilitätsprobleme mit dem WireGuard verursachen.

Kommenden Montag 18.09.23 soll ja iOS 17 rauskommen, mal schauen ob sich hier etwas ändert.

Falls nicht, versuche ich danach mal die eingebaute IPsec Funktion.

Hier läuft OPNsense auch IPv4 only mit diversen iOS Geräten (iPhones, iPads) und auch MacOS Geräten via Wireguard, wirklich absolut problemlos. Früher WG Go, nun kmod. Von daher glaube ich nicht, dass es spezifisch an iOS liegt.

WG kann ja manchmal beim Einrichten doch tricky sein, zumal OPNsense ja noch keine Komforteinrichtung zB mittels QR-Code hat. Geh vielleicht doch noch mal alles in Ruhe durch auf Seiten Client.

Hier mal meine Server und Client Config Dateien.
Vielleicht fällt von euch jemanden etwas auf was nicht passen könnte.


In der Server-Konfiguration fällt mir auf, dass nur eine einzige IP erlaubt ist.

AllowedIPs = 10.0.3.2/32

Da müssten ja mindestens 2 IPs erlaubt sein, einmal für das iPhone und einmal für das Android Smartphone.

Änderst du dann immer die Server-Konfiguration wenn du mit dem Android verbindest oder hat es die gleiche IP?

Ich hab mir gedacht ich nehm die anderen Clients aus Übersichtsgründen raus. -> Anbei nochmal die Server Config mit allen Client`s.

Die Android Config hab ich direkt für die Config fürs iPhone übernommen. (Key`s einfach ausgetauscht)
Deswegen keine 2 Config`s für die beiden Geräte.


Laut diesem Tutorial steht in der Client-Konfiguration bei "[Interface]" unter "Address" ebenfalls die IP vom Server und nicht vom Client.

https://blog.francium.tech/wireguard-vpn-server-and-client-configuration-abe8a18e8192

QuoteLaut diesem Tutorial steht in der Client-Konfiguration bei "[Interface]" unter "Address" ebenfalls die IP vom Server und nicht vom Client.

https://blog.francium.tech/wireguard-vpn-server-and-client-configuration-abe8a18e8192

Wenn ich das ändere, funktioniert leider gar keine Verbindung mehr.