Tag Archives: dnssec

Unbound

Bugün, Google da Türk Telekom’un hukuki bir dayanak olmadan DNS sunucularını yönlendirdiğini ve Türkiye’deki Internet kullanıcılarının fişlendiğini belirten bir değerlendirme yaptı. İletişim özgürlüğüne ve özel hayatın gizliliğine yapılmış sayısız ihlale bir yenisinin daha eklenmesinin yanında henüz TİB ve Türk Telekom’dan da konuyla ilişkili bir bilgi verilmedi. Türkiye’de Google ve Open DNS sunucuları hukuka aykırı ve hiçbir dayanağı olmadan Türk Telekom’a yönlendiriledursun, bu durumu aşabilmek için çeşitli yöntemler de mevcuttur. Bunlardan biri GNU/Linux altında Unbound kurarak kullanıcı kendini DNS önbellek zehirlemesinden ve sahte yönlendirmelerden koruyabilir. Ayrıca, özellikle DNS sorgusunda araya girilmediği ve yapılan sorguların bu şekilde elde edilmediği takdirde de gayet iyi bir yöntem olacaktır.

Unbound; önbelleğe sahip ve DNSSEC doğrulaması yapan bir DNS çözümleyicisidir. Harici bir DNS sunucusuna ihtiyaç olmadan DNS çözümleme işlemini yerine getirir. İstenildiği takdirde harici DNS sunucusu da kullanılabilir. Bununla birlikte, DNSSEC ise Türkiye örneğindeki gibi kullancıyı ve uygulamayı manipüle edilen DNS verilerinden sahip olduğu dijital imza ile koruyan bir özelliktir. Biz ise örneğimizde DNSSEC doğrulaması yapan ve yerel bir DNS çözümleyici için Unbound kurup ayarlayacağız. İlk olarak, Türkiye’deki OpenDNS, Google DNS ve İSS’lerin kendi DNS sunucularının verdiği çıktıya bakalım:

nslookup twitter.com
Server:    192.168.1.100
Address:   192.168.1.100#53

Non-authoritative answer:
Name       twitter.com
Address:   195.175.254.2

nslookup twitter.com 8.8.8.8
Server:    8.8.8.8
Address:   8.8.8.8#53

Non-authoritative answer:
Name       twitter.com
Address:   195.175.254.2

nslookup twitter.com 208.67.222.222
Server:    208.67.222.222
Address:   208.67.222.222#53

Non-authoritative answer:
Name       twitter.com
Address:   195.175.254.2

Görüldüğü üzere iki DNS sunucusu ile İSS engelli sayfayı sahte bir DNS sunucusuna yönlendirilmekte ve kullanıcı sahte DNS sunucusunda bekletilmektedir. Bu, Google’ın değerlendirmesi ve ayrıca daha önceden de bu konuya ilişkin yazılmış yazılar da doğrulamaktadır.

Şimdi, Debian ve türevi dağıtımlar için Unbound kuruluma geçecek olursak (Windows için buradan indirebilir ve yönergeler için el kitabına bakabilirsiniz. Gayet basitçe anlatılmış.):

kame ~ $ apt-get install unbound unbound-anchor
kame ~ $ sudo cp /etc/unbound/unbound.conf /etc/unbound/unbound.conf.save
kame ~ $ sudo wget -c ftp://FTP.INTERNIC.NET/domain/named.cache -O /etc/unbound/root.hints
kame ~ $ sudo cp /var/lib/unbound/root.key /etc/unbound/root.key
kame ~ $ sudo chown -R unbound:unbound /etc/unbound/root.key

/etc/unbound/unbound.conf:

###
server:
	auto-trust-anchor-file: "root.key"
	interface: 127.0.0.1
	interface: ::1
	root-hints: "root.hints"
	num-threads: 2
	hide-identity: yes
	hide-version: yes
	msg-cache-size: 16m
	msg-cache-slabs: 8
	rrset-cache-size: 32m
	rrset-cache-slabs: 8
	infra-cache-numhosts: 20000
	infra-cache-slabs: 8
	key-cache-slabs: 8
	key-cache-size: 8m
	jostle-timeout: 250
	so-rcvbuf: 4m
	so-sndbuf: 4m
	harden-short-bufsize: yes
	harden-large-queries: yes
	harden-glue: yes
	harden-dnssec-stripped: yes
	harden-below-nxdomain: yes
	prefetch-key: yes
	prefetch: yes
	unwanted-reply-threshold: 10000000
	rrset-roundrobin: yes
	outgoing-range: 8192
	num-queries-per-thread: 4096
	do-udp: yes
	do-ip4: yes
	do-ip6: no
	do-tcp: yes
python:
remote-control:
forward-zone:
###

Kopyalayıp kaydedin. Ağ yöneticinizdeki DNS sunucuları ayarını 127.0.0.1 yapın ve Unbound servisini çalıştırın (systemd ve openrc için iki örnek aşağıda).
kame ~ $ systemctl enable unbound.service
kame ~ $ systemctl start unbound.service

kame ~ $ /etc/init.d/unbound start

Yukarıdaki ayarlar hemen hemen bütün dağıtımlarda çalışacaktır. Herhangi bir sıkıntı yaşayacağınızı düşünmüyorum. DNSSEC kontrolü yapalım:

kame ~ $ dig sigok.verteiltesysteme.net @127.0.0.1

; <<>> DiG 9.9.5 <<>> sigok.verteiltesysteme.net @127.0.0.1
;; global options: +cmd
;; Got answer:
;; HEADER opcode: QUERY, status: NOERROR, id: 5409
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 4

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sigok.verteiltesysteme.net.	IN	A

;; ANSWER SECTION:
sigok.verteiltesysteme.net. 60	IN	A	134.91.78.139

;; AUTHORITY SECTION:
verteiltesysteme.net.	3600	IN	NS	ns1.verteiltesysteme.net.
verteiltesysteme.net.	3600	IN	NS	ns2.verteiltesysteme.net.

;; ADDITIONAL SECTION:
ns1.verteiltesysteme.net. 3600	IN	A	134.91.78.139
ns2.verteiltesysteme.net. 3600	IN	A	134.91.78.141

;; Query time: 1070 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Apr 01 11:49:29 2014
;; MSG SIZE  rcvd: 167

Bu şekilde A çıktısı alıyorsanız DNSSEC doğrulaması yapılmakta olduğunu söyleyebiliriz. Bununla birlikte, DNSSEC doğrulaması yapabileceğiniz siteler de mevcuttur:

Şimdi, Unbound’un sorunsuz çalıştığını ve DNSSEC doğrulaması yapıldığını farzederek Twitter çıktımızı tekrar kontrol edelim:

nslookup twitter.com 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   twitter.com
Address: 199.59.148.82
Name:   twitter.com
Address: 199.59.149.230
Name:   twitter.com
Address: 199.59.149.198

Her şey yolunda gözüküyor. Yerel DNS çözümleyicimiz sayesinde İSS’nin yapmış olduğu yönlendirmeye takılmadan kullanabiliriz. Diğer yandan, adres/IP manipülasyonlarında da sahip olunan dijital imza ile kullanıcı korunabilecektir. Unbound, yerel DNS çözümleyici ve DNSSEC ile doğrulama gerçekleştirerek yaşanabilecek sıkıntıların engelleyebilmektedir. Türkiye’de Internetin gelmiş olduğu noktaya bakacak olursak herhangi bir sosyal medya üzerinde verilen DNS sunucularını kullanmak yerine Unbound iyi ve güvenli bir çözüm gibi durmaktadır. Açıkçası, Türk Telekom ve TİB’in bundan sonra ne tür bir yöntem ile Internet üzerinde kullanıcı takibi, sorgu denetimi yapabileceğini, SSL sertifikalarında mitm yapıp yapmayacağını, sahte sertifika üretip üretmeyeceğini de kestiremediğim için kesin bir şey söyleyemiyorum. Aceleci bir yapım olmadığı için bekleyip görmeyi tercih ediyorum.

Tagged , , , , , , , , , , , ,