Fortigate Güvenlik Duvarlarında DNS ve DoT(DNS over TLS) Ayarları
Merhabalar,
Bu yazımızda Fortigate DNS ayarları ile bilgi vereceğiz.
Kısaca açıklamak gerekirse, Domain Name System (DNS), bir alan adını bir web sitesinin IP adresine eşleyerek web sitelerini bulmak ve aklımızda daha kolay yer edinebilmesi için kullanılan sistemdir.
FortiGate, kullanıcı gereksinimlerine göre DNS için farklı roller sunabilir bunlar:
- FortiGate, bir ağın kullandığı DNS sunucusunu kontrol edebilir.
- FortiGate, DNS sunucusu olarak işlev görebilir.
Ayrıca FortiGuard Dynamic DNS (DDNS), sayesinde de gerekli ayarlar yapılarak FortiGate’in Internet’e bakan arayüzüne IP adresi değişse bile sabit kalan bir alan adı kullanarak erişime izin verir.
FortiOS, hem IPv4 hem de IPv6 adreslemesi için DNS yapılandırmasını destekler. Bir kullanıcı bir web sitesi istediğinde, FortiGate, işlemin tamamlanması için hangi sunucuyla iletişim kuracağını bilmek amacıyla web sitesinin IP adresini sağlamak üzere önceden yapılandırılmış DNS sunucularına bakar.
FortiGate, NTP veya etki alanı adlarıyla tanımlanan web sunucuları gibi bir etki alanı adını IP adresine dönüştürmesi gerektiğinde yine DNS sunucularını sorgular.
DNS İçin CLI Komutları
DNS ayarları için Fortigate üzerinde aşağıdaki CLI komutlarını kullanabilirsiniz:
config system dns set primary <ip_address> set secondary <ip_address> set dns-over-tls {enable | disable | enforce} set ssl-certificate <string> set domain <domains> set ip6-primary <ip6_address> set ip6-secondary <ip6_address> set timeout <integer> set retry <integer> set dns-cache-limit <integer> set dns-cache-ttl <integer> set cache-notfound-responses {enable | disable} set source-ip <class_ip> end
DNS güvenliği ile ilgili bir kaç hususu da belirtmek gerekir:
DNS-over-TLS DOT Güvenlik Ayarları
Öncelikle “dns-over-tls” nedir o konuyu açıklayalım. TLS üzerinden DNS (DoT- DNS over TLS), Aktarım Katmanı Güvenliği (TLS-Transport Layer Security) protokolü aracılığıyla DNS sorgularını ve yanıtlarını şifrelemek ve sarmak için kullanılan yeni nesil bir güvenlik protokolüdür.
DNS over TLS’in amacı, Man-In-The-Middle saldırıları yoluyla DNS verilerinin dinlenmesini ve değiştirilmesini önleyerek kullanıcı gizliliğini ve güvenliğini artırmaktır. Fortigate’de DNS profil ayarlarında, bu ek güvenlik için DoT’yi zorunlu kılma seçeneği vardır.
DNS over TLS aşağıdaki komutlarla etkinleştirilebilir, devre dışı bırakılabilir veya zorlanabilir:
set dns-over-tls {enable | disable | enforce}
disable: DNS over TLS kullanma (default).
enable: DNS sorguları için eğer mümkünse TLS protokolünü kullan.
enforce: DNS over TLS kullanımını zorla, TLS üzerinden DNS sorguları mümkün değilse cevap verme.
GUI ve CLI tarafında örnek ayarlar için:
“Network > DNS. The DNS Settings“
config system dns set primary 8.8.8.8 set dns-over-tls enforce set ssl-certificate "Fortinet_Factory" end
DNS Domain List
FortiOS’ta GUI veya CLI kullanarak DNS ayarlarında sekiz adede kadar etki alanı girebilirsiniz.
Bir istemci FQDN içermeyen bir URL istediğinde , FortiOS URL’yi DNS etki alanı listesinde dolaşarak ve ilk eşleşme bulunana kadar her etki alanı için bir sorgu gerçekleştirerek çözer.
Örneğin “Local Domain Name” alanına “example.com” girilmiş ise ve FQDN olarak değil de sadece “abc” diye bir URL’ye erişim istendiğinde FortiOS bu URL’yi alan adı ile birleştirip ilk olarak “abc.example.com” olarak yerel DNS’de arama yapar.
FortiGate default olarak FortiGuard’ın DNS sunucularını kullanır:
Birincil: 208.91.112.53
İkincil: 208.91.112.52
DNS zaman aşımı süresini ve yeniden deneme girişimi sayısını da özelleştirebilirsiniz.
- GUI’de bir DNS etki alanı listesini yapılandırmak için: “Network > DNS”‘ye gidin.
- “DNS Servers to Specify” olacak şekilde ayarlayın.
- Birincil ve ikincil DNS sunucularını gerektiği gibi yapılandırın.
- “Local Domain Name “alanına ilk etki alanını girin (bu örnekte sample.com).
- Daha fazla alan adı eklemek için + işaretini tıklayın (bu örnekte example.com ve domainname.com).
- Sekiz adede kadar alan adı girebilirsiniz.
- Ayarları kaydedip çıkabilirsiniz.
- DNS Sayfasının sağ tarafında (6.2.0 ve üzeri FortiOS için) DNS erişim süreleri ve sağlıkları hakkında anlık bilgi veren bir alan bulunmaktadır.
- Ayrıca “Dynamically Obtained DNS Servers” altında da DHCP tarafından dağıtılan ve DHCP’den IP alan Interfacelerdeki DNS sunucuları görebiliriz.
Benzer ayarları CLI ile yapmak için:
config system dns
set primary 172.16.200.1
set domain "sample.com" "example.com" "domainname.com"
end
Test etmek için "execute ping host"
veya "execute ping google.com"
kullanabilirsiniz
DNS Timeout ve Yeniden Deneme Seçenekleri
DNS tarafında güvenlik ve performans amacıyla aşağıdaki ayarlar yapılarak Timeout ve Retry seçenekleri CLI da ayarlanabilir:
config system dns
set timeout <integer>
set retry <integer>
end
- set timeout –> default 5, 1-10 arası değer
- set retry –> default 2, 0-5 arası değer
“cache-notfound-responses, dns-cache-limit, dns-cache-ttl” Ayarları
DNS hızıve güvenliği ile ilgili önemli olabilecek bazı ayarlar aşağıdaki gibidir:
set cache-notfound-responses {enable | disable}
bu komut etkinleştirildiğinde (enable), NOT FOUND olarak cevap verilen tüm DNS istekleri önbellekte saklanabilir. Bu sayede DNS sunucusundan NOT FOUND girdileri için bir daha DNS sunucuya belirli bir süre sorulmaz ve bu durum da performansı arttırır ancak güncelleme çok sık olmadığı için yanlış sonuçlara neden olabilir. Varsayılan değer olarak bu ayar kapalıdır.set dns-cache-limit <integer>
DNS Önbelleğinde (DNC Cache) depolanan DNS girişi sayısını ayarlayamaya yardımcı olur (0 ila 4294967295, varsayılan = 5000). DNS cahcete tutulan girdiler, benzer isteklere aynı bilgileri getirmek için İnternet’e gitmekten daha hızlı bir yanıt sağlar. Bu sayede bilinen siteler için DNS cevapları daha hızlı hale gelmiş olur.set dns-cache-ttl <integer>
DNS önbelleğinde (DNS cache) bilgileri saniye cinsinden tutma süresi (60 ila 86400 (1 gün), varsayılan = 1800).
Bu konu ile ilgili detaylı makaleleri aşağıdaki linkte bulabilirsiniz.
https://docs.fortinet.com/document/fortigate/6.2.4/cookbook/780581/dns