Anasayfa Makale Fedora’da TLS Üzerinden DNS Bağlantısı Nasıl Kurulur?

Fedora’da TLS Üzerinden DNS Bağlantısı Nasıl Kurulur?

TLS üzerinden DNS kullanma

İlk çıktığı zamanlarda güvenliğinin üzerine çok fazla düşünülmemiş DNS protokolü, Fedora’da nasıl TLS üzerinden kullanılarak daha güvenli hale getirilir?

Bundan yıllar öncesinden, 35-36 sene öncesinden bahsediyoruz. DNS ilk çıktığında güvenliğe fazla dikkat edilmedi zira dönemin şartlarına göre çok da gerekmiyordu. Bildiğiniz üzere yıllar ilerledikçe her bilişim sisteminde olduğu gibi protokollerde yeni güvenlik açıkları, yöntemler, tehditler ortaya çıkıyor. DNS de bundan nasibini aldı ve bugünlerde en popüler konulardan birisi TLS/HTTPS üzerinden DNS sorgusu göndermek. Yakın zamanda Microsoft, Windows’un önizleme sürümüne bu desteği eklerken Linux dünyasında da teknolojiye detsek sağlanıyor. Fedaora da “DNS over TLS” desteği sunan dağıtımlardan biri. Eğer siz de bu dağıtımı kullanıyorsanız, DNS hijacking gibi saldırılardan korunmak amacıyla DNS yapılandırmalarınızda ufak değişiklikler yaparak TLS üzerinden DNS ile güvenli bağlantı sağlayabilirsiniz.

Şimdi Fedora’nın önermiş olduğu ayarlarımızı yapmaya başlayalım.

/etc/systemd/resolved.conf içerisini aşağıdakiler ile değiştirelim. Burada hangi DNS sunucularını kullanacaksanız kendinize göre ayarlamanız ve DNSSEC ile DNSOverTLS yazanların “yes” şeklinde yazılı olmasına dikkat etmeniz gerekiyor.

$ cat /etc/systemd/resolved.conf

[Resolve] DNS=1.1.1.1 9.9.9.9 DNSOverTLS=yes DNSSEC=yes FallbackDNS=8.8.8.8 1.0.0.1 8.8.4.4 #Domains=~. #LLMNR=yes #MulticastDNS=yes #Cache=yes #DNSStubListener=yes #ReadEtcHosts=yes

/etc/NetworkManager/conf.d named 10-dns-systemd-resolved.conf dosyasını oluşturun ve içerisine aşağıdaki komutları girip kaydedin. Bu, DNS sunucusunun ayarlarını otomatik almak yerine birinci adımda yapmış olduğumuz ayarlara göre almasını sağlar.

[main]
dns=systemd-resolved

Değişikliklerin devreye alınabilmesi için servisleri yeniden başlatmamız gerekiyor. Terminalde aşağıdaki komutları girip servisleri kapatıp açabilirsiniz.

$ sudo systemctl start systemd-resolved
$ sudo systemctl enable systemd-resolved
$ sudo systemctl restart NetworkManager

Şimdi sıra ayarlarımızın geçerli olup olmadığını kontrol etmeye geldi. Bunun için terminalde resolvectl status komutunu giriyoruz. Çıktı aşağıdaki gibi olmalı.

$ resolvectl status
MulticastDNS setting: yes DNSOverTLS setting: yes DNSSEC setting: yes DNSSEC supported: yes Current DNS Server: 1.1.1.1 DNS Servers: 1.1.1.1 9.9.9.9 Fallback DNS Servers: 8.8.8.8 1.0.0.1 8.8.4.4

/etc/resolv.conf‘a da bakalım. 127.0.0.53 göstermesi gerekiyor.

# Generated by NetworkManager search lan nameserver 127.0.0.53

Bütün bunları doğruladıktan sonra bu sefer de ayarlarımızın aktifleşip aktifleşmediğini anlamak için sorguların güvenli bir şekilde gidip gitmediğini kontrol etmeliyiz. Bunun için aşağıdaki komutu kullanabilirsiniz.

$ sudo ss -lntp | grep '\(State\|:53 \)'

State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.53% lo:53 0.0.0.0:* users:(("systemd-resolve",pid=10410,fd=18))

Şimdi de karşıya bir sorgu göndermeyi deneyelim ve güvenli iletilip iletilmediğine bakalım.

$ resolvectl query fedoraproject.org

fedoraproject.org: 8.43.85.67 -- link: wlp58s0 8.43.85.73 -- link: wlp58s0 [..] -- Information acquired via protocol DNS in 36.3ms. -- Data is authenticated: yes

Wireshark ile Son Kontroller

Fedora’nın bizlere gösterdiği yol eşliğinde ayarlarımızı yaptık. Şimdi de Wireshark ile durumu kontrol edelim. Öncelikle Terminalimizi açalım ve aşağıdaki komutları girerek Wireshark aracımızı kuralım. Bildiğiniz üzere Wireshark ağ analizi ve paket analizi için yazılmış alanında en iyi yazılımlardan birisi.

$ sudo dnf install wireshark
$ sudo wireshark

Kurulumu ve kullandığınız ağ cihazına uygun ayarları yaptıktan sonra tcp.port gibi bir filtre belirleyip portu 853 yapıyoruz. Zira bu port TLS üzerinden çalışan DNS portu. Böylece TLS üzerinden geçen bir sürü paket arasından DNS trafiğini aramakla uğraşmamış oluyoruz.

Wireshark ile paketlerimizi izlemeden önce sonuçların doğruluğu açısından DNS önbelleğini temizlemeye dikkat etmelisiniz. Aşağıdaki komutla bunu gerçekleştirebilirsiniz.

$ sudo resolvectl flush-caches

Sonrasında nslookup sorgusu ile herhangi bir adrese baktıktan sonra Wireshark üzerinde TLS üzerinden akan DNS trafiğini görebilirsiniz: