Virtualmin/Webmin Üzerinden Ubuntu’da DNS Slave Otomatik Yapılandırması
İnternet dünyasının temel taşlarından biri olan Alan Adı Sistemi (DNS), web sitelerinin ve diğer internet hizmetlerinin IP adreslerine çevrilmesini sağlayarak kullanıcıların alan adları aracılığıyla bu hizmetlere erişmesine olanak tanır. DNS altyapısının kesintisiz ve güvenilir çalışması, herhangi bir çevrimiçi varlık için hayati öneme sahiptir. Bu bağlamda, tek bir DNS sunucusuna bağımlı kalmak, olası arızalar, performans sorunları veya güvenlik açıkları durumunda hizmet kesintilerine yol açabilir. İşte bu noktada ikincil (slave) DNS sunucuları devreye girer.
İkincil DNS sunucuları, birincil (master) DNS sunucusunun yükünü hafifletmek, yüksek erişilebilirlik sağlamak, performansı artırmak ve olası birincil sunucu arızalarına karşı yedeklilik sunmak amacıyla kullanılır. Bu makalede, popüler bir web tabanlı sunucu yönetim paneli olan Virtualmin/Webmin kullanarak Ubuntu işletim sistemi üzerinde DNS slave sunucusunun nasıl otomatik olarak yapılandırılacağını ve birincil sunucu ile nasıl senkronize edileceğini ayrıntılı bir şekilde inceleyeceğiz. Bu rehber, hem DNS temellerini anlamak hem de pratik bir uygulama ile güçlü bir DNS altyapısı kurmak isteyen sistem yöneticileri ve geliştiriciler için tasarlanmıştır.
DNS Temelleri ve İkincil DNS Sunucusu İhtiyacı
Alan Adı Sistemi (DNS), internetin telefon rehberi gibidir. İnsanların hatırlaması kolay alan adlarını (örneğin, ornek.com) bilgisayarların anladığı sayısal IP adreslerine (örneğin, 192.0.2.1) çevirir. Bu çeviri işlemi, kullanıcıların web sitelerine erişmesini, e-posta göndermesini ve diğer internet tabanlı hizmetleri kullanmasını sağlar.
DNS Nasıl Çalışır?
Bir kullanıcı bir web sitesine erişmek istediğinde, tarayıcı DNS çözümleyicisine alan adını sorar. Çözümleyici, bu isteği sırasıyla kök sunuculara, üst düzey alan adı (TLD) sunucularına ve yetkili (authoritative) DNS sunucularına ileterek ilgili alan adının IP adresini bulur. Yetkili DNS sunucusu, o alan adına ait tüm kayıtları (A kaydı, MX kaydı, NS kaydı vb.) barındıran sunucudur.
* A Kaydı (Address Record): Bir alan adını bir IPv4 adresine eşler.
* AAAA Kaydı (IPv6 Address Record): Bir alan adını bir IPv6 adresine eşler.
* MX Kaydı (Mail Exchange Record): Bir alan adının e-posta sunucularını belirtir.
* NS Kaydı (Name Server Record): Bir alan adının yetkili DNS sunucularını belirtir.
* SOA Kaydı (Start of Authority Record): Bir DNS bölgesinin temel yetki bilgilerini (birincil sunucu, yönetici e-postası, seri numarası, yenileme süreleri vb.) içerir. Özellikle seri numarası, bölge transferlerinin tetiklenmesinde kritik rol oynar.
Master/Slave DNS Mimarisi
Geleneksel bir DNS kurulumunda, bir veya daha fazla DNS sunucusu bir alan adının kayıtlarını barındırır. “Master” (birincil) DNS sunucusu, bir alan adının tüm DNS kayıtlarının orijinal ve yetkili kopyasını tutar. Tüm değişiklikler (yeni bir alt alan adı ekleme, IP adresi güncelleme vb.) master sunucu üzerinde yapılır.
“Slave” (ikincil) DNS sunucusu ise master sunucudan DNS kayıtlarını kopyalar. Bu kopyalama işlemine “bölge transferi” (zone transfer) denir. Bölge transferleri iki ana mekanizma ile gerçekleşir:
* AXFR (Full Zone Transfer): Tüm bölge verisinin tek seferde kopyalanması.
* IXFR (Incremental Zone Transfer): Sadece değişen kayıtların kopyalanması.
Slave sunucular, master sunucunun SOA kaydındaki seri numarasını periyodik olarak kontrol eder. Eğer slave sunucudaki seri numarası master’dakinden düşükse, bu master’da değişiklikler yapıldığı anlamına gelir ve slave yeni verileri talep etmek için bir bölge transferi başlatır.
Neden İkincil DNS Sunucusuna İhtiyaç Duyarız?
İkincil DNS sunucuları kullanmanın birçok önemli avantajı vardır:
* Yüksek Erişilebilirlik ve Yedeklilik: Birincil DNS sunucusu çevrimdışı kalırsa (donanım arızası, ağ kesintisi, siber saldırı vb.), ikincil sunucu devreye girerek hizmetin kesintisiz devam etmesini sağlar. Bu, web sitenizin veya e-posta hizmetinizin sürekli erişilebilir olması açısından kritik öneme sahiptir.
* Performans İyileştirmesi: İkincil sunucular, coğrafi olarak farklı konumlarda konuşlandırılarak kullanıcılara daha yakın DNS yanıtları sağlayabilir, bu da sorgu sürelerini azaltır ve genel performansı artırır.
* Yük Dengeleme: Gelen DNS sorguları master ve slave sunucular arasında dağıtılarak birincil sunucunun üzerindeki yük azaltılır. Bu, özellikle yüksek trafikli alan adları için önemlidir.
* Güvenlik: Birincil sunucuya yönelik bir DDoS saldırısı veya başka bir güvenlik ihlali durumunda, ikincil sunucular yedek bir savunma katmanı görevi görür. Ayrıca, DNS önbellek zehirlenmesi gibi saldırılara karşı da ek bir koruma sağlayabilirler.
* Daha Hızlı Yanıt Süreleri: Slave sunucular, master’dan düzenli olarak güncel verileri çektiği için her zaman en güncel bilgilere sahip olur ve sorgulara hızlı yanıt verebilir.
Bu nedenlerle, ciddi bir internet varlığına sahip her kuruluşun en az bir ikincil DNS sunucusu bulundurması şiddetle tavsiye edilir. Virtualmin/Webmin gibi araçlar, bu karmaşık yapılandırma sürecini basitleştirerek DNS altyapısını yönetmeyi kolaylaştırır.
Ortamın Hazırlanması
Virtualmin/Webmin üzerinden DNS slave otomatik yapılandırmasını kurmadan önce, gerekli ortamın hazırlanması ve önkoşulların sağlanması önemlidir. Bu bölüm, master ve slave sunucularınızın kurulum öncesi durumunu ve temel gereksinimleri ele alacaktır.
Önkoşullar
1. İki Adet Ubuntu Sunucusu:
* Birincil (Master) DNS sunucusu olarak görev yapacak bir Ubuntu sunucusu.
* İkincil (Slave) DNS sunucusu olarak görev yapacak ayrı bir Ubuntu sunucusu.
* Her iki sunucunun da sabit genel IP adresleri olmalıdır. (Örn: Master IP: 192.168.1.10, Slave IP: 192.168.1.11). Bu makalede özel IP’ler kullanılmış olsa da, gerçek dünyada genel IP’ler kullanmanız gerekecektir.
2. Webmin/Virtualmin Kurulumu: Her iki Ubuntu sunucusu üzerinde de Webmin ve Virtualmin’in kurulu ve çalışır durumda olması gerekmektedir. Kurulum adımları bu makalenin kapsamı dışında olsa da, Virtualmin’in resmi web sitesindeki kurulum betiğini (install.sh) kullanarak kolayca kurabilirsiniz.
3. Kayıtlı Bir Alan Adı: Yapılandırmayı test etmek için kendi kontrolünüzde olan bir alan adına (örneğin, ornek.com) ihtiyacınız olacaktır. Bu alan adının NS kayıtları, daha sonra hem master hem de slave sunucularınızın IP adreslerini gösterecek şekilde güncellenmelidir.
4. Temel Ağ Bilgisi: IP adresleri, ağ geçitleri, güvenlik duvarları ve DNS kavramları hakkında temel bilgiye sahip olmak faydalı olacaktır.
5. SSH Erişimi: Her iki sunucuya da SSH üzerinden erişiminizin olması gerekmektedir.
Ubuntu Sunucularının Güncellenmesi
Herhangi bir kurulum veya yapılandırma işlemine başlamadan önce, sunucularınızdaki paket listelerini ve kurulu paketleri güncellemek iyi bir uygulamadır. Bu, güvenlik açıklarını kapatmaya ve en güncel yazılım sürümlerini kullanmaya yardımcı olur.
Her iki sunucuda da aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo reboot # Gerekirse sunucuyu yeniden başlatın
Güvenlik Duvarı Yapılandırması (UFW)
DNS hizmetinin düzgün çalışabilmesi için, hem master hem de slave sunucularda 53 numaralı TCP ve UDP portlarının açık olması gerekir. Ubuntu’da yaygın olarak kullanılan güvenlik duvarı (firewall) aracı UFW’dir (Uncomplicated Firewall).
Her iki sunucuda da aşağıdaki komutları çalıştırarak DNS portlarını açın:
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow ssh # SSH erişimi için 22/tcp portunu da açtığınızdan emin olun
sudo ufw enable # Güvenlik duvarını etkinleştirin (eğer zaten etkin değilse)
sudo ufw status # Güvenlik duvarı durumunu kontrol edin
ufw status çıktısında 53/tcp ve 53/udp portlarının ALLOW Anywhere olarak göründüğünden emin olun. Eğer Virtualmin/Webmin web arayüzüne erişim için farklı bir port kullanıyorsanız (varsayılan 10000), o portu da açmanız gerekebilir:
sudo ufw allow 10000/tcp # Webmin/Virtualmin arayüzü için
Bu adımları tamamladıktan sonra, master ve slave sunucularınız DNS hizmeti için temel olarak hazır hale gelmiş olacaktır. Artık Virtualmin/Webmin arayüzüne geçerek yapılandırma adımlarına devam edebiliriz.
Birincil (Master) DNS Sunucusunun Yapılandırılması (Virtualmin Üzerinden)
Master DNS sunucusu, alan adınızın tüm yetkili DNS kayıtlarını barındıran ve tüm değişikliklerin yapıldığı merkezdir. Virtualmin, bu süreci oldukça basitleştirir.
Virtualmin’e Giriş ve Sanal Sunucu Seçimi
1. Web tarayıcınızdan master sunucunuzun IP adresi ve Webmin/Virtualmin portunu kullanarak giriş yapın (örneğin, https://master_ip:10000).
2. Sol menüden Virtualmin bölümüne tıklayın.
3. DNS kayıtlarını yöneteceğiniz mevcut bir sanal sunucuyu seçin veya yeni bir sanal sunucu oluşturun. Genellikle, alan adınızla aynı isimde bir sanal sunucu zaten oluşturulmuş olmalıdır. Örneğin, ornek.com sanal sunucusunu seçin.
DNS Ayarlarının Kontrolü ve Düzenlenmesi
Seçtiğiniz sanal sunucu altında, sol menüde Server Configuration -> DNS Options veya Services -> BIND DNS Server seçeneklerini bulun.
1. BIND DNS Server (Services -> BIND DNS Server):
* Bu bölümde, alan adınıza ait mevcut DNS kayıtlarını (A, MX, NS, SOA vb.) göreceksiniz.
* ornek.com gibi alan adınız için bir NS kaydı olmalı ve bu kayıt master sunucunuzun ana bilgisayar adını (örneğin, ns1.ornek.com) ve IP adresini göstermelidir. Genellikle Virtualmin bunu otomatik olarak yapılandırır.
* SOA kaydındaki seri numarasının doğru formatta olduğundan emin olun (genellikle YYYYMMDDNN formatındadır, örn: 2023102701). Virtualmin değişiklik yaptığınızda bu numarayı otomatik olarak artırır.
* Slave Sunucuyu Yetkilendirme: Bu kısım kritik öneme sahiptir. Slave sunucunuzun master’dan bölge transferi yapmasına izin vermeniz gerekir.
* Allow transfers to veya Only allow transfers to IP addresses bölümünü bulun.
* Slave sunucunuzun IP adresini (örneğin, 192.168.1.11) bu listeye ekleyin. Birden fazla slave sunucu varsa, her birinin IP adresini virgülle ayırarak veya ayrı satırlara ekleyin.
* Notify slave servers bölümünü bulun ve slave sunucunuzun IP adresini buraya da ekleyin. Bu, master sunucunun bir değişiklik olduğunda slave sunucularına otomatik olarak bildirim göndermesini sağlar.
* Değişiklikleri kaydetmek için Apply Changes veya Save and Apply düğmesine tıklayın.
2. DNS Records (Server Configuration -> DNS Records):
* Bu bölüm, alan adınıza ait DNS kayıtlarını görsel bir arayüzde yönetmenizi sağlar.
* Burada, ornek.com ve ns1.ornek.com (veya sunucunuzun hostname’i) için A kayıtları, MX kayıtları ve NS kayıtları gibi temel kayıtları kontrol edebilirsiniz.
* Önemli: Alan adınız için en az iki NS kaydı tanımlamanız gerekmektedir. Biri master sunucunuzu (örn: ns1.ornek.com), diğeri ise slave sunucunuzu (örn: ns2.ornek.com) göstermelidir.
* Eğer ns2.ornek.com kaydı yoksa, Add record of type seçeneğinden Name Serverı seçin.
* Name kısmına ornek.com yazın (veya boş bırakın, Virtualmin otomatik tamamlar).
* Value kısmına ns2.ornek.com yazın.
* Ardından, ns2.ornek.com için slave sunucunuzun IP adresini gösteren bir Address (A) kaydı eklemeniz gerekecektir.
* Add record of type seçeneğinden Addressı seçin.
* Name kısmına ns2.ornek.com yazın.
* Value kısmına slave sunucunuzun IP adresini (örn: 192.168.1.11) yazın.
* Bu değişiklikleri kaydettikten sonra, Virtualmin BIND yapılandırmasını güncelleyecek ve seri numarasını artıracaktır.
Secure Zone Transfers (rndc.key)
Bölge transferlerini daha güvenli hale getirmek için TSIG (Transaction Signature) anahtarları kullanılabilir. Virtualmin/Webmin genellikle bunu otomatik olarak yönetir. Ancak, manuel olarak kontrol etmek veya yapılandırmak isterseniz:
1. Webmin arayüzünde, Servers -> BIND DNS Server -> Module Config bölümüne gidin.
2. rndc key file ve rndc config file yollarını kontrol edin. Genellikle /etc/bind/rndc.key ve /etc/bind/rndc.conf olacaktır.
3. /etc/bind/rndc.key dosyasını görüntüleyin (SSH üzerinden sudo cat /etc/bind/rndc.key). Bu dosya, key "rndc-key" bloğunu ve içinde bir secret değeri barındırır. Bu secret değeri, slave sunucusu ile güvenli iletişim kurmak için kullanılacaktır. Bu anahtarı kopyalayın, çünkü slave sunucuda da aynı anahtarı kullanmanız gerekecektir.
Virtualmin, birincil sunucunuz için bu anahtarı otomatik olarak oluşturur ve BIND yapılandırmasına ekler. Slave sunucusunu yapılandırırken bu anahtarı kullanacağız.
Zone Transferlerinin Test Edilmesi (Master Tarafında)
Master sunucunuzun bölge transferlerine izin verip vermediğini test etmek için slave sunucunuzun IP adresinden dig komutunu kullanabilirsiniz. Ancak, henüz slave sunucuyu yapılandırmadığımız için bu testi şimdilik master sunucu üzerinden yapabiliriz.
SSH üzerinden master sunucuya bağlanın ve aşağıdaki komutu çalıştırın (slave sunucunuzun IP adresini kullanarak):
dig @master_ip ornek.com AXFR
Bu komut, master sunucudan ornek.com alan adının tüm DNS kayıtlarının tam bir transferini (AXFR) talep eder. Normalde, bu komutu sadece yetkili slave sunucuların yapmasına izin verilir. Eğer yapılandırmanız doğruysa, bir hata yerine DNS kayıtlarının bir listesini görmelisiniz. Ancak daha güvenli bir test, slave sunucu kurulduktan sonra yapılacaktır.
Bu adımları tamamladığınızda, master DNS sunucunuz birincil rolünü üstlenmeye ve slave sunucusuna bölge transferi yapmaya hazır olacaktır. Şimdi sıra ikincil DNS sunucusunun yapılandırmasında.
İkincil (Slave) DNS Sunucusunun Yapılandırılması (Virtualmin Üzerinden)
Slave DNS sunucusu, master sunucudan DNS kayıtlarını alacak ve master’ın bir yedeği olarak hizmet verecektir. Virtualmin, bu süreci de oldukça basit hale getirir.
Virtualmin’e Giriş ve İkincil DNS Bölgesi Oluşturma
1. Web tarayıcınızdan slave sunucunuzun IP adresi ve Webmin/Virtualmin portunu kullanarak giriş yapın (örneğin, https://slave_ip:10000).
2. Sol menüden Virtualmin bölümüne tıklayın.
3. Create virtual server seçeneği yerine, Add a secondary DNS domain veya Create secondary DNS zone seçeneğini arayın. Bu seçenek genellikle Virtualmin -> Add Servers altındadır.
* Eğer böyle bir doğrudan seçenek bulamazsanız, Create virtual server seçeneğini kullanın ve “Domain name” alanına ornek.com yazın. Ardından, “Setup DNS zone” bölümünde “Secondary DNS server” veya “Slave DNS server” seçeneğini işaretleyin. Bu, Virtualmin’in otomatik olarak bir ikincil bölge oluşturmasını sağlar.
İkincil Bölge Ayarları
İkincil DNS bölgesi oluşturma ekranında aşağıdaki bilgileri girmeniz gerekecektir:
1. Domain Name: Master sunucuda yönettiğiniz alan adını girin (örneğin, ornek.com).
2. Master Servers: Master DNS sunucunuzun IP adresini girin (örneğin, 192.168.1.10). Birden fazla master sunucunuz varsa, her birinin IP adresini virgülle ayırarak veya ayrı satırlara ekleyebilirsiniz.
3. Create server: Bu seçeneği işaretleyin. Virtualmin, belirtilen alan adı için gerekli yapılandırmaları otomatik olarak oluşturacaktır.
Bu adımları tamamladıktan sonra, Virtualmin BIND’i yapılandıracak ve slave sunucunun master’dan bölge transferi yapmasını sağlayacaktır. Virtualmin, named.conf.local dosyasına aşağıdaki gibi bir giriş ekleyecektir:
zone "ornek.com" {
type slave;
file "/var/lib/bind/ornek.com.zone";
masters { 192.168.1.10; };
};
Secure Zone Transfers (rndc.key) Yapılandırması (Slave Tarafında)
Eğer master sunucunuzda güvenli bölge transferleri için rndc.key kullanıyorsanız, aynı anahtarı slave sunucunuzda da yapılandırmanız gerekir.
1. SSH üzerinden slave sunucuya bağlanın.
2. Master sunucudan kopyaladığınız rndc.key içeriğini /etc/bind/rndc.key dosyasına yapıştırın. Bu dosya zaten mevcut olabilir veya Virtualmin tarafından oluşturulmuş olabilir. Gerekirse düzenleyin:
sudo nano /etc/bind/rndc.key
İçerik master sunucudaki ile aynı olmalıdır:
key "rndc-key" {
algorithm hmac-md5;
secret "YOUR_SECRET_KEY_FROM_MASTER"; # Master'dan kopyaladığınız gizli anahtar
};
Dosyayı kaydedin ve kapatın (Ctrl+O, Enter, Ctrl+X).
3. rndc.conf dosyasının da bu anahtarı kullandığından emin olun (genellikle Virtualmin bunu otomatik yapar).
sudo nano /etc/bind/rndc.conf
İçeriğinde aşağıdaki gibi bir bölüm olmalıdır:
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
4. BIND servisini yeniden başlatın:
sudo systemctl restart bind9
Bu adımların ardından slave sunucunuz, master sunucudan bölge transferini otomatik olarak gerçekleştirmeye başlayacaktır. İlk transfer genellikle hemen gerçekleşir.
Otomatik Yapılandırma ve Senkronizasyonun Sağlanması
Virtualmin’in DNS slave yönetimindeki en büyük avantajı, master sunucuda yapılan değişikliklerin slave sunuculara otomatik olarak yansıtılmasıdır. Bu, manuel müdahaleyi en aza indirerek yönetim yükünü azaltır ve tutarlılığı sağlar.
Virtualmin’in Slave DNS Yönetimi Özelliği
Virtualmin, birincil sunucunuzda bir alan adı için DNS kayıtlarında herhangi bir değişiklik yaptığınızda (örneğin, yeni bir A kaydı eklemek, mevcut bir kaydı güncellemek veya silmek) aşağıdaki adımları otomatik olarak gerçekleştirir:
1. SOA Seri Numarası Artırımı: Master sunucudaki alan adının SOA (Start of Authority) kaydındaki seri numarasını otomatik olarak artırır. Bu, YYYYMMDDNN formatında (YılAyGünSıraNumarası) bir sayıdır. Örneğin, 2023102701 bir sonraki değişiklikte 2023102702 olabilir.
2. rndc notify Komutu: Virtualmin, BIND DNS sunucusuna rndc notify ornek.com gibi bir komut gönderir. Bu komut, master sunucunun yapılandırmasında belirtilen tüm slave sunuculara (yani Notify slave servers bölümüne eklediğiniz IP adreslerine) bir bildirim paketi (NOTIFY mesajı) gönderir. Bu bildirim, SOA seri numarasının değiştiğini ve slave sunucuların güncel verileri çekmesi gerektiğini bildirir.
3. Slave Sunucu Kontrolü: Slave sunucular, bu bildirimi aldıklarında veya kendi yenileme aralıklarında (SOA kaydında belirtilen refresh süresi) master sunucunun SOA kaydındaki seri numarasını kontrol ederler.
4. Bölge Transferi (Zone Transfer): Eğer slave sunucudaki SOA seri numarası master’dakinden düşükse, slave sunucu master’dan bir bölge transferi (genellikle IXFR – Incremental Zone Transfer) talep eder. Bu sayede sadece değişen kayıtlar slave sunucuya aktarılır.
5. BIND Yeniden Yükleme: Slave sunucu, güncel bölge verilerini aldıktan sonra BIND servisini yeniden yükler (rndc reload ornek.com) ve yeni kayıtları sunmaya başlar.
Bu otomatik süreç sayesinde, master sunucuda yaptığınız her değişiklik anında veya çok kısa bir süre içinde tüm slave sunuculara yayılır.
Troubleshooting: Log Kontrolü
Otomatik senkronizasyonun düzgün çalışıp çalışmadığını kontrol etmek veya olası sorunları gidermek için sunucu log dosyalarını incelemek çok önemlidir.
* Master Sunucu Logları:
sudo tail -f /var/log/syslog
sudo tail -f /var/log/daemon.log
Master sunucuda bir değişiklik yaptığınızda, loglarda SOA seri numarasının arttığına ve slave sunuculara bildirim gönderildiğine dair mesajlar görmelisiniz (örneğin, notifying slaves of zone 'ornek.com').
* Slave Sunucu Logları:
sudo tail -f /var/log/syslog
sudo tail -f /var/log/daemon.log
Slave sunucuda, master’dan bir bildirim alındığına, SOA seri numarasının kontrol edildiğine ve bir bölge transferi başlatıldığına dair mesajlar görmelisiniz (örneğin, zone 'ornek.com/IN': Transfer started., zone 'ornek.com/IN': Transfer completed: 1 messages, 1 records, 133 bytes, 0.001 secs (133000 bytes/sec)).
Loglardaki hatalar veya uyarılar, genellikle güvenlik duvarı sorunları, yanlış IP adresleri veya rndc.key uyuşmazlıkları gibi yaygın sorunlara işaret edebilir.
SOA Seri Numarasının Önemi
SOA kaydındaki seri numarası, DNS bölge transferlerinin tetiklenmesinde merkezi bir rol oynar. Herhangi bir DNS kaydında değişiklik yapıldığında bu numaranın artırılması zorunludur. Virtualmin bu işlemi otomatik olarak yapsa da, manuel bir BIND yapılandırmasında bu numaranın güncellenmesi unutulduğunda slave sunucular eski verileri sunmaya devam edebilir.
Seri numarasının YYYYMMDDNN formatında olması yaygın ve yönetimi kolay bir yaklaşımdır. NN kısmı o gün içinde yapılan değişikliklerin sıra numarasıdır.
Bu bölümde anlatılan otomatik senkronizasyon mekanizması, Virtualmin’in DNS yönetimini ne kadar kolaylaştırdığını göstermektedir. Doğru yapılandırıldığında, DNS altyapınız yüksek oranda yedekli ve kendi kendini güncelleyebilir hale gelecektir.
Test ve Doğrulama
Kurulum ve yapılandırma tamamlandıktan sonra, DNS slave sunucunuzun düzgün çalıştığından ve master sunucu ile senkronize olduğundan emin olmak için çeşitli testler yapmak hayati öneme sahiptir. Bu testler, olası sorunları erken aşamada tespit etmenize yardımcı olacaktır.
dig Komutu ile Testler
dig (domain information groper) komutu, DNS sunucularını sorgulamak için güçlü ve esnek bir araçtır. Hem master hem de slave sunucudan sorgular yaparak doğrulamaları gerçekleştirebiliriz. Bu testleri, slave sunucudan veya başka bir harici bilgisayardan yapmanız en doğrusudur.
1. Master Sunucudan Alan Adı Sorgulama:
Master sunucunuzun hala yetkili yanıtlar verdiğinden emin olun.
dig @MASTER_IP ornek.com A
ANSWER SECTION bölümünde ornek.com için beklenen A kaydını görmelisiniz.
2. Slave Sunucudan Alan Adı Sorgulama:
Slave sunucunuzun master’dan bölge transferini başarıyla yapıp yapmadığını ve yetkili yanıtlar verip vermediğini kontrol edin.
dig @SLAVE_IP ornek.com A
Yine, ANSWER SECTION bölümünde master’dan gelenle aynı A kaydını görmelisiniz. Bu, slave’in verileri başarıyla çektiği anlamına gelir.
3. NS Kayıtlarını Kontrol Etme:
Alan adınızın NS kayıtlarının hem master hem de slave sunucularınızı doğru şekilde gösterdiğinden emin olun.
dig ornek.com NS
Bu komut, alan adınız için yetkili DNS sunucularını listeler. Çıktıda ns1.ornek.com (master) ve ns2.ornek.com (slave) gibi kayıtları görmelisiniz. Ayrıca, bu kayıtların doğru IP adreslerine (glue records) sahip olduğundan emin olun.
4. SOA Kaydını Kontrol Etme:
Master ve slave sunuculardaki SOA kayıtlarının seri numaralarını karşılaştırın. Slave’deki seri numarasının master’daki ile aynı veya çok yakın olması gerekir.
dig @MASTER_IP ornek.com SOA
dig @SLAVE_IP ornek.com SOA
Her iki çıktıda da serial değeri aynı olmalıdır. Eğer farklıysa, slave henüz güncel veriyi çekmemiştir veya bir sorun vardır.
5. Bölge Transferini Test Etme (AXFR):
Bu, slave sunucunun master’dan tüm bölge verisini çekip çekemediğini test etmenin en doğrudan yoludur. Bu testi slave sunucudan yapmanız daha anlamlıdır, çünkü sadece yetkili slave’lerin bu transferi yapmasına izin verilmelidir.
SSH üzerinden slave sunucuya bağlanın ve aşağıdaki komutu çalıştırın:
dig @MASTER_IP ornek.com AXFR
Eğer başarılı olursa, ornek.com alan adına ait tüm DNS kayıtlarını listeleyen uzun bir çıktı görmelisiniz. Eğer ;; connection timed out; no servers could be reached veya ;; XFR size (0) != (something else) gibi hatalar alırsanız, master sunucunuzda slave’in IP adresine bölge transfer izni vermemiş olabilirsiniz veya güvenlik duvarı engeli vardır.
Nslookup Kullanımı
nslookup komutu da DNS sorgulamaları için kullanılabilir, ancak dig kadar esnek değildir.
nslookup ornek.com MASTER_IP
nslookup ornek.com SLAVE_IP
Her iki komut da aynı IP adresini döndürmelidir.
Çeşitli DNS Sorgu Araçları
Online DNS denetleyicileri (örneğin, dnschecker.org, whatsmydns.net) kullanarak alan adınızın dünya genelindeki DNS sunucuları tarafından nasıl görüldüğünü kontrol edebilirsiniz. Bu araçlar, DNS kayıtlarınızın küresel olarak yayılıp yayılmadığını anlamak için faydalıdır. Alan adınızın NS kayıtlarını bu araçlara girerek hem master hem de slave sunucularınızın doğru yanıtlar verdiğini doğrulayın.
Master Sunucuda Değişiklik Yapıp Slave’i Kontrol Etme
Gerçek otomatik senkronizasyonu test etmek için master sunucunuzda küçük bir değişiklik yapın:
1. Master Virtualmin arayüzüne giriş yapın.
2. ornek.com sanal sunucusunu seçin.
3. Server Configuration -> DNS Records bölümüne gidin.
4. Yeni bir alt alan adı için A kaydı ekleyin (örneğin, test.ornek.com için 192.0.2.100 gibi bir IP adresi). Kaydı kaydedin.
5. Birkaç dakika bekleyin (Virtualmin’in bildirim göndermesi ve slave’in transferi tamamlaması için).
6. Slave sunucudan veya başka bir dış kaynaktan yeni eklediğiniz kaydı sorgulayın:
dig @SLAVE_IP test.ornek.com A
Eğer ANSWER SECTION bölümünde test.ornek.com için eklediğiniz IP adresini görüyorsanız, otomatik senkronizasyon başarıyla çalışıyor demektir.
Bu testler, DNS altyapınızın sağlamlığını ve yedekliliğini doğrulamanıza yardımcı olacaktır. Herhangi bir tutarsızlık veya hata durumunda, log dosyalarını incelemek ve yaygın sorun giderme adımlarını uygulamak gerekecektir.
Yaygın Sorunlar ve Çözümleri
DNS kurulumları bazen karmaşık olabilir ve çeşitli sorunlarla karşılaşmak olasıdır. İşte Virtualmin/Webmin ile DNS slave yapılandırmasında sıkça karşılaşılan sorunlar ve olası çözümleri:
1. Güvenlik Duvarı Engelleri
Sorun: Slave sunucu master’dan bölge transferi yapamıyor veya dışarıdan DNS sorgularına yanıt veremiyor.
Çözüm: Hem master hem de slave sunucularda 53 numaralı TCP ve UDP portlarının açık olduğundan emin olun. Ayrıca, master sunucuda slave sunucunun IP adresinden gelen 53 numaralı port trafiğine izin verildiğinden emin olun.
sudo ufw status verbose # UFW durumunu kontrol edin
sudo ufw allow from SLAVE_IP to any port 53 # Master'da slave'e izin verin
sudo ufw allow from MASTER_IP to any port 53 # Slave'de master'a izin verin
Güvenlik duvarı kurallarını değiştirdikten sonra BIND servisini yeniden başlatmak faydalı olabilir, ancak genellikle gerekli değildir.
2. Yanlış IP Adresleri veya Domain Adları
Sorun: Virtualmin yapılandırmasında veya BIND dosyalarında yanlış IP adresleri veya alan adları belirtilmiş.
Çözüm:
* Virtualmin master sunucu yapılandırmasında Allow transfers to ve Notify slave servers bölümlerinde slave sunucunun doğru IP adresinin listelendiğinden emin olun.
* Virtualmin slave sunucu yapılandırmasında Master Servers bölümünde master sunucunun doğru IP adresinin listelendiğinden emin olun.
* dig komutları ile sorguladığınız IP adreslerinin doğru olduğundan emin olun.
* Alan adınızın NS kayıtlarının master ve slave sunucularınızın IP adreslerini gösterdiğinden emin olun.
3. SOA Seri Numarası Sorunları
Sorun: Master sunucuda değişiklik yapılmasına rağmen slave sunucu güncel verileri çekmiyor.
Çözüm:
* Master sunucuda yaptığınız değişiklikten sonra Virtualmin’in SOA seri numarasını otomatik olarak artırdığından emin olun. dig @MASTER_IP ornek.com SOA komutu ile kontrol edin.
* Slave sunucunun loglarında (/var/log/syslog veya /var/log/daemon.log) bölge transferi girişimlerini arayın. Eğer slave sunucu master’ın SOA seri numarasını kontrol etmiyor veya transfer başlatmıyorsa, refresh (yenileme) ve retry (yeniden deneme) sürelerini kontrol edin.
* Master sunucuda sudo rndc notify ornek.com komutunu manuel olarak çalıştırarak slave sunucuları bildirim göndermeye zorlayabilirsiniz.
4. rndc.key Uyuşmazlıkları (Secure Zone Transfers Kullanılıyorsa)
Sorun: Güvenli bölge transferleri için kullanılan rndc.key master ve slave sunucular arasında uyuşmuyor.
Çözüm:
* Master sunucudaki /etc/bind/rndc.key dosyasının içeriğini (özellikle secret değerini) kopyalayın.
* Slave sunucudaki /etc/bind/rndc.key dosyasının içeriğini master’daki ile tamamen aynı olacak şekilde güncelleyin.
* Her iki sunucuda da BIND servisini yeniden başlatın: sudo systemctl restart bind9.
* Log dosyalarında TSIG anahtarı ile ilgili hataları arayın.
5. BIND Servisinin Çalışmaması
Sorun: Master veya slave sunucuda BIND DNS servisi çalışmıyor.
Çözüm:
* Servisin durumunu kontrol edin: sudo systemctl status bind9.
* Eğer çalışmıyorsa, başlatmayı deneyin: sudo systemctl start bind9.
Hata veriyorsa, log dosyalarını inceleyin (/var/log/syslog, /var/log/daemon.log) ve BIND yapılandırma dosyalarında (/etc/bind/named.conf) sözdizimi hataları olup olmadığını kontrol edin.
* Yapılandırma dosyalarını kontrol etmek için sudo named-checkconf ve sudo named-checkzone ornek.com /var/lib/bind/ornek.com.zone (slave için) komutlarını kullanabilirsiniz.
6. Virtualmin/Webmin Modül Sorunları
Sorun: Virtualmin arayüzünde DNS ayarları görünmüyor veya değişiklikler uygulanmıyor.
Çözüm:
* Webmin’de Servers -> BIND DNS Server modülünün kurulu ve etkin olduğundan emin olun.
* Webmin’i yeniden başlatmayı deneyin: sudo systemctl restart webmin.
* Virtualmin’in BIND yapılandırma dosyalarına yazma izinleri olduğundan emin olun.
Bu sorun giderme adımları, DNS slave otomatik yapılandırması sırasında karşılaşabileceğiniz çoğu sorunu çözmenize yardımcı olacaktır. Her zaman log dosyalarını kontrol etmek ve adım adım sorunları izole etmek en iyi yaklaşımdır.
Sonuç
Bu makalede, Virtualmin/Webmin yönetim paneli kullanarak Ubuntu üzerinde DNS slave sunucusunun nasıl kurulacağını ve otomatik olarak yapılandırılacağını ayrıntılı bir şekilde inceledik. DNS’in temel prensiplerinden başlayarak, ikincil DNS sunucularının neden kritik öneme sahip olduğunu, master ve slave sunucuların Virtualmin üzerinden nasıl yapılandırılacağını, otomatik senkronizasyon mekanizmalarını ve son olarak da kurulumu doğrulamak için test yöntemlerini ve yaygın sorun giderme adımlarını ele aldık.
Güçlü ve yedekli bir DNS altyapısı kurmak, herhangi bir çevrimiçi hizmetin kesintisiz çalışması için vazgeçilmezdir. Birincil sunucunun olası arızalarına karşı yedeklilik sağlamak, yükü dengelemek ve performansı artırmak, ikincil DNS sunucularının başlıca faydalarıdır. Virtualmin/Webmin gibi kullanıcı dostu paneller, bu karmaşık yapılandırma sürecini basitleştirerek sistem yöneticilerinin işini kolaylaştırır.
Artık, master DNS sunucunuzda yapılan tüm değişikliklerin (yeni bir kayıt ekleme, mevcut bir kaydı güncelleme veya silme gibi) Virtualmin’in otomatik bildirim ve bölge transferi mekanizmaları sayesinde slave sunucunuza sorunsuz bir şekilde yansıtılacağını biliyorsunuz. Bu otomasyon, DNS yönetimini daha verimli hale getirir ve insan hatası riskini azaltır.
Kurulumun ardından yapılan kapsamlı testler ve düzenli log takibi, DNS altyapınızın sağlıklı çalıştığından emin olmanız için kritik öneme sahiptir. Herhangi bir tutarsızlık veya hata durumunda, güvenlik duvarı ayarlarından rndc.key uyuşmazlıklarına kadar birçok potansiyel sorunu giderme yöntemlerini de öğrenmiş oldunuz.
Gelecekte, DNSSEC (DNS Security Extensions) gibi gelişmiş güvenlik önlemlerini uygulamak, daha fazla coğrafi konumda slave sunucular ekleyerek performansı ve erişilebilirliği artırmak veya gelişmiş DNS izleme araçlarını entegre etmek gibi adımlarla DNS altyapınızı daha da güçlendirebilirsiniz. Bu rehber, sağlam ve güvenilir bir DNS temeli oluşturmanız için gerekli tüm bilgileri sunmaktadır.