AlmaLinux'ta DNS Sunucusu Chroot Ortamı Nasıl Yapılandırılır

AlmaLinux’ta BIND DNS için güvenli bir chroot ortamının nasıl kurulacağını öğrenin.

BIND DNS sunucusu, Alan Adı Sistemi (DNS) hizmetlerini yönetmek için güçlü bir araçtır ve genellikle kurumsal ve küçük işletme ortamlarında kullanılır. Gelişmiş güvenlik için, BIND’i bir chroot ortamında çalıştırmak en iyi uygulamadır. “Kök değiştir” ifadesinin kısaltması olan Chroot, BIND işlemini belirli bir dizine sınırlayarak sistemin geri kalanından izole eden bir tekniktir. Bu, bir güvenlik ihlali durumunda ekstra bir koruma katmanı ekler.

Bu kılavuzda, AlmaLinux üzerinde BIND için bir chroot ortamı yapılandırma sürecini adım adım ele alacağız.


Chroot Ortamı Nedir?

chroot ortamı, bir işlem için sözde kök (/) görevi gören izole bir dizin yapısı oluşturur. Bu ortamın içinde çalışan işlem, tanımlanan chroot dizini dışındaki dosyalara ve dizinlere erişemez. Bu izolasyon, bir tehlike durumunda olası hasarı sınırladığı için DNS sunucuları gibi güvenlik açısından hassas uygulamalar için özellikle değerlidir.


BIND için Chroot Ortamı Neden Yapılandırılmalıdır?

  • Gelişmiş Güvenlik: BIND istismar edilirse saldırı yüzeyini sınırlar.
  • Uyumluluk: Birçok düzenleyici çerçevedeki güvenlik gereksinimlerini karşılar.
  • Daha İyi İzolasyon: Hataların veya yetkisiz değişikliklerin etkisini kısıtlar.

Önkoşullar

BIND için bir chroot ortamı yapılandırmak için şunlara ihtiyacınız olacak:

  1. Root veya sudo erişimi olan AlmaLinux çalıştıran bir sunucu.
  2. BIND kurulu (bind ve bind-chroot paketleri).
  3. Linux dosya izinleri ve DNS yapılandırması hakkında temel bilgi.

BIND ve Chroot Yardımcı Programlarını Yükleme

  1. BIND ve Chroot Paketlerini Yükleyin Gerekli paketleri yükleyerek başlayın:
sudo dnf install bind bind-utils bind-chroot
  1. Kurulumu Doğrulayın BIND sürümünü kontrol ederek kurulumu onaylayın:
named -v
  1. Chroot Modunu Etkinleştirin AlmaLinux, BIND’i bir chroot ortamında çalıştırmayı kolaylaştıran bind-chroot paketiyle birlikte gelir. Yüklendiğinde, BIND otomatik olarak /var/named/chroot konumunda bulunan chroot ortamında çalışır.

Chroot Ortamını Yapılandırma

1. Chroot Dizin Yapısını Doğrulayın

bind-chroot‘u yükledikten sonra, varsayılan chroot dizini /var/named/chroot konumunda kurulur. Yapısını doğrulayın:

ls -l /var/named/chroot

Standart dosya sistemini taklit eden etc, var ve var/named gibi dizinleri görmelisiniz.

2. Yapılandırma Dosyalarını Güncelleyin

BIND yapılandırma dosyalarının chroot dizinine yerleştirilmesi gerekir. Aşağıdaki dosyaları uygun konumlara taşıyın veya kopyalayın:

  • Ana Yapılandırma Dosyası (named.conf) Yapılandırma dosyanızı /var/named/chroot/etc/ dizinine kopyalayın:
sudo cp /etc/named.conf /var/named/chroot/etc/
  • Bölge Dosyaları Bölge dosyaları /var/named/chroot/var/named dizininde bulunmalıdır. Örneğin:
sudo cp /var/named/example.com.db /var/named/chroot/var/named/
  • rndc Anahtar Dosyası rndc.key dosyasını chroot dizinine kopyalayın:
sudo cp /etc/rndc.key /var/named/chroot/etc/

3. Doğru İzinleri Ayarlayın

chroot ortamındaki tüm dosya ve dizinlerin named kullanıcısına ve grubuna ait olduğundan emin olun:

sudo chown -R named:named /var/named/chroot

Uygun izinleri ayarlayın:

sudo chmod -R 750 /var/named/chroot

4. SELinux Politikalarını Ayarlayın

AlmaLinux varsayılan olarak SELinux kullanır. Chroot ortamı için SELinux bağlamlarını güncelleyin:

sudo semanage fcontext -a -t named_zone_t "/var/named/chroot(/.*)?"
sudo restorecon -R /var/named/chroot

semanage mevcut değilse, policycoreutils-python-utils paketini yükleyin:

sudo dnf install policycoreutils-python-utils

Chroot Modunda BIND’i Etkinleştirme ve Başlatma

  1. BIND’i Etkinleştirin ve Başlatın

BIND hizmetini başlatın. bind-chroot yüklendiğinde, BIND otomatik olarak chroot ortamında çalışır:

sudo systemctl enable named
sudo systemctl start named
  1. BIND Durumunu Kontrol Et

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

sudo systemctl status named

Yapılandırmayı Test Etme

1. Bölge Dosyası Sözdizimini Test Etme

Bölge dosyalarınızı doğrulamak için named-checkzone kullanın:

sudo named-checkzone example.com /var/named/chroot/var/named/example.com.db

2. Yapılandırma Sözdizimini Test Etme

Ana yapılandırma dosyasını hatalara karşı kontrol edin:

sudo named-checkconf /var/named/chroot/etc/named.conf

3. DNS Sunucusunu Sorgulayın

Sunucuyu sorgulamak ve adları doğru şekilde çözümlediğini doğrulamak için dig komutunu kullanın:

dig @127.0.0.1 example.com

Uygun DNS kayıtlarını içeren bir yanıt görmelisiniz.


Chroot Ortamını Bakımını Yapma

1. Bölge Dosyalarını Güncelleme

Bölge dosyalarını güncellerken, değişikliklerin chrooted dizininde (/var/named/chroot/var/named) yapıldığından emin olun. Güncellemeleri yaptıktan sonra, SOA kaydındaki seri numarasını artırın ve yapılandırmayı yeniden yükleyin:

sudo rndc reload

2. İzleme Günlükleri

chroot edilmiş BIND sunucusunun günlükleri /var/named/chroot/var/log dizininde saklanır. named.conf dosyanızın doğru yolları belirttiğinden emin olun:

logging {
channel default_debug {
file "/var/log/named.log";
juice dynamic;
};
};

3. Yedeklemeler

chroot ortamını düzenli olarak yedekleyin. Yapılandırma dosyalarını ve bölge verilerini ekleyin:

sudo tar -czvf bind-chroot-backup.tar.gz /var/named/chroot

Sorun Giderme İpuçları

  1. Hizmet Başlatılamıyor:
  • SELinux politikalarını ve izinlerini kontrol edin.
  • /var/named/chroot/var/log içindeki günlükleri inceleyin.
  1. Yapılandırma Hataları: Sorunları belirlemek için named-checkconf ve named-checkzone çalıştırın.

  2. DNS Sorguları Başarısız: Güvenlik duvarı kurallarının DNS trafiğine izin verdiğinden emin olun (port 53):

sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
  1. Eksik Dosyalar: Gerekli tüm dosyaların (örn. rndc.key) chroot dizinine kopyalandığını doğrulayın.

BIND’i Chroot Ortamında Çalıştırmanın Faydaları

  1. Geliştirilmiş Güvenlik: BIND’i dosya sisteminin geri kalanından izole ederek, güvenlik açıklarından kaynaklanabilecek olası hasarı azaltır.
  2. Düzenleyici Uyumluluk: Hizmet izolasyonu gerektiren standartları karşılar.
  3. Yönetim Kolaylığı: DNS ile ilgili dosyaları merkezileştirerek bakımı basitleştirir.

Sonuç

AlmaLinux’ta BIND DNS sunucusu için bir chroot ortamı yapılandırmak, DNS hizmetlerini yöneten yöneticiler için güvenliği artırır ve gönül rahatlığı sağlar. Chroot kurulumu biraz karmaşıklık eklese de, eklenen koruma katmanı çabaya değer. Bu kılavuzu izleyerek, artık güvenli bir chroot’lu BIND DNS sunucusunu etkili bir şekilde kurma ve yönetme bilgisine sahipsiniz.

Daha fazla bilgi edinmek için resmi BIND belgelerini veya AlmaLinux topluluk kaynaklarını inceleyin.