Geleneksel DNS protokolü verileri şifrelemeden gönderdiği için güvenlik zafiyeti oluşturur. DoH yapısı bu verileri HTTPS tüneli içine alarak uçtan uca koruma sağlar. Şifreli iletim sayesinde internet trafiği dış tehditlere karşı kapalı bir yapıya kavuşur.

DoH (DNS over HTTPS) Nedir?
İnternet altyapısında kullanılan standart DNS sorguları korumasız bir yapıya sahiptir. DoH bu talepleri HTTPS trafiğiyle birleştirerek güvenli bir iletişim kanalı oluşturur. Şifrelenmiş bu yapı sayesinde servis sağlayıcılar ve üçüncü taraflar DNS trafiğini teknik olarak ayrıştıramaz.

DoH Neden Önemli?
DNS sorgu trafiğinin şifrelenmesi verilerin dışarıdan değiştirilme riskini ortadan kaldırır. Bu teknoloji bağlantı performansını koruyarak DNS yanıtlarının daha hızlı iletilmesine olanak tanır. Port 443 kullanımı trafiğin ayırt edilmesini ve engellenmesini teknik olarak güçleştirir. Sistem performansını doğrulamak amacıyla iPerf üzerinden ağ hızı ve paket iletim kalitesi ve ağ genişliği denetlenebilir.
DNS Protokolleri Karşılaştırması
Sistem performansını ve gizliliği etkileyen protokol farklılıkları aşağıda tablolaştırılmıştır. Hangi yöntemin size hitap ettiğini bu özet verilerle anlayabilirsiniz.
| Özellik | Geleneksel DNS | DNS over TLS (DoT) | DNS over HTTPS (DoH) |
| Port | 53 (UDP/TCP) | 853 (TCP) | 443 (TCP/HTTP) |
| Şifreleme | Yok | TLS | TLS (HTTPS üzerinden) |
| Görünürlük | Tamamen açık | Şifreli (ama porttan belli) | Normal web trafiğiyle aynı |
| Engellenebilirlik | Çok Kolay | Kolay (Port bazlı) | Çok Zor |
| Performans | Düşük Gecikme | TLS yükü var | HTTP/2-3 ve TLS yükü var |
BIND9 Ve DoH Servis Ayarları
BIND9 yaygın kullanılan bir DNS sunucu yazılımıdır. DoH desteğini aktif etmek için sunucunuzda libnghttp2 kütüphanesinin kurulu olması gerekir. Bu bileşen HTTPS üzerinden gelen sorguların doğru şekilde işlenmesini ve protokol uyumluluğunu sağlar.
BIND9 Paketlerini Yükleyelim
Sistemi güncelleyip gerekli araçları kuralım
sudo apt update && sudo apt install bind9 bind9utilsSSL 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.comYapı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.optionsDosya 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.comArdı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_ADRESIBIND9 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 bind9Reverse Proxy Katmanında DoH Ve DoT
DNS servislerini dış tehditlerden korumak için proxy katmanı üzerinden yönlendirme yapılabilir. Nginx 443 portundaki HTTPS trafiğini deşifre edip yerel DNS birimine aktarırken Caddy tarafında sertifika işlemleri otomatik yürütülür. Bu yapıda özellikle port 853 üzerindeki DoT trafiğini aktarmak için özel eklenti yapılandırmaları tercih edilir.
{
layer4 {
:853 {
@dot tls sni dns.example.com
route @dot {
proxy localhost:53
}
}
}
}Sık Sorulan Sorular
DoH ile DoT ağda nasıl ayırt edilir?
DoT 853 portunu kullanır. Bu port kolayca tespit edilip engellenebilir. DoH ise 443 portu üzerinden çalışır. Web trafiği gibi göründüğü için ayrıştırılması zordur.
BIND9 önüne neden Nginx veya Caddy koymalıyım?
Eğer sunucuda zaten bir reverse proxy varsa, DoH trafiğini 443 üzerinden karşılayıp BIND9’a aktarmak daha temiz bir yapı oluşturur.
DoH yeterli mi yoksa VPN gerekir mi?
ISS alan adını göremez. Ancak bağlandığınız IP adresini görebilir. Yani hedef sunucu bilgisi tamamen gizlenmez.