Bind ile Alan Adı Sunucusu Kurulumu

bind9ubuntu

Bu makalede Internet Systems Consortium (ISC) tarafından geliştirilen BIND yazılımı ile Ubuntu sunucularda birincil ve ikincil DNS kurulumunu paylaşacağım. BIND ile ilgili detaylı bilgi için aşağıdaki doküman ve kılavuzlara göz atabilirsiniz.

Gereksinimler

Kurulum için aşağıdaki gereksinimlerin karşılanması gerekmektedir:

  • Alan adları tutulacak birbiri ile aynı ağda bulunan sunucu havuzu
  • Birincil DNS olarak çalışacak Ubuntu sunucu
  • İkincil DNS olarak çalışacak Ubuntu sunucu (opsiyonel)

Örnek Mimari

Bu makalede alan adı sunucusu olarak kullanmak üzere ns1 ve ns2 isminde iki adet sunucu kullanacağız. Alan adlarını tanımlamak üzere iki adet genel amaçlı host1 ve host2 isminde sunucu ekleyeceğiz. Her iki sunucu vm1 veri merkezinde çalışacak, aynı ağa bağlı olacak ve 10.61.2.0/24 subnetini kullanacak. Alan adı olarak da “huseyincotuk.com” alan adında çalışacaklar.

Sunucu Rolü FQDN IP Adresi
ns1 Birincil DNS ns1.vm1.huseyincotuk.com 10.61.2.118
ns2 İkincil DNS ns2.vm1.huseyincotuk.com 10.61.2.119
host1 Genel amaçlı sunucu host1.vm1.huseyincotuk.com 10.61.2.116
host2 Genel amaçlı sunucu host2.vm1.huseyincotuk.com 10.61.2.117

DNS Sunuculara BIND Kurulumu

ns1 ve ns2 sunucuların üzerinde paket yöneticisi güncellenerek ilgili paketler kurulmalıdır.

BIND’ın IPv4 adresinde çalışması için aşağıdaki dosyaya -4 parametresini ekliyoruz.

sudo vi /etc/default/bind9

Birincil DNS Yapılandırması

BIND yapılandırması için kullanılan ana dosya /etc/bind klasörünün altındaki named.conf dosyasıdır. Öncelikle recursive sorgular için kısıtlamalar getirmek üzere erişim kontrol listeleri tanımlamak gerekiyor. Aksi halde recursive sorgular herkese açık olursa DNS sunucunuz Internet üzerinden kullanılabilir durumda olup, DNS Amplification Attack saldırılarında kullanılabilmektedir.

DNS Sunucuların, sadece kendi ağınıza hizmet vermesi, genele hizmet vermemesi için gerekli olan ve sadece recursive sorgulara açık olması istenilen IP bloklarının tanımlanması için erişim kontrol listesi tanımlamak üzere named.conf.options dosyasında aşağıdaki tanımlar yapılmalıdır. Var olan options bloğundan önce aşağıdaki blok eklenmelidir.

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

options bloğu içerisine aşağıdaki tanımlar eklenmelidir.

Daha sonra DNS zone ayarları için named.conf.local dosyası düzenlenmelidir.

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

Reverse DNS için aşağıdaki zone tanımının aynı dosyaya eklenmesi gerekmektedir.

Eğer birden fazla subnet için DNS yönetiliyorsa her subnet için bir zone tanımı yapılmalı ve ilgili dosya oluşturulmalıdır. Böylece BIND üzerinde gerekli zone tanımları tamamlanmış olacaktır. Ardından tanımlı zone’lar için forward ve reverse zone dosyaları oluşturulmalıdır.

Forward Zone Dosyalarının Oluşturulması

Forward zone dosyaları ilgili alan adı için forward DNS kayıtlarının yapıldığı dosyalardır. BIND kendisine gelen “sunucu1.vm1.huseyincotuk.com” gibi bir DNS sorgusuna karşılık gelen IP adresine tanımlanan forward zone dosyasından bakar. Buradaki örnekte gelen sorguya karşılık bakacağı dosyanın tam yolu /etc/bind/zones/db.vm1.huseyincotuk.com şeklindedir.

Zone dosyalarını tutmak üzere bir klasör (/etc/bind/zones) açılarak ilgili dosyalar oluşturulmalıdır. Zone dosyaları için db.local dosyası baz alınabilir.

db.local dosyasından kopyalanan içerik başlangıçta aşağıdaki gibi olmalıdır.

Öncelikle SOA kaydı ns1 sunucusuna ait FQDN ile güncellenmelidir. Ayrıca bu dosyalarda kullanılan seri numarası bu dosya her değiştirildiğinde arttırılmalıdır, aksi halde BIND yapılan değişiklikleri göz ardı edecektir. Burada pratik bir yöntem seri numarası olarak yıl-ay-gün-versiyon şeklinde (2015122401 gibi) bir patern kullanmaktır. Ardından dosyanın sonunda yer alan üç satır silinmelidir. Dosyanın sonuna alan adı sunucularına ait NS (nameserver) kayıtları eklenmelidir. Son olarak A (adres) kayıtları eklenerek dosya aşağıdaki benzer hale getirilmelidir. Alan adlarından sonra gelen noktaların atlanmaması önemlidir. Alan adı kayıt türleri ve ilgili detaylı bilgiyi daha önce yayınlanan ilgili makalede bulabilirsiniz. Dosyanın son hali aşağıdaki gibi olmalıdır:

Reverse Zone Dosyalarının Oluşturulması

Reverse zone dosyaları, reverse alan adı sorgulamaları için PTR kayıtlarının tanımlandığı dosyalardır. BIND bir IP adresi sorgusu aldığında reverse zone dosyasına bakarak IP adresine karşılık gelen tam alan adı çözümlemesini yapar. Örneğin 10.61.2.117 IP adresi geldiğinde ilgili reverse zone dosyasından bu IP adresine karşılık gelen satırı bularak alan adı tanımını döndürür. db.127 dosyası baz alınarak oluşturulan db.10.61.2 dosyasının ilk içeriği aşağıdaki gibi olacaktır.

Benzer şekilde SOA kaydı ve seri numarası değiştirilmelidir. Ardından dosyanın sonundaki iki satır silinerek alan adı sunucularına ait kayıtlar girilmelidir. Sonrasında tanım yapılan subnetteki tüm sunucular için PTR kayıtları eklenmelidir. Buradaki örnekte /24 subnet kullanıldığı için sadece son oktetin girilmesi gerekmektedir. Dosyanın son hali aşağıdaki gibi olmalıdır.

Dosyalara gerekli tanımları yaptıktan sonra tüm named.conf* dosyalarındaki syntax kontrolü için aşağıdaki komut çalıştırılır.

Eğer hiç bir syntax hatası yoksa cursor shell’e dönecektir. Hata varsa hata ile ilgili detayları görebilirsiniz. Zone dosyalarının kontrolü için ise named-checkzone komutu  çalıştırılmalıdır. Örneğin vm1.huseyincotuk.com forward zone yapılandırmasını kontrol için aşağıdaki komut çalıştırılabilir.

Reverse zone dosyaları da benzer şekilde aşağıdaki gibi kontrol edilebilir:

Kontrollerin ardından bind yeniden başlatılarak değişikliklerin etkin hale gelmesi sağlanır.

İkincil DNS Yapılandırması

DNS servisinin kritik olması sebebiyle bir çok durumda yedekli olarak kurulması ve hizmet vermesi tercih edilmektedir. Birincil DNS sunucusunun servis dışı kalması durumunda ikincil DNS sunucusu devreye girerek kesintisiz şekilde alan adlarının çözümlenmesini sağlamaktadır. Birincil DNS sunucusuna benzer şekilde ikincil DNS sunucusunda aşağıdaki tanımlar yapılmalıdır.

İkincil DNS sunucusu için zone tanımı yaparken type slave seçildikten sonra file parametresinin bir path olması gerekmemekle birlikte, masters parametresinde birincil DNS sunucu IP adresinin eklenmesi sağlanmalıdır.

İstemcilerde DNS Sunucu Ayarları

Ubuntu veya Debian türevlerinde resolv.conf içerisinde boot sırasında eklenen head dosyasında aşağıdaki gibi alan adı ve DNS sunucu tanımları yapılabilir.

resolv.conf dosyasının yeniden üretilmesi için aşağıdaki komut çalıştırılır.

Bir yanıt yazın

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