Unifi USG – zusätliche Firewall Regeln

Wenn man eine USG im eigenen Unifi Setup hat, dann ist man in der Regel zunächst damit beschäftigt, das lokale Netz und ggfs. ein Gast-Netz sowie mögliche andere Netze z.B. für Smart-Home Komponenten einzurichten. Für das oftmals gewünschte wechselseitiges Separieren von Clients bzw. deren Zugriff auf andere Netze gibt es jede Menge Tutorials im Netz, die erklären, wie man das mit den normalen Settings hinbekommt.

Was mich aber gestört hat bzw. was ich nicht mit den im WebUI vorgesehenen Standard-Mitteln hinbekommen habe, ist das einrichten von NAT Regeln. Zwar kann man Ports auf dem jeweiligen Device auf ein anderes Device bzw. Port weiterleiten. Das ist aber für mich bisher nur für einen DMZ-Ansatz „spannend“ gewesen.

Ich bin nämlich durch „ein wenig sniffing“ darüber gestolpert, dass es einige Geräte bei mir gibt, die nicht den durch meinen DHCP bereitgestellten DNS nutzen, sondern DNS Anfragen an „ihre eigenen DNSse“ schicken. Damit ist dann auch mein Blacklisting (PiHole-Ansatz) umsonst, denn verwendet ein Gerät einen eigenen DNS-Server, geht ja alles daran vorbei.
Ebenso „erschüffelt“ habe ich, dass hier offensichtlich einige Devices gerne ihren eigenen NTP-Dienst nutzen. Auch hier habe ich über ein DHCP-Advertise eigentlich einen eigenen NTP-Dienst angeboten, damit zumindest alle lokalen Geräte die selbe (falsche) Zeit haben. Bei den Shellies ist ein Google-Dienst im Default eingestellt und ja, man kann das auch alles (zumindest hier) manuell pflegen. Das will ich aber nicht :-).

In meinem Fall möchte ich also alle DNS Anfragen, die irgendwo hin aber nicht an meinen DNS-Service gehen, transparent auf meinen DNS-Service umleiten (NATten). Somit „merkt“ der anfragende Client (in der Regel) nicht, dass er mit meinem lokalen Dienst kommuniziert (es sei denn, es finden „andere Dinge über Port 53 statt“).
Ebenso möchte ich immer „meine Zeit“ mit dem eigenen NTP verteilen und den Dienst ebenso transparent umlenken.

Für erweiterte Regeln muss man sich allerdings wieder auf dem UniFi Controller per SSH einloggen und dann im Basis-Pfad für die zu konfigurierende „Site“ eine Datei config.gateway.json anlegen. Auf meinem Unifi CloudKey Gen2+ ist das die default-Site, so dass das Verzeichnis dafür /srv/unifi/data/sites/default ist.

Um die entsprechenden Regeln zu hinterlegen braucht man die IP-Adresse des DNS bzw. NTP im Netzwerk und das Device für das Netzwerk, für das die Regeln eingerichtet werden sollen. In dem hier gezeigten Fall sind das für mein Netzwerk 10.0.0.1 (die IP der USG auf der beide Dienste laufen) und eth3.1 als Device für das Netzwerk. Die NAT-Regeln werden unter „Service“ -> „NAT“ eingerichtet und sehen bei mir wie folgt aus:

{"service": {	"nat": {		"rule": {			"4501": {				"description": "DNS Redirect",				"destination": {					"address": "!10.0.0.1",					"port": "53"				},				"inbound-interface": "eth3.1",				"inside-address": {					"address": "10.0.0.1"				},				"protocol": "tcp_udp",				"type": "destination"			},			"4502": {				"description": "NTP Redirect",				"destination": {					"address": "!10.0.0.1",					"port": "123"				},				"inbound-interface": "eth3.1",				"inside-address": {					"address": "10.0.0.1"				},				"protocol": "tcp_udp",				"type": "destination"			}		}	}}

Die Regeln sorgen nun also dafür, dass alle DNS Anfragen (Port 53), die an eine andere IP-Adresse gerichtet sind, als die lokale IP der USG, auf diese umgeleitet werden (Destination-NAT). Ebenso werden alle NTP-Anfrage (Port 123), die an einen anderen als den lokalen Service gerichtet sind umgelenkt.

Wenn ich es nun richtig mit tcpdump sehe, bin ich nun wieder „Herr über DNS und NTP“ 😉

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.