Yeni bir teknoloji olan ve DNS protokolünü daha güvenli bir hale getirmesi ile bilinen DNS Over TLS
teknolojisini Unbound üzerinde nasıl kullanabileceğinizi anlatmaya çalışacağım.
DNS Over TLS Nedir?
TLS üzerinden DNS**(DNS Over TLS)**, SSL sunucularıyla tüm bağlantıların TLS kullanılarak güvenli bir şekilde yapılmasını sağlayan bir güvenlik protokolüdür. Bu, İSS’lerin hangi web sitesine eriştiğinizi görmesini engellemede etkilidir. TLS zaten bu işe yaramaktadır.
TLS üzerinden DNS aslında RFC 7858‘de belirtilmiştir. Tüm DNS verilerinin bir TLS üzeri DNS bağlantı noktasına gönderilmesini gerektirir.
TCP Fast Open kullanıldığında TLS el sıkışmasının hemen başlatılması gerekir.
TLS el sıkışması, TLS bağlantısının doğrulamasının sağlandığı süreçtir.
Kullanım oranları DNS endüstrisine(sunucuların desteklemelerine) bağlıdır. Bir sunucu SSL/TLS ile yapılandırılmışsa, TLS’nin üzerindeki DNS kendi yetenekleri dahilinde kullanılacak ve TLS üzerinden DNS keyfi sunacaktır.
Google’ın DNS sunucuları zaten TLS üzerinden DNS’yi desteklemektedir. Aynı zamanda bu özellik CloudFlare DNS hizmetindede bulunmaktadır.
DNS’yi TLS üzerinden etkinleştirmek istiyorsanız, yalnızca onu destekleyen bir DNS sunucusu bulmak zorundasınız.
Unbound Üzerinde Yapılacak Değişiklikler
Unbound bir ana bilgisayar adı sorgulamak için root DNS sunucularında en baştan başlamalı ve yetkili sunuculara doğru ilerlemelidir. (recursive DNS)
root.hints bir kopyasını Internic’ten indirin ve /var/unbound/etc/root.hints
olacak şekilde konumlandırım.
wget ftp://FTP.INTERNIC.NET/domain/named.cache -O /var/unbound/etc/root.hints
Root DNS sunucularını unbounda dahil ettikten hemen sonra ayarlarımızı yapmamız gerekiyor. Bu yüzden aşağıdaki parametreleri /etc/unbound/unbound.conf.d
içerisine herhangi bir ad ile sonu .conf
olacak şekilde konumlandırın.
server:
server:
num-threads: 2
access-control: 0.0.0.0/0 allow
cache-max-ttl: 14400
cache-min-ttl: 600
do-tcp: yes
do-ip4: yes
do-ip6: yes
do-daemonize: yes
hide-identity: yes
hide-version: yes
interface: 0.0.0.0
port: 53
minimal-responses: yes
prefetch: yes
qname-minimisation: yes
rrset-roundrobin: yes
ssl-upstream: yes
use-caps-for-id: yes
verbosity: 1
root-hints: "/etc/unbound/root.hints"
remote-control:
control-enable: no
forward-zone:
name: "."
forward-addr: 9.9.9.9@853 # quad9.net primary
forward-addr: 1.1.1.1@853 # cloudflare primary
forward-addr: 149.112.112.112@853 # quad9.net secondary
forward-addr: 1.0.0.1@853 # cloudflare secondary
Firewall Kurallarının uygulanması ile işlemimiz son buluyor. Artık DNS sunucunuzu rahatlıkla kullanabilirsiniz.
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
DNS servisinin başlatılması işlemini yapıyoruz.
systemctl start unbound.service
Bonus
Unbound kullanırken, DNS üzerinden reklam engelleme işlemi yapabilirsiniz. Bunun için yapmanız gereken aşağıdaki komutu çalıştırmak.
curl -sS -L --compressed "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext" > /etc/unbound/unbound_ad_servers
Bundan hemen sonra unbound yapılandırma dosyanızın içerisine aşağıdaki tek satırlık parametreyi eklemek
include: "/etc/unbound/unbound_ad_servers"