OK. Ich glaube ich hatte da gestern nen kleinen Denkfehler. Als ich heute morgen aufgewacht bin wusste ich wie es funktionieren könnte. Für jeden den es interessiert:
Unter Firewall -> NAT -> Outbound habe ich nun beide Netze komplett freigeschaltet:
WAN 10.0.0.0/20 * * * * * YES Rule for LAN
WAN 172.21.0.0/22 * * * * * YES Rule for Captive Portal
Dann hab ich mir unter Firewall -> Aliases einen Alias (cp_allowed) erstellt in dem dann immer alle Ports eingetragen werden können.
Dann habe unter Firewall -> Rules als unterste Regel erst mal sämtlichen Traffic aus dem CaptivePortal-Netz in andere Netze geblockt:
X * CaptivePortal net * * * *
Darüber habe ich dann einen Zugriff erstellt, dass der Router noch erreicht werden kann (sonst geht nix):
TCP/UDP CaptivePortal net * 172.21.0.1 * *
Darüber habe ich dann noch einmal einen Block erstellt auf die Ports für SSH und HTTPS auf den Router selbst (cp_blocked ist ebenfalls ein alias):
X TCP/UDP CaptivePortal net * 172.21.0.1 cp_blocked *
Darüber habe ich dann die Regel erstellt, wo der Alias cp_allowed zum Einsatz kommt.
TCP/UDP CaptivePortal net * * cp_allowed *
GRE CaptivePortal net * * * *
GRE wird nur benötigt wenn man VPN-Verbindungen zulassen will.
Im Großen und Ganzen sieht das vollständig so aus:
Proto Source Port Destination Port Gateway
> TCP/UDP CaptivePortal net * * cp_allowed *
> GRE CaptivePortal net * * * *
X TCP/UDP CaptivePortal net * 172.21.0.1 cp_blocked *
> TCP/UDP CaptivePortal net * 172.21.0.1 * *
X * CaptivePortal net * * * *
Gruß
Ch3p4cK