WireGuard von außen nicht erreichbar (UDP-Port wird gefiltert)

  • Hallo zusammen!

    Zunächst möchte ich mein Setup vorstellen:

    - 1 Raspberry-Pi mit Pi-Hole

    - 1 Raspberry-Pi mit Nextcloud und Wireguard

    Ich besitze eine FritzBox 7590 an einem DS-Lite Tunnel.

    Über dynv6.net ist es mir möglich, von außerhalb auf die Nextcloud über IPV6 zuzugreifen. In der Fritzbox habe ich den entsprechenden Port (443) freigegeben.

    Soweit, so gut.

    Jetzt wollte ich gerne mit PiVPN und Wireguard von außen auf mein Netzwerk zugreifen, um auch unterwegs in den Genuss vom Werbeblocker Pi-Hole profitieren zu können.

    Während der Installation bin ich beim DNS-Provider auf "Custom" gegangen und habe dort die interne IP (192.168...) des Pi-Hole eingetragen. Als DNS-Entry habe ich die Adresse von dynv6.net benutzt. In die wg0.conf habe ich dann noch die Einträge für "PostUp" und "PostDown" sowie die "PersistenKeepalive" hinzugefügt, in der Konfigurationsdatei für das Profil habe ich keine Änderungen vorgenommen. Im Pi-Hole selber habe ich noch unter Einstellungen > DNS > den Haken bei "Listen on all Interfaces" aktiviert.

    Schließlich habe ich dann auch den UDP-Port in der Fritzbox eingetragen. Wenn ich jetzt einen entsprechenden Portscanner (z. B. diesen) nutze wird mir angezeigt: "Port (xxx) / Type (UDP) / Status (Open|filtered) / Service (unknown). Dementsprechend funktioniert die VPN-Verbindung nicht. Ich sehe zwar in der WireGuard Android App, dass Daten gesendet werden, empfangen wird aber gar nichts...

    Ich habe auch schon in der Datei "/etc/sysctl.conf" das Ipv4 Forwarding auskommentiert und dafür die Auskommentierung der Zeile „net.ipv6.conf.all.forwarding=1“ aufgehoben.

    Weitere Änderungen habe ich nicht vorgenommen.

    Ich verstehe nicht, warum der TCP-Port durch geht, der UDP-Port allerdings blockiert wird. :/

    Ich bitte um Hilfe! Vielen Dank im Voraus :)

    PS: Durch diesen Thread habe ich es geschafft, mit IPV6 auf meine Nextcloud zu kommen. Es wäre schön, wenn wir jetzt noch die letzte Hürde schaffen würden 8)

  • WireGuard von außen nicht erreichbar (UDP-Port wird gefiltert)? Schau mal ob du hier fündig wirst!

  • Schließlich habe ich dann auch den UDP-Port in der Fritzbox eingetragen. Wenn ich jetzt einen entsprechenden Portscanner (z. B. diesen) nutze wird mir angezeigt: "Port (xxx) / Type (UDP) / Status (Open|filtered) / Service (unknown). Dementsprechend funktioniert die VPN-Verbindung nicht. Ich sehe zwar in der WireGuard Android App, dass Daten gesendet werden, empfangen wird aber gar nichts...

    Starte mal vor dem UDP-Portscan aus dem Internet bzw. vor dem Verbindungsversuch mit der Android App., auf deinem PI mit dem WG-Server:

    Code
    sudo tcpdump -c 300 -vvveni <Interface> port <UDP-Port>

    (Interface und UDP-Port anpassen und ohne spitze Klammern). Wie ist nach dem UDP-Portscan, die Ausgabe von tcpdump?

    Wie ist jetzt auf deinem PI mit dem WG-Server, die Ausgabe von:

    Code
    ps aux | grep -i [w]g
    ss -a -n -u

    ?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Hi!

    Danke für deine Rückmeldung.

    Hier die Ausgaben:

    Code
    $ sudo tcpdump -c 300 -vvveni eth0 port 51820
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    14:53:40.920082 2c:3a:fd:8e:7d:a9 > dc:a6:32:81:67:79, ethertype IPv6 (0x86dd), length 62: (hlim 241, next-header UDP (17) payload length: 8) 2604:axxx:400:d1::808:8001.47220 > 2001:1xxx:183d:dc00:dxxx:32ff:fexx:6779.51820: [udp sum ok] UDP, length 0
    14:53:41.920988 2c:3a:fd:8e:7d:a9 > dc:a6:32:81:67:79, ethertype IPv6 (0x86dd), length 62: (hlim 241, next-header UDP (17) payload length: 8) 2604:axxx:400:d1::808:8001.47221 > 2001:1xxx:183d:dc00:dxxx:32ff:fexx:6779.51820: [udp sum ok] UDP, length 0

    Allerdings wird die Ausgabe nur erstellt, wenn ich den Portscan laufen lasse. Wenn ich mich mit der Wireguard App anmelde, wird kein neuer Eintrag erstellt.

    Code
    $ ps aux | grep -i [w]g
    root       659  0.0  0.0      0     0 ?        I<   14:17   0:00 [wg-crypt-wg0]
    Code
    ss -a -n -u
    State                              Recv-Q                             Send-Q                                                         Local Address:Port                                                          Peer Address:Port
    UNCONN                             0                                  0                                                                    0.0.0.0:34829                                                              0.0.0.0:*
    UNCONN                             0                                  0                                                                    0.0.0.0:68                                                                 0.0.0.0:*
    UNCONN                             0                                  0                                                                    0.0.0.0:51820                                                              0.0.0.0:*
    UNCONN                             0                                  0                                                                    0.0.0.0:5353                                                               0.0.0.0:*
    UNCONN                             0                                  0                                                                          *:37695                                                                    *:*
    UNCONN                             0                                  0                                                                          *:546                                                                      *:*
    UNCONN                             0                                  0                                                                          *:51820                                                                    *:*
    UNCONN                             0                                  0                                                                          *:5353                                                                     *:*

    Falls ich aus Datenschutzgründen einzelne Ziffern lieber unkenntlich machen sollte, gib mir bitte Bescheid! Danke :)

  • Hier die Ausgaben:

    Code
    14:53:40.920082 2c:3a:fd:8e:7d:a9 > dc:a6:32:81:67:79, ethertype IPv6 (0x86dd), length 62: (hlim 241, next-header UDP (17) payload length: 8) 2604:axxx:400:d1::808:8001.47220 > 2001:1xxx:183d:dc00:dxxx:32ff:fexx:6779.51820: [udp sum ok] UDP, length 0
    14:53:41.920988 2c:3a:fd:8e:7d:a9 > dc:a6:32:81:67:79, ethertype IPv6 (0x86dd), length 62: (hlim 241, next-header UDP (17) payload length: 8) 2604:axxx:400:d1::808:8001.47221 > 2001:1xxx:183d:dc00:dxxx:32ff:fexx:6779.51820: [udp sum ok] UDP, length 0

    Allerdings wird die Ausgabe nur erstellt, wenn ich den Portscan laufen lasse. Wenn ich mich mit der Wireguard App anmelde, wird kein neuer Eintrag erstellt.

    Code
    UNCONN                             0                                  0                                                                    0.0.0.0:51820                                                              0.0.0.0:*
    UNCONN                             0                                  0                                                                          *:51820                                                                    *:*

    Das zeigt m. E., dass deine Android-App. für die WG-Verbindung nicht richtig konfiguriert ist.

    Lt. Portscan ist die Portfreigabe in der FritzBox OK und der lauschende UDP-Port des WG-Servers, kann aus dem Internet, erreicht werden.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Du kennst dich nicht zufällig auch mit dem Thema PiVPN & WireGuard aus?

    Ich benutze WireGuard, aber nicht mit PiVPN und auch nicht mit Android bzw. nicht mit Windows.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Hallo Daniel, was meinst du mit der Freigabe? Hier die Ausgabe:

    Code
    interface: wg0
      public key: xxxxkr8f5C48VDNTepiQ86bL+2Zzs8AHOscu2oRm/hQ=
      private key: (hidden)
      listening port: 51820
    
    peer: xxxxAZKlnu0kFZRD3ade3VnLcyJG/i4IaqKEi4Rix3s=
      preshared key: (hidden)
      allowed ips: 10.6.0.2/32

    Ich habe beim Custom DNS die IP meines Pi-Hole + Routers eingegeben.

    In der wg0.conf habe ich die Einträge für "PostUp" und "PostDown" sowie die "PersistenKeepalive" herausgelassen, in der Konfigurationsdatei für das Profil habe ich keine Änderungen vorgenommen.

    Einmal editiert, zuletzt von d00natman (5. Oktober 2020 um 21:36)

  • ... mit der Freigabe ...

    Kannst Du von deinem Android-Gerät per IPv6, einen UDP-Ping (oder gleichwertig) auf den lauschenden UDP-Port des WG-Servers, machen?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (5. Oktober 2020 um 22:39)

  • Habe gerade über mobile Daten mit dem Portscanner (klick) geschaut und mit Hilfe von tcpdump geschaut was passiert. Hier wird mir quasi das gleiche wie in Post #3 1. Code angezeigt. Ich gehe also davon aus, dass das soweit alles funktioniert.

  • ... mobile Daten mit dem Portscanner ...

    Was ist "mobile Daten mit dem Portscanner"? Evtl. ein Online-Tool? Wenn ja, dann ist das nicht OK. Es geht darum, den UDP-Ping (oder gleichwertig) von _deinem_ Android-Gerät zu machen. Denn es geht ja auch um _deinen_ Mobilfunk-Provider.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Ich habe jetzt eine Weile nach Wegen/Apps geschaut, wie ich von meinem Android-Gerät einen UDP-Ping machen kann, bin aber nicht fündig geworden. Sprich, ich habe absolut keine Ahnung wie ich das machen soll :saint: Mein Post #10 war natürlich sinnfrei... Da habe ich nicht nachgedacht ^^

    Der .51 ist der Pi-Hole, der .1 ist der Router.

  • Der öffentliche Schlüssel hätte nicht unkenntlich gemacht werden müssen, dann hätte man schnell überprüfen können ob das mit der Ausgabe von wg üVerein stimmt.

    Gehe jetzt einmal davon aus, dass das passt.

    Der Endpoint ist nicht ersichtlich ist das eine Domain oder eine IP? Falls es eine IP ist oder die Domain nicht sauber deinen IP aktualisiert könnte da der Fehler liegen.

    Mein Vorschlag damit du den Fehler besser eingrenzen kannst ist wie folgt:

    Im internen Netz deine öffentliche Ip ausfindig machen und die einmal beim Endpoint eintragen und testen (natürlich über eine mobile Verbindung nicht intern) ob es dann geht.

    Falls ja, dann mit der Domain probieren.

    Gruss Daniel

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!