Unbound ile Güvenli Recursive DNS Kurulumu
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYsrSyZ9' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Unbound, güvenlik önplanda tutularak geliştirilen bir dns sunucusudur. validating (DNSSec), recursive ve caching modları bulunan bu dns daemon'ı ile kendi alan adlarınızına ait dns kayıtlarını barındırmak üzere authoritative DNS sunucusu kurabileceğiniz gibi üzerinde alan adı barındırmadan sadece çözümleme yapan recursive bir DNS sunucusu da kurabilirsiniz.
Ben bu yazıda unbound kullanarak hızlıca bir recursive DNS kurulum ve yapılandırmasının nasıl gerçekleştirilebileceğini anlatacağım.
Kurulum
BSD sistemler, RHEL/CentOS ve Debian/Ubuntu gibi popüler dağıtımlar için precompiled paketleri bulunan unbound ilgili sistemlerin paket yöneticileri üzerinden kolayca kurulabilmektedir.
Debian/Ubuntu
Debian'larda unbound paketi öntanımlı depolarda bulunuyor bu nedenle apt-get ile doğrudan kurabiliyoruz:
# apt-get install unbound
RHEL/CentOS
RHEL/CentOS'larda unbound base repolarda bulunmadığı için öncesinde sisteme epel repositorysini ekliyoruz. (Şu an güncel epel repo sürümü 6.8 ancak download etmeden yeni bir sürüm var mı diye kontrol etmenizi öneririm.) ve ardında da unbound kurulumunu gerçekleştiriyoruz.
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # yum install unbound # chkconfig unbound on
FreeBSD Sistemlerde
FreeBSD sistemlerde ise aşağıdaki adımları izleyerek kurulum yapıyoruz.
# pkg_add -i unbound # echo 'unbound_enable="YES"' >> /etc/rc.conf # cd /usr/local/etc/unbound && cp unbound.conf.sample unbound.conf
Recursive DNS Yapılandırması
unbound'un ana yapılandırma dosyası linux dağıtımlarda /etc/unbound/unbound.conf FreeBSD'lerde ise (biraz evvel örnekten kopyaladığımız) /usr/local/etc/unbound/unbound.conf ‘dur ve hemen tüm tanımlamalar bu dosya içerisinde yapılmaktadır.
Sunucumuzu recursive dns servisi olarak hizmet verecek şeklide düzenlemel için öncesinde varolan unbound.conf dosyasının içeriğini boşaltalım:
## RHEL/Debian vs. # :> /etc/unbound/unbound.conf ## FreeBSD # > /usr/local/etc/unbound/unbound.conf
Sonrasında da ilgili dosyaya aşağıdaki ibareleri ekleyelim:
server: interface: 0.0.0.0 access-control: 10.0.0.0/8 allow access-control: 172.16.0.0/12 allow access-control: 192.168.0.0/16 allow verbosity: 1 forward-zone: name: "." forward-addr: 8.8.8.8 # Google Public DNS forward-addr: 8.8.4.4 # Google Public DNS
Bu ifadelere göre:
- unbound kendisini 0.0.0.0 (sistemdeki tüm interface'ler)'e bind edecek,
- 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 networklerinden gelecek dns querylerini kabul edecek,
- ve çözümlemeyi Google Public DNS'leri üzerinden yapıp istekte bulunana döndürecektir.
- verbosity ifadesi, loglamanın ne kadar detaylı yapılacağını belirtmekte ve 0 ile 5 arası bir değer alabilmektedir.
Yapılandırma konusunda dikkat edilecek önemli bir husus access-control'ün doğru düzenlenmesidir. Bu kısımda sadece recursive dns hizmeti vermek istediğiniz networkleri tanımlamanız gerekir.
Tanımlamaları bitirdikten sonra sunucuyu başlatalım:
service unbound start
Herşey yolunda gidip gitmediğiniz sunucunun kendi üzerinden bir dns sorgulaması yaparak test edebilirsiniz:
nslookup -q=mx google.com 127.0.0.1
Sistem düzgün çalışıyorsa sorgunuzun cevabını almanız gerekir.
Unbound ile ilgili tüm detaylar için http://unbound.net/index.html adresine göz atabilirsiniz.
Bu yazılar da ilginizi çekebilir:
- DjbDNS ile Caching DNS Server Kurulumu
- Rsnapshot ile Uzak Linux Hostların Backuplarını Almak
- HAProxy ile SMTP Load Balancing
- VMWare Üzerine Backtrack 4 Kurulumu
- Php5 (PHP-FPM) + MySQL destekli Nginx Kurulumu
Yorumlar
Henuz yorum yapilmamis.
Yorumda bulunun.