DNS (Domain Name System), internete bağlı cihazların birbirlerini tanıması ve iletişim kurabilmesi için alan adlarını IP adreslerine çeviren kritik bir sistemdir. DNS sunucuları, web sitelerine ve çevrimiçi hizmetlere erişim sağlanırken tarayıcıların kullanıcı dostu alan adlarını, makinelerin anlayabileceği IP adreslerine dönüştürmesine olanak tanır. İşletmeler ve internet servis sağlayıcıları (ISP’ler) için kendi DNS sunucularını kurmak ve yönetmek, daha hızlı ve güvenli internet erişimi sağlama açısından büyük avantajlar sunar. Bu yazıda, Linux tabanlı bir DNS sunucusunun nasıl kurulacağı ve yönetileceği adım adım anlatılacaktır.
Bir DNS sunucusu kurarak işletmenize veya ağınıza şu faydaları sağlayabilirsiniz:
Bu kılavuzda, popüler ve güvenilir bir DNS sunucu yazılımı olan BIND (Berkeley Internet Name Domain) kullanılarak bir DNS sunucusunun kurulumu ve yönetimi ele alınacaktır. BIND, açık kaynak kodlu ve yaygın olarak kullanılan bir DNS sunucusudur.
Başlamadan önce, Linux sunucunuzun güncel olduğundan emin olun. DNS sunucusunu kuracağınız makinenin statik bir IP adresi olmalıdır, çünkü dinamik IP adresleri DNS hizmeti için uygun değildir.
Sunucuyu güncelleyin:
sudo apt-get update
sudo apt-get upgrade
Kurulum tamamlandıktan sonra BIND yapılandırma dosyalarını düzenlemeniz gerekmektedir. BIND’in ana yapılandırma dosyası /etc/bind/named.conf dosyasıdır.
BIND konfigürasyon dosyasını açın:
sudo nano /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
recursion yes;
allow-query { any; };
forwarders {
8.8.8.8; // Google DNS
8.8.4.4; // Google DNS
};
dnssec-validation auto;
auth-nxdomain no;
listen-on-v6 { any; };
};
allow-query
satırına yerel IP adresi bloğunuzu ekleyin. Örneğin, 192.168.1.0/24:Şimdi alan adlarınızı DNS sunucusuna tanımlayarak, kendi bölge (zone) dosyalarınızı oluşturmanız gerekmektedir.
Yeni bir DNS bölgesi tanımlayın:
/etc/bind/named.conf.local dosyasını açın ve yeni bir alan adı için aşağıdaki gibi bir yapılandırma ekleyin:
zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
};
Yapılandırmayı tamamladıktan sonra DNS sunucusunu yeniden başlatıp doğru çalıştığından emin olmak için testler yapmanız gerekir.
BIND’i yeniden başlatın:
sudo systemctl restart bind9
DNS sunucunuzun güvenliğini artırmak için aşağıdaki adımları uygulayın:
Güvenlik Duvarı (Firewall): Yalnızca belirli IP adreslerinin DNS sunucunuza erişmesine izin vermek için güvenlik duvarı yapılandırmasını yapın.
sudo ufw allow from 192.168.1.0/24 to any port 53
DNSSEC Kullanımı: DNSSEC (Domain Name System Security Extensions), DNS verilerinin güvenliğini sağlamak için kullanılabilir. DNSSEC kullanarak verilerin sahte olup olmadığını doğrulayabilirsiniz. BIND, DNSSEC desteğine sahiptir ve doğru yapılandırma ile kullanılabilir.
Cache Ayarları: DNS sunucunuzun yanıt sürelerini optimize etmek için cache ayarlarını yapabilirsiniz. Böylece sık sorulan DNS sorguları için sunucunuz daha hızlı yanıt verebilir.
Loglama: DNS sunucunuzun performansını ve güvenliğini izlemek için loglama ayarlarını etkinleştirin. /etc/bind/named.conf.options
dosyasına loglama bölümü ekleyebilirsiniz:
logging {
channel default_file {
file "/var/log/named/general.log" versions 3 size 5m;
print-time yes;
print-severity yes;
print-category yes;
};
category default { default_file; };
};
Bu ayarlar, DNS sunucunuzda meydana gelen olayları kaydedecek ve olası sorunları tespit etmenizi kolaylaştıracaktır. Loglama sayesinde, DNS sunucusunun doğru çalışıp çalışmadığını izleyebilir, hataları tespit edebilir ve güvenlik ihlallerini gözlemleyebilirsiniz. Log dosyalarınız belirli bir boyuta ulaştığında otomatik olarak döndürülecek (rotation) ve eski loglar silinerek yeni loglar kaydedilecektir.
Bir DNS sunucusunu kurduktan sonra, onu düzenli olarak izlemek ve yönetmek gereklidir. İşte DNS sunucunuzun performansını ve güvenliğini artırmak için yapabileceğiniz bazı önemli yönetim görevleri:
DNS Kayıtlarını Güncelleme: Alan adlarınızın IP adresleri veya diğer kayıtları değiştiğinde bölge dosyalarınızı güncellemeniz gerekecektir. Herhangi bir değişiklik yaptıktan sonra BIND’i yeniden başlatarak yeni yapılandırmayı devreye sokun:
sudo systemctl restart bind9
Performans İzleme: DNS sunucunuzun yanıt sürelerini izlemek ve optimize etmek için izleme araçları kullanın. Zabbix, Nagios veya Munin gibi izleme yazılımlarıyla DNS sunucusunun performansını sürekli takip edebilir ve olası performans sorunlarını tespit edebilirsiniz.
Sık Sorulan Sorular İçin Cache Kullanımı: DNS sorgularının yanıt sürelerini hızlandırmak için cache kullanımı önemlidir. Sıkça sorulan DNS sorgularının bellekte tutulması, aynı sorgunun tekrar tekrar yapılması durumunda hız kazanmanızı sağlar. Bu da özellikle yüksek trafik alan DNS sunucularında performans artırır.
DNSSEC Kullanarak Güvenliği Artırma: DNSSEC, DNS verilerini kimlik doğrulama ve sahte verilerden koruma imkanı sağlar. DNSSEC etkinleştirilmiş bir DNS sunucusu, sahte DNS cevaplarının ve man-in-the-middle saldırılarının önüne geçebilir. DNSSEC yapılandırmasını doğru bir şekilde yapmak, sunucunuzun güvenliğini büyük ölçüde artıracaktır.
Güvenlik Güncellemeleri: BIND ve diğer sunucu yazılımlarını düzenli olarak güncelleyerek olası güvenlik açıklarını kapatın. Güvenlik güncellemeleri ihmal edilmemeli ve en son güvenlik yamalarının her zaman uygulanması gereklidir.
Kendi DNS sunucunuzu kurarak, hem performans hem de güvenlik açısından büyük avantajlar elde edebilirsiniz. Bu yazıda adım adım DNS sunucusu kurulumunu, yapılandırmayı ve yönetimi ele aldık. DNS sunucunuzun doğru çalıştığından emin olmak için gerekli testleri yaparak, güvenlik ve performans optimizasyonlarını düzenli olarak uygulayabilirsiniz. DNS sunucusu, internet erişiminin kritik bir parçası olduğundan, sürekli izleme ve güncellemelerle sorunsuz çalışmasını sağlamak oldukça önemlidir.
Kurulum ve yönetim aşamalarına dikkat ederek, işletmenize uygun güvenli ve yüksek performanslı bir DNS çözümü oluşturabilirsiniz.