ketanest112
Goto Top

OPNSense - IPv6-TCP-Verbindungen auf die Firewall schlagen fehl

Guten Morgen zusammen,

ich hab mich nun auch mal dazu durchgerungen, IPv6 bei mir daheim einzuführen.
Ich habe die OpenVPN-Verbindungen logischerweise auf der Firewall terminiert, hatte zunächst mit TCP gearbeitet.
Zusätzlich habe ich für meine NAS den HA-Proxy konfiguriert, der unter IPv4 auch super funktioniert.
IPv6 nach draußen geht einwandfrei (HTTP(S), OpenVPN UDP, DNS, SMTP, etc. was man so braucht).
Leider habe ich jetzt das Problem, dass IPv6 TCP-Verbindungen von "draußen", welche auf der Firewall terminieren, scheinbar irgendwo runterfallen.
Eine Live-View der Firewall-Regeln zeigt mir eingehende (WAN-Interface) IPv6-Verbindungen auf den entsprechenden Ports (OpenVPN als auch HAProxy jeweils TCP) als grün an, sprich die Firewall lässt den Traffic schonmal durch, allerdings sah ich im VPN-Log keine Einträge (Verbosity Level 5) und auch im HAProxy Log war nix zu finden.
Eine Packet-Capture-Auswertung mittels Wireshark von der WAN-Schnittstelle mit den jeweiligen Ports ergab zwar jeweils ein SYN-ACK, allerdings gefolgt von haufenweise Retransmissions von beiden Seiten.
Die OpenVPN-Verbindungen habe ich dann mal auf UDP umgestellt -> das funktionierte dann (zumindest lässt sich die Firewall von einem Client aus erreichen, hab da noch einen TLS Handshake Error aber um den kümmere ich mich gesondert, das ist ein OpenVPN-Thema).
Was ich auch schon ausprobiert habe, war ein NAT (ja ich weiß unter IPv6 macht man das nicht aber testweise hab ichs gemacht) von der Public IPv6 der Firewall auf die interne IPv6 (RFC4193) meiner NAS -> siehe da, da funktioniert der Zugriff via HTTPS auf einem High-Port. Die Config des HAProxys hatte ich entsprechend um IPv6 erweitert, sprich zum PublicService habe ich [::]:35798 hinzugefügt, das ist wohl das Pendant zum 0.0.0.0:35798 unter IPv4. Das funktionierte jedoch nicht. Auch das Eintragen der derzeit bestehenden Public IPv6 mittels IPV6:35798 oder [IPV6]:35798 hat keinen Erfolg gezeigt. Den "Real-Server" zusätzlich mittels IPv6 einzutragen und bei den "Virutal Services" mit anzugeben sollte zwar nicht notwendig sein, hab ich aber auch probiert -> geht nicht.
Wenn ich die Verbindung (sowohl zum HAProxy als auch zum OpenVPN-Server) von "innen" heraus aufbaue, sprich aus dem LAN, funktioniert das Ganze einwandfrei. Ich hatte deshalb ja schon die Firewall im Verdacht aber die scheint es ja nicht zu sein.

Hier noch ein paar Eckdaten zur Config:
LAN-Netze: 192.168.10.0/24, fd00:192:168:10::/64 (ja ich weiß, ich generier mir noch ein Pseudo-Random-Prefix), IPv6: Track-Interface: WAN
WAN: IPv4 PPPoE, IPv6 DHCP (vom Provider bekomm ich eine IPv6 Adresse auf die WAN-Schnittstelle zugewiesen und ein /56 Prefix zusätzlich)
Remote-VPN-Netze UDPv4: IPv4 192.168.101.0/24, IPv6 fd00:192:168:101::/64
Remote-VPN-Netze UDPv6: IPv4 192.168.105.0/24, IPv6 fd00:192:168:105::/64
Site-to-Site-VPNs: 192.168.100.0/24 und fd00:192:168:100::/64, 192.168.103.0/24 und fd00:192:168:103::/64 sowie 192.168.104.0/24 und fd00:192:168:104::/64
An einem der Site-to-Site-VPNs hängt noch das Netz 192.168.177.0/24 (rein IPv4)
Die beiden Remote-VPNs laufen in zwei Instanzen, einmal UDP4 und einmal UDP6.

EDIT: Die CA für die beiden OpenVPN-Instanzen ist exakt die selbe, das sollte aber eigentlich kein Problem sein oder?
EDIT2: Was mich im OpenVPN-Log etwas stutzig macht:
2021-10-19T05:04:23	openvpn[44321]	2a00:20:c042:5d7:4ccb:21c6:9688:fc3c Expected Remote Options String (VER=V4): 'V4,dev-type tun,link-mtu 1549,tun-mtu 1500,proto UDPv4,keydir 1,cipher AES-256-GCM,auth [null-digest],keysize 256,tls-auth,key-method 2,tls-client'	   
2021-10-19T05:04:23	openvpn[44321]	2a00:20:c042:5d7:4ccb:21c6:9688:fc3c Local Options String (VER=V4): 'V4,dev-type tun,link-mtu 1549,tun-mtu 1500,proto UDPv4,keydir 0,cipher AES-256-GCM,auth [null-digest],keysize 256,tls-auth,key-method 2,tls-server'  
Proto UDPv4? Obwohl sowohl auf dem Server (OPNSense) als auch auf dem Client (Windows) udp6 in der Config steht...

Da ich persönlich die Firewall aber ausschließe halte ich die Regeln für wenig relevant, außerdem ist das Firewall-Regelwerk recht umfangreich, die relevanten Regeln wären aber:
Floating: Interface: WAN, Direction: In, IPv4+IPv6, Protokoll: UDP, Source: Any, Destination: WAN-Address, Ports: VPN-Ports (Alias) -> Allow --- Ich hab Geoblocking, deshalb für VPN eine Floating Rule, weil über VPN will ich immer rein, Geoblocking hab ich aber vorübergehend ausgeschaltet.
WAN: Interface: WAN, Direction: In, IPv4+IPv6, Protokoll: TCP, Source: Any, Destination: WAN-Address, Ports: 35798 -> Allow
Ansonsten gibts keine Regeln, die sich mit denen überschneiden.

NAT ist lediglich outbound für IPv4 aktiv.

EDIT3: Ich hab jetzt testweise auch mal die HTTPS-Gui per Firewall-Regel auf dem WAN-Interface freigegeben, das geht auch nicht, gleiches Thema: Firewall grün, Packet Capture: TCP SYN->ACK->Retransmissions ohne Ende.

Ich hoffe ihr könnt mir in meinem Wirrwarr weiterhelfen, wenn ihr sonst noch Infos braucht, kann ich die gern nachreichen.

Danke schonmal!
Gruß
Ketanest

Content-ID: 1404220343

Url: https://administrator.de/forum/opnsense-ipv6-tcp-verbindungen-auf-die-firewall-schlagen-fehl-1404220343.html

Ausgedruckt am: 22.12.2024 um 06:12 Uhr

ketanest112
Lösung ketanest112 19.10.2021 aktualisiert um 05:46:37 Uhr
Goto Top
Update:

Fragt mich bitte nicht, was da abgeht, nach meinen Recherchen bin ich auf diesen Beitrag gestoßen:
1
Scheint ein Routing Problem zu sein, bei klappt es allerdings nicht mit Ausschalten des Gateways, sondern durch Ausschalten und wieder Einschalten. Allerdings ist das nur von kurzer Dauer (wenige Sekunden), danach gehts schon wieder nicht mehr...
Wundert mich aber, dass UDP dann geht, weil Routing ist eigentlich ein Layer-3-Problem...

EDIT: Lösung des Problems war: In der jeweiligen Firewallregel das "Reply-to" auf "disabled" setzen... Muss man auch erst mal drauf kommen... Ein globales "Reply-to disable" hat nicht funktioniert, wie oder was auch immer... Scheint wohl ein bekanntes Problem in der OPN zu sein.

Sorry für den (unnötigen?) Beitrag aber falls mal jemand ein ähnliches Problem hat, findet er hier vielleicht die Lösung...

Gruß
Ketanest
aqui
aqui 19.10.2021 um 12:19:13 Uhr
Goto Top
Wo bitte gibt es in einer FW Regel ein "Reply To" ?? Eigentlich unsinnig und muss man auch nirgendwo setzen. Ggf. hast du hier ein falsches Verständnis des Regelwerkes. Was übrigens für v4 und v6 identisch ist. Aber egal...Hauptsache ist es rennt jetzt wie es soll ! face-wink
ketanest112
ketanest112 19.10.2021 aktualisiert um 12:35:45 Uhr
Goto Top
Bei OPNSense unter advanced options. Frag nicht...

Glaub eigentlich nicht, dass ich das Regelwerk falsch verstehe, hat mich selbst gewundert, dass es damit funktioniert, wie gesagt scheint wohl ein hausgemachtes Problem von OPN und PF zu sein aber seis drum, läuft ja jetzt.

Gruß
Ketanest
reply-to
lcer00
lcer00 19.10.2021 um 12:35:02 Uhr
Goto Top
Hallo,
Zitat von @aqui:

Wo bitte gibt es in einer FW Regel ein "Reply To" ?? Eigentlich unsinnig und muss man auch nirgendwo setzen. Ggf. hast du hier ein falsches Verständnis des Regelwerkes. Was übrigens für v4 und v6 identisch ist. Aber egal...Hauptsache ist es rennt jetzt wie es soll ! face-wink

Das reply-to gibt es bei den Einstellungen für das Gateway bei policy-based Routing https://docs.opnsense.org/manual/firewall.html#policy-based-routing

Das ist im Regelfall nicht erforderlich! Zumindest nicht für normales VPN wenn die Firewall eine öffentliche IP hat. Bei normalen Firewallregeln wird kein Gateway definiert.

Grüße

lcer
aqui
aqui 19.10.2021 um 12:37:08 Uhr
Goto Top
Bei OPNSense unter advanced options. Frag nicht...
Benötigst du ja auch in einem Standard Regelwerk NICHT, oder nur in sehr seltenen Ausnahmen. Wenn du dir in den AOs sowas verfummelst muss man sich auch nicht groß wundern... face-sad
ketanest112
ketanest112 19.10.2021 aktualisiert um 12:40:14 Uhr
Goto Top
Policy-based Routing setze ich nur für v4 ein, da ich hier noch ein LTE-Fallback habe, v6 läuft aber komplett über DSL.

Gruß
Ketanest
ketanest112
ketanest112 19.10.2021 um 12:44:11 Uhr
Goto Top
Benötigst du ja auch in einem Standard Regelwerk NICHT, oder nur in sehr seltenen Ausnahmen. Wenn du dir in den AOs sowas verfummelst muss man sich auch nicht groß wundern... face-sad

AOs?
aqui
aqui 19.10.2021 um 12:44:59 Uhr
Goto Top
Advanced Options... face-wink
ketanest112
ketanest112 19.10.2021 um 12:48:56 Uhr
Goto Top
Ah jetzt^^ Naja sonst hab ich da nie rumgespielt, bin nur durch den Thread im OPN-Forum darauf aufmerksam geworden und hab das halt mal ausprobiert.
aqui
aqui 19.10.2021 um 12:52:55 Uhr
Goto Top
Das ist fast immer Unsinn daran rumzufummeln. Wie gesagt ist, nur in den seltensten Fällen erforderlich. Aber das hast du ja jetzt auch durch bloßes Rumprobieren selber erfahren... face-wink