Ağ Yönetimi

      Ağ Güvenliğinde DNS over HTTPS Uygulaması

      İnternet trafiğinin gizliliğini sağlamak için kullanılan DNS sorguları, şifrelenmediği için saldırıya açıktır. Bu güvenlik açığını kapatmanın en etkili yolu, DNS sorgularını HTTPS üzerinden şifreleyerek ileten DoH teknolojisidir.

      DoH (DNS over HTTPS) Nedir?

      Geleneksel DNS protokolü verileri şifrelemeden gönderdiği için güvenlik açığı oluşturur. İnternet servis sağlayıcıları bu açık metin üzerinden kullanıcı hareketlerini takip edebilir. DoH yapısı DNS sorgularını HTTPS protokolü içine alarak uçtan uca şifreleme sağlar ve izlenmeyi engeller.

      DoH Neden Önemli?

      Veri bütünlüğünü koruyan şifreli DNS yapıları spoofing tabanlı siber saldırıları etkisiz hale getirir. Şifreleme süreci bağlantı hızını düşürmediği gibi yanıt sürelerinde iyileşme sağlayabilir. Port 443 üzerinden iletilen trafik normal HTTPS akışıyla birleştiği için erişim engellerine karşı dirençlidir. Ağ performansı ve paket kaybı gibi metrikler iPerf üzerinden ağ hızı ve paketleri kullanılarak teknik olarak test edilebilir.

      Teknik Tablo DoH Ve Standart DNS Karşılaştırması

      Hangi teknolojinin size uygun olduğunu anlamak için aşağıdaki tablo verilerine göz atabilirsiniz. Standart ve şifreli protokol farkları bu teknik kıyaslamada açıkça sunulmuştur.

      ÖzellikGeleneksel DNSDNS over TLS (DoT)DNS over HTTPS (DoH)
      Port53 (UDP/TCP)853 (TCP)443 (TCP/HTTP)
      ŞifrelemeYokTLSTLS (HTTPS üzerinden)
      GörünürlükTamamen açıkŞifreli (ama porttan belli)Normal web trafiğiyle aynı
      EngellenebilirlikÇok KolayKolay (Port bazlı)Çok Zor
      PerformansDüşük GecikmeTLS yükü varHTTP/2-3 ve TLS yükü var

      Sunucu Yönetimi BIND9 İle Şifreli DNS Kurulumu

      DoH işlevselliği için BIND9 sunucusunda libnghttp2 kütüphanesinin bulunması zorunludur. Altyapıdaki bu teknik hazırlık tamamlandıktan sonra servis ayarları güncellenerek güvenli internet trafiği yönetilmeye başlanabilir.

      BIND9 Paketlerini Yükleyelim

      Sistemi güncelleyip gerekli araçları kuralım

      sudo apt update && sudo apt install bind9 bind9utils

      SSL Sertifikası Alımı

      HTTPS üzerinden hizmet verebilmek için geçerli bir sertifikaya ihtiyacımız var. Let’s Encrypt ile hızlıca ücretsiz sertifika oluşturabiliriz

      sudo certbot certonly --standalone -d alanadiniz.com

      Yapılandırma Dosyasını Düzenleyelim

      named.conf.options dosyasını düzenleyerek TLS ve HTTP parametrelerini eklememiz gerekiyor.

      sudo nano /etc/bind/named.conf.options

      Dosya içeriğini şu şekilde yapılandıralım.

      tls local-doh-tls { 
          cert-file "/etc/letsencrypt/live/alanadiniz.com/fullchain.pem"; 
          key-file "/etc/letsencrypt/live/alanadiniz.com/privkey.pem"; 
      };
      
      http doh-endpoint { 
          endpoints { "/dns-query"; }; 
      };
      
      options {
          directory "/var/cache/bind";
          dnssec-validation auto;
          auth-nxdomain no;
          listen-on-v6 { any; };
      
          forwarders {
              1.1.1.1;
              8.8.8.8;
          };
      
          # DoH Dinleyicisi
          listen-on port 443 tls local-doh-tls http doh-endpoint { any; };
      };

      Local Yapılandırma Dosyasını Düzenleyelim

      Gerekli tanımlamaları yapmak için şu dosyayı açalım

      sudo nano /etc/bind/named.conf.local

      İçerisine şu satırları ekleyelim.

      zone "alanadiniz.com" {
          type master;
          file "/etc/bind/db.alanadiniz.com";
      };

      Zone Dosyasını Oluşturalım

      Alan adı kayıtlarını tutacağımız dosyayı hazırlayalım

      sudo nano /etc/bind/db.alanadiniz.com

      Ardından şu örnek verileri dosyaya aktaralım

      $TTL    604800
      @       IN      SOA     ns.alanadiniz.com. admin.alanadiniz.com. (
                                    2         ; Serial
                               604800         ; Refresh
                                86400         ; Retry
                              2419200         ; Expire
                               604800 )       ; Negative Cache TTL
      ;
      @       IN      NS      ns.alanadiniz.com.
      ns      IN      A       SUNUCU_IP_ADRESI
      @       IN      A       SUNUCU_IP_ADRESI

      BIND9 Servisini Yeniden Başlatalım

      Tüm yapılandırmayı tamamladıktan sonra değişikliklerin aktif olması için servisi baştan başlatalım

      sudo systemctl restart bind9

      Nginx Ve Caddy İle Proxy Katmanı Yapılandırması

      DNS sunucusunu doğrudan dış dünyaya açmak yerine bir Reverse Proxy kullanmak teknik avantajlar sağlar. Nginx 443 portunda gelen HTTPS isteklerini karşılar ve DNS paketini deşifre ederek arka plandaki standart DNS sunucusuna iletir.

      Caddy ise sertifika yönetimini otomatik yaparak Layer 4 eklentisi ile DoT trafiğini port 853 üzerinde karşılayıp yerel sunucuya aktarabilir.

      {
          layer4 {
              :853 {
                  @dot tls sni dns.example.com
                  route @dot {
                      proxy localhost:53
                  }
              }
          }
      }

      Sık Sorulan Sorular

      DNS over HTTPS ile DNS over TLS arasındaki fark nedir?

      DoT trafiği ağda ayrı görünür. 853 portu açıkça bellidir. DoH ise 443 portunu kullanır ve web trafiğiyle aynı kanaldan geçer.

      SSL işlemlerini neden proxy üzerinden yönetmeliyim?

      BIND9 tek başına DoH hizmeti verebilir. Ancak SSL sertifikasını yönetmek için Nginx veya Caddy kullanmak işleri kolaylaştırır. 443 portu proxy tarafından karşılanır ve trafik BIND9’a iletilir.

      Şifreli DNS kullanırken ISS neyi görebilir?

      Şifreli DNS tam anonimlik sağlamaz. Sorgu içeriği gizlenir ama hedef IP bilgisi görünür kalır. Daha fazla gizlilik için VPN veya ek bir tünel gerekir.

      Hi, I’m Spesifik

      Bir yanıt yazın

      E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir