Harici Bir Ağ İçin BIND DNS Sunucusu Nasıl Yapılandırılır

Bu kılavuz, AlmaLinux’ta bir BIND DNS sunucusunun kurulumu ve yapılandırılması için adım adım talimatlar sağlayacaktır.

BIND DNS Sunucusu (Berkeley İnternet Adı Alanı), hem dahili hem de harici ağlar için en yaygın kullanılan DNS sunucusu yazılım çözümlerinden biridir. BIND’i harici bir ağ için yapılandırmak, internet kullanıcıları için alan adlarını çözebilen genel kullanıma açık bir DNS sunucusu oluşturmayı içerir. Bu kılavuz, AlmaLinux’ta harici DNS sorgularını güvenli ve verimli bir şekilde işlemek için bir BIND DNS sunucusunu kurma ve yapılandırma konusunda adım adım talimatlar sağlayacaktır.


DNS Sunucusu Nedir?

Bir DNS sunucusu, insan tarafından okunabilen alan adlarını (örneğin example.com) makine tarafından okunabilen IP adreslerine (örneğin 192.168.1.1) dönüştürür. Harici ağlar için DNS sunucuları, internete ad çözümleme hizmetleri sağlamak açısından kritik öneme sahiptir.

Harici Ağlar için DNS Sunucusunun Temel Özellikleri

  1. Yetkili Çözümleme: Yönettiği alan adları için yetkili yanıtlarla yanıt verir. 2. Yinelenen Çözümleme: Yönetmediği etki alanları için sorguları diğer DNS sunucularına başvurarak işler (etkinleştirilmişse).
  2. Önbelleğe Alma: Sorgu süresini azaltmak ve performansı artırmak için yanıtları depolar.
  3. Ölçeklenebilirlik: Büyük ölçekli etki alanı yönetimini ve yüksek sorgu yüklerini destekler.

Genel DNS Sunucusu İçin AlmaLinux Neden Kullanılmalıdır?

  • Kurumsal Düzeyde Kararlılık: Sağlam performansa sahip üretim ortamları için üretilmiştir.
  • Güvenlik: SELinux’u içerir ve modern güvenlik protokollerini destekler.
  • Uyumluluk: BIND ve ilgili DNS araçlarıyla kolayca entegre olur.

Harici Ağlar İçin BIND Kurulumu İçin Ön Koşullar

Sunucuyu yapılandırmadan önce:

  1. AlmaLinux Kurulu: AlmaLinux 8 veya sonraki sürümünün temiz bir kurulumunu kullanın. 2. Kök Ayrıcalıkları: Yönetici erişimi gereklidir.
  2. Statik Genel IP: Sunucunun sabit bir genel IP adresine sahip olduğundan emin olun.
  3. Kayıtlı Alan: DNS delegasyonu için bir alan adına ve kayıt kuruluşuna erişime ihtiyacınız vardır.
  4. Güvenlik Duvarı Erişimi: DNS trafiği (TCP/UDP) için 53 numaralı portu açın.

1. Adım: AlmaLinux’a BIND yükleyin

1.1. Adım: Sistemi Güncelleyin

Sistem paketlerinizi en son sürümlere güncelleyin:

sudo dnf update -y

1.2. Adım: BIND ve Yardımcı Programları Yükleyin

BIND DNS sunucusu paketini ve yardımcı programlarını yükleyin:

sudo dnf install bind bind-utils -y

1.3. Adım: Kurulumu Doğrulayın

BIND’in yüklendiğinden emin olun ve sürümünü kontrol edin:

named -v

2. Adım: BIND’i Harici Ağlar için Yapılandırın

2.1. Adım: Varsayılan Yapılandırmayı Yedekleyin

Varsayılan yapılandırma dosyasının bir yedeğini oluşturun:

sudo cp /etc/named.conf /etc/named.conf.bak

Adım 2.2: Yapılandırma Dosyasını Düzenleme

Düzenleme için yapılandırma dosyasını açın:

sudo nano /etc/named.conf

Aşağıdaki bölümleri değiştirin:

  1. Genel IP’de Dinle: 127.0.0.1‘i sunucunuzun genel IP adresiyle değiştirin:
options {
listen-on port 53 { 192.0.2.1; }; # Genel IP'nizle değiştirin
allow-query { any; }; # Herhangi bir IP'den gelen sorgulara izin ver
recursion no; # Güvenlik için recursion'ı devre dışı bırak
};
  1. Alanınız için Bir Bölge Ekleyin: Harici alan adınız için bir bölge tanımlayın:
zone "example.com" IN {
type master;
file "/var/named/example.com.zone";
};

Adım 2.3: Kaydet ve Çık

Dosyayı kaydet (Ctrl + O) ve çık (Ctrl + X).


Adım 3: Alan Adınız İçin Bir Bölge Dosyası Oluştur

Adım 3.1: Bölge Dosyasını Oluştur

/var/named/ dizininde yeni bir bölge dosyası oluştur:

sudo nano /var/named/example.com.zone

Adım 3.2: DNS Kayıtları Ekle

Alan adınız için DNS kayıtlarını tanımla:

$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023120901 ; Seri
3600 ; Yenile
1800 ; Yeniden Dene
1209600 ; Son Kullanma Tarihi
86400 ); ; Minimum TTL

IN NS ns1.example.com.
IN NS ns2.example.com.

ns1 IN A 192.0.2.1 ; Genel IP'nizle değiştirin
ns2 IN A 192.0.2.2 ; İkincil DNS sunucusu
www IN A 192.0.2.3 ; Örnek web sunucusu
@ IN A 192.0.2.3 ; Kök etki alanı web sunucusuna işaret ediyor

Adım 3.3: İzinleri Ayarla

Bölge dosyasının doğru sahipliğe ve izinlere sahip olduğundan emin olun:

sudo chown root:named /var/named/example.com.zone
sudo chmod 640 /var/named/example.com.zone

Adım 4: BIND Hizmetini Başlatın ve Etkinleştirin

Adım 4.1: BIND’i Önyüklemede Başlatacak Şekilde Etkinleştirin

sudo systemctl enable named

Adım 4.2: Hizmeti Başlatın

sudo systemctl start named

Adım 4.3: Hizmet Durumunu Kontrol Edin

Hizmetin çalıştığını doğrulayın:

sudo systemctl status named

Adım 5: Güvenlik Duvarını Yapılandırın

Adım 5.1: DNS Trafiğine İzin Verin

Hem TCP hem de UDP trafiği için 53 numaralı portu açın:

sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload

Adım 5.2: Güvenlik Duvarı Kurallarını Doğrulayın

DNS trafiğine izin verildiğinden emin olun:

sudo firewall-cmd --list-all

Adım 6: Alan Adınızı Delege Edin

Alan adı kayıt kuruluşunuzda, alan adınızın NS (Ad Sunucusu) kayıtlarını DNS sunucunuzu işaret edecek şekilde yapılandırın. Örneğin:

  • NS1: ns1.example.com -> 192.0.2.1
  • NS2: ns2.example.com -> 192.0.2.2

Bu, etki alanınız için harici sorguların BIND sunucunuza yönlendirilmesini sağlar.


7. Adım: DNS Sunucunuzu Test Edin

7.1. Adım: dig komutunu kullanın

dig komutunu kullanarak etki alanı çözümlemesini test edin:

dig @192.0.2.1 example.com

7.2. Adım: nslookup komutunu kullanın

Alternatif olarak, nslookup komutunu kullanın:

nslookup example.com 192.0.2.1

7.3. Adım: Günlükleri İzleyin

Herhangi bir hata veya sorgu ayrıntısı için BIND günlüklerini kontrol edin:

sudo tail -f /var/log/messages

Güvenlik ve Performans için Gelişmiş Yapılandırma

Seçenek 1: DNSSEC’yi Etkinleştirin

DNS sunucunuzu DNSSEC ile güvence altına alarak sahtecilik:

  1. DNSSEC anahtarları oluşturun:
dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com
  1. Anahtarları bölge dosyanıza ekleyin.

Seçenek 2: Hız Sınırlaması

Sorgu hızlarını sınırlayarak kötüye kullanımı önleyin:

rate-limit {
responses-per-second 10;
};

Seçenek 3: İkincil bir DNS Sunucusu Kurun

İkincil bir DNS sunucusuyla güvenilirliği artırın. Birincil sunucunun yapılandırmasını güncelleyin:

allow-transfer { 192.0.2.2; }; # İkincil sunucu IP'si

Yaygın Sorunları Giderme

Sorun 1: “DNS Sunucusu Yanıt Vermiyor”

  • Neden: Güvenlik duvarı trafiği engelliyor.
  • Çözüm: 53 numaralı bağlantı noktasının açık ve DNS hizmetinin etkin olduğundan emin olun.

Sorun 2: “Bölge Dosyası Hataları”

  • Neden: Bölge dosyasında sözdizimi sorunları.
  • Çözüm: Bölge dosyasını doğrulayın:
named-checkzone example.com /var/named/example.com.zone

Sorun 3: “BIND Hizmeti Başlatılamıyor”

  • Neden: /etc/named.conf dosyasında yapılandırma hataları. - Çözüm: Sözdizimi hatalarını kontrol edin:
named-checkconf

Sonuç

AlmaLinux’ta harici bir ağ için BIND’yi yapılandırmak, alan adlarını barındıran veya halka açık DNS hizmetlerini yöneten herkes için kritik bir görevdir. Bu kılavuzu izleyerek, internet için alan adlarını çözebilen sağlam ve güvenli bir DNS sunucusu kurabilirsiniz.

DNSSEC, ikincil sunucular ve hız sınırlaması gibi gelişmiş seçeneklerle, DNS altyapınızın güvenliğini ve performansını daha da artırabilirsiniz. Sorunlarla karşılaşırsanız veya paylaşacak ipuçlarınız varsa, aşağıya bir yorum bırakın. İyi barındırmalar!