Fortigate DNS Server Konfiguration
Ab den Mid-Size Modellen kann eine Fortigate auch DNS Zonen hosten. Einerseits als primärer DNS Server, auf dem die DNS Records gepflegt werden müssen, andererseits als sekundärer DNS Server, der eine DNS Zone von einem anderen primären DNS Server synchronisiert.
Zwar sind viele Begrifflichkeiten in der Konfiguration „Standard“, allerdings hatte ich an der ein oder anderen Stelle doch etwas Problem zu verstehen, wie sich welche Einstellung auf die Funktionalität auswirkt.
Type
Primary
Der Zone-Type Primary gibt an, dass die Fortigate der Master Server für die DNS Zone ist. In dieser Konfiguration werden die DNS Records auf der Fortigate angelegt/geändert/gelöscht und zusätzliche Slave Server können die Zone replizieren.
Secondary
Der Zone-Type Secondary gibt an, dass die Fortigate ein Slave Server für die DNS Zone ist. In dieser Einstellung muss zwingend eine IP des Master Servers angegeben werden, von dem die DNS Records der Zone repliziert werden. In dieser Konfiguration können auf der Fortigate selbst keine DNS Records angelegt/geändert/gelöscht werden.
View
Shadow
Der View-Type Shadow hat glücklicherweise nichts mit DNS-Shadowing/Hijacking zu tun, sondern ist mehr oder minder Fortinets Bezeichnung dafür, dass die DNS Zone ausschließlich durch interne Clients genutzt werden kann. Also selbst wenn der DNS-Service auf einem WAN Interface aktiviert wird, sind die DNS Records einer Shadow Zone über diese Interfaces durch öffentliche Clients nicht auflösbar.
Public
Folglich bedeutet der View-Type Public genau das Gegenteil. DNS Zonen mit diesem View-Type sind auch über WAN Interfaces durch öffentliche Clients erreichbar. Public wird daher i.d.R. als View-Type verwendet, wenn man die DNS Zone für seine öffentliche Domain selbst hosten möchte und nicht bei einem Hosting Provider.
Proxy
Eine letzte Option, die es (soweit ich weiß) erst ab FortiOS 7.4 gibt, ist der View-Type Proxy. Der View-Type Proxy entspricht im Prinzip dem View-Type Shadow, außer dass die Zone nur durch den Fortigate-internen Proxy verwendet werden kann. Sowohl interne als auch öffentliche Clients können die Zone nicht nutzen.
Sonstige Optionen
Abhängig vom Typ der DNS Zone sind weitere Optionen zwingend oder optional zu konfigurieren.
DNS Zone
Das Feld DNS Zone ist bei allen Zone-Types verfügbar und ein Pflichtfeld. Es definiert allerdings lediglich den internen Anzeigename der Zone und hat für die DNS Funktion keine sonstige Bedeutung.
Domain Name
Das Feld Domain Name ist ebenfalls bei allen Zone-Types verfügbar und ein Pflichtfeld. Im Normalfall, wenn die Zone eine Primary Zone ist, wird hier der DNS Name der Domain konfiguriert, für den in der Zone DNS Records angelegt/geändert/gelöscht werden. Ist die Zone allerdings vom Zone-Type Secondary und wird z.B. von Windows DNS Servern repliziert, gibt es eine Besonderheit. Während man auf der Fortigate als Primary Zone Forward- und Reverse-Lookukp mischen kann (aber nicht muss!), trennt Windows dies auf jeden Fall. D.h. es gibt für Forward Lookup und Reverse Lookup zwei getrennte Zonen. Somit sind auch getrennte Secondary Zonen anzulegen. Während für die Forward Zone das gleiche gilt, wie für die Zone, wenn sie vom Zone-Type Primary ist, gilt für die Reverse Zone, dass im Feld Domain Name das gleiche wie auf dem Windows DNS Server eingetragen wird, also z.B. <IP-Segment>.<IP-Segment>.in-addr.arpa
.
Hostname of Primary DNS
Das Feld Hostname of Primary DNS ist beim Zone-Type Primary verfügbar und optional. Hier kann ein Hostname angegeben werden, der den primären DNS Server identifiziert.
Contact Email Address
Das Feld Contact Email Address ist auch nur beim Zone-Type Primary verfügbar und ebenfalls optional. Hier kann ein Name oder eine Email Adresse des für die DNS Zone zuständigen Admins hinterlegt werden.
TTL
Das Feld TTL ist ebenfalls nur beim Zone-Type Primary verfügbar. Hier lässt sich das TTL einstellen, das für alle Records der Zone gilt, sofern im jeweiligen Record kein eigenes TTL angegeben ist. Standardmäßig ist das TTL 86.400 Sekunden (1 Tag).
IP of Primary
Die Option IP of Primary ist nur im Zone-Type Secondary verfügbar. Das Feld ist ein Pflichtfeld und gibt an, welche IP der Master Server hat, von dem die Fortigate als Slave Server die DNS Records repliziert.
Authoritative
Der Switch Authoritative gibt an, ob der DNS Server für diese Zone autoritativ ist, also ob der DNS Server die einzige/letzte Quelle für die DNS Zone ist. Der Switch verhindert im aktiven Zustand, dass die Fortigate DNS Anfragen, die in der lokalen DNS Datenbank nicht aufgelöst werden können, an andere DNS Server weiterleitet.
DNS Forwarder
In DNS Forwarder Felder wird ein oder mehrere DNS Server hinterlegt, an die DNS Anfragen weitergeleitet werden, die auf der Fortigate nicht aufgelöst werden können. Ist für die Zone der Authoritative Switch aktiviert, werden DNS Forwarder Einträge ignoriert und Anfragen nicht weitergeleitet.
Beispiel (CLI)
Im folgenden Beispiel konfiguriere ich über die CLI eine primary DNS-Zone mit 3 Records und ein paar Einstellungen:
config system dns-database edit mydomain set authoritative disable set contact dnsamin@mydomain.com set domain mydomain.com set forwarder 8.8.8.8 set ttl 86400 set type primary set view shadow config dns-entry edit 1 set hostname server11 set ip 192.168.1.11 set type A next edit 2 set hostname server11 set ip 192.168.1.11 set type PTR next edit 3 set canonical-name server12 set hostname server4711.otherdomain.com set ttl 43200 set type CNAME next end next end
Im zweiten Beispiel konfiguriere ich über die CLI eine sekundäre Zone mit einem Windows DNS Server als primären DNS. Die Zone ist eine Reverse Lookup Zone und autoritativ, da i.d.R. interne Reverse Lookup Zonen nicht extern zur Auflösung weitergeleitet werden.
config system dns-database edit mydomain-reverse set authoritative enable set domain 1.168.192.in-addr.arpa set forwarder 8.8.8.8 set ip-primary 192.168.1.11 set type secondary set view shadow next end
Troubleshooting
Über die CLI bietet die Fortigate einige Optionen, um die DNS-Server Funktion zu verifizieren und zu analysieren. Folgender Befehl gibt alle verfügbaren Optionen aus:
# diagnose test application dnsproxy worker idx: 0 1. Clear DNS cache 2. Show stats 3. Dump DNS setting 4. Reload FQDN 5. Requery FQDN 6. Dump FQDN 7. Dump DNS cache 8. Dump DNS DB 9. Reload DNS DB 10. Dump secure DNS policy/profile 11. Dump Botnet domain 12. Reload Secure DNS setting 13. Show Hostname cache 14. Clear Hostname cache 15. Show SDNS rating cache 16. Clear SDNS rating cache 17. DNS debug bit mask 18. DNS debug obj mem 99. Restart dnsproxy worker
Um z.B. zu prüfen, ob eine Slave Zone auf der Fortigate die Records vom Master Server replizieren kann, ist Option 8 hilfreich:
diagnose test application dnsproxy 8
Die Abfrage gibt alle DNS-Records aus, die die Fortigate in den jeweiligen Zonen in ihrer DB hat. Sind Einträge in der Slave Zone vorhanden, funktioniert die Replikation.
Quellen:
https://docs.fortinet.com/
Bei https://blog.andreas-schreiner.de/2023/11/22/fortigate-dns-server-konfiguration/
gibt es unter Troubleshooting einen Tippfehler – diagnose test applicatoin dnsproxy 8
Ansonsten danke, hat mir geholfen.
Danke für den Hinweis, ist korrigiert.