Pardus Sunucu Üzerinde DNS (BIND9) Kurulumu ve Yapılandırma

Pardus (Debian tabanlı) sunucunuz üzerinde BIND9 kullanarak yerel bir DNS sunucusu kurulumu, ağ yönetimi ve isim çözümleme süreçlerini profesyonelleştirmek için harika bir adımdır.


Aşağıda, belirttiğiniz yapılandırma bilgilerine göre hazırlanmış, adım adım kurulum yer almaktadır.

Senaryomuz:

  • 🖥 Sunucu IP: 192.168.101.250/24

  • 🏷 Hostname: pserver

  • 🌐 FQDN: pserver.bilisim.local

  • 🏫 Domain: bilisim.local

  • 🎯 Amaç: Yerel ağda DNS çözümlemesi öğretmek

Bu makale eğitim amaçlı, adım adım ve mantığıyla anlatılmıştır.


(pserver.bilisim.local – 192.168.101.250)


1️⃣ DNS Nedir? (Öğrencilere Anlatım Bölümü)

DNS (Domain Name System):

IP → 192.168.101.250
İsim → pserver.bilisim.local

DNS şunu yapar:

Öğrenci:  pserver.bilisim.local nedir?
DNS:      192.168.101.250

Yani DNS = Telefon rehberi mantığı


2️⃣ Neden BIND9 Kullanıyoruz?

En yaygın DNS sunucusudur:

  • Linux sistemlerde standarttır

  • Eğitim için idealdir

  • Gerçek internet DNS mantığıyla aynıdır


3️⃣ Sunucu Bilgilerini Hazırlama

Önce hostname ayarlayalım:

sudo hostnamectl set-hostname pserver

/etc/hosts dosyasını düzenleyin:

sudo nano /etc/hosts

Ekleyin:

192.168.101.250   pserver.bilisim.local   pserver

Kontrol:

hostname
hostname -f

Çıktı:

pserver
pserver.bilisim.local

4️⃣ BIND9 Kurulumu

sudo apt update
sudo apt install bind9 bind9utils bind9-doc -y

Servis kontrol:

sudo systemctl status bind9

5️⃣ DNS Zone Yapısını Anlamak

Biz 2 zone oluşturacağız:

1️⃣ Forward Zone → bilisim.local
2️⃣ Reverse Zone → 192.168.101.0/24


6️⃣ Named.conf.local Ayarları

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

Ekleyin:

zone "bilisim.local" {
    type master;
    file "/etc/bind/db.bilisim.local";
};

zone "101.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192.168.101";
};

7️⃣ Forward Zone Dosyası

Kopyalayalım:

sudo cp /etc/bind/db.local /etc/bind/db.bilisim.local
sudo nano /etc/bind/db.bilisim.local

İçeriği şu şekilde düzenleyin:

$TTL    604800
@       IN      SOA     pserver.bilisim.local. root.bilisim.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

@       IN      NS      pserver.bilisim.local.
@       IN      A       192.168.101.250

pserver        IN      A       192.168.101.250
www            IN      A       192.168.101.250

8️⃣ Reverse Zone Dosyası

sudo cp /etc/bind/db.127 /etc/bind/db.192.168.101
sudo nano /etc/bind/db.192.168.101

İçeriği:

$TTL    604800
@       IN      SOA     pserver.bilisim.local. root.bilisim.local. (
                              2
                         604800
                          86400
                        2419200
                         604800 )
;

@       IN      NS      pserver.bilisim.local.
250     IN      PTR     pserver.bilisim.local.

9️⃣ Yapılandırma Testi

sudo named-checkconf
sudo named-checkzone bilisim.local /etc/bind/db.bilisim.local
sudo named-checkzone 101.168.192.in-addr.arpa /etc/bind/db.192.168.101

Hata yoksa:

sudo systemctl restart bind9

🔟 Firewall Ayarı

sudo ufw allow 53

1️⃣1️⃣ DNS Testi (Sunucu Üzerinde)

dig pserver.bilisim.local

Reverse test:

dig -x 192.168.101.250

1️⃣2️⃣ İstemci Ayarı (Öğrenci Bilgisayarı)

İstemcinin DNS ayarına şunu yazın:

192.168.101.250

Test:

nslookup pserver.bilisim.local

📊 Eğitim İçin Ağ Diyagramı

                ┌──────────────────┐
                │     SWITCH       │
                └─────────┬────────┘
                          │
          ┌───────────────┼───────────────┐
          │                               │
   ┌──────────────┐               ┌──────────────┐
   │   pserver    │               │  Öğrenci PC  │
   │192.168.101.250│               │192.168.101.10│
   │ DNS Server   │               │ DNS: .250    │
   └──────────────┘               └──────────────┘

🎓 Öğrencilere Anlatılacak Kritik Konular

✔ A kaydı nedir?
✔ PTR kaydı nedir?
✔ SOA ne işe yarar?
✔ Serial neden artırılır?
✔ Forward vs Reverse zone farkı
✔ DNS cache mantığı


🧠 Gelişmiş Eğitim Senaryosu

Sonraki aşamada şunları yaptırabilirsiniz:

  • Öğrenciler kendi subdomainlerini oluştursun

    • ogrenci1.bilisim.local

  • Yanlış zone dosyası verip hata ayıklama yaptırın

  • DNS cache temizleme gösterin


🚀 Sonuç

Artık:

pserver.bilisim.local → 192.168.101.250
192.168.101.250 → pserver.bilisim.local

çözümlemesi çalışıyor 🎯





Bu makalede, 192.168.101.250 IP adresine sahip Pardus sunucumuzu, bilisim.local alan adını yönetecek şekilde bir DNS sunucusuna dönüştüreceğiz.

Sistem Bilgileri:

  • IP Adresi: 192.168.101.250

  • Hostname: pserver

  • Domain (FQDN): bilisim.local

  • Ağ Maskesi: /24 (255.255.255.0)


1. Adım: Gerekli Paketlerin Kurulumu

Öncelikle sistemimizi güncelliyoruz ve Linux dünyasının standart DNS yazılımı olan BIND9 paketini kuruyoruz.

Bash
sudo apt update
sudo apt install bind9 bind9utils bind9-doc -y

2. Adım: Local Hostname ve Hosts Yapılandırması

Sunucunun kendi ismini doğru çözümlemesi kritiktir. /etc/hostname ve /etc/hosts dosyalarını düzenleyin.

  • Hostname kontrolü: sudo hostnamectl set-hostname pserver

  • Hosts dosyası: sudo nano /etc/hosts içeriğini şu şekilde güncelleyin:

Plaintext
127.0.0.1       localhost
192.168.101.250 pserver.bilisim.local pserver

3. Adım: DNS Bölge (Zone) Tanımlamaları

BIND9'a hangi domainlerden sorumlu olduğunu söylememiz gerekiyor. Bunun için named.conf.local dosyasını kullanıyoruz.

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

Dosyanın sonuna aşağıdaki satırları ekleyin:

Plaintext
// Forward Zone (İsimden IP'ye)
zone "bilisim.local" {
    type master;
    file "/etc/bind/zones/db.bilisim.local";
};

// Reverse Zone (IP'den İsim'e)
zone "101.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/db.192.168.101";
};

4. Adım: Zone Dosyalarının Oluşturulması

Şimdi bu kayıtların tutulacağı klasörü ve dosyaları oluşturalım.

Bash
sudo mkdir /etc/bind/zones

A. İleri Yönlü (Forward) Kayıt Dosyası

sudo cp /etc/bind/db.local /etc/bind/zones/db.bilisim.local

sudo nano /etc/bind/zones/db.bilisim.local

İçeriği şu şekilde düzenleyin (Seri numarasını her güncellemede artırmayı unutmayın):

Plaintext
;
; BIND data file for bilisim.local
;
$TTL    604800
@       IN      SOA     pserver.bilisim.local. admin.bilisim.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      pserver.bilisim.local.
pserver IN      A       192.168.101.250
ns1     IN      CNAME   pserver

B. Ters Yönlü (Reverse) Kayıt Dosyası

sudo cp /etc/bind/db.127 /etc/bind/zones/db.192.168.101

sudo nano /etc/bind/zones/db.192.168.101

Plaintext
;
; BIND reverse data file for 192.168.101.0/24
;
$TTL    604800
@       IN      SOA     pserver.bilisim.local. admin.bilisim.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      pserver.bilisim.local.
250     IN      PTR     pserver.bilisim.local.

5. Adım: Forwarders ve Güvenlik Ayarları

Eğer DNS sunucunuz kendi içinde bulamadığı adresleri (örneğin: https://www.google.com/search?q=google.com) dışarıya sorsun istiyorsanız, named.conf.options dosyasını düzenlemelisiniz.

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

Plaintext
options {
        directory "/var/cache/bind";

        recursion yes;
        allow-query { localhost; 192.168.101.0/24; };

        forwarders {
                8.8.8.8;
                8.8.4.4;
        };

        dnssec-validation auto;
        listen-on-v6 { any; };
};

6. Adım: Kontrol ve Servisi Başlatma

Yaptığımız yazım hatalarını denetleyelim:

  • Konfigürasyon kontrolü: sudo named-checkconf (Hata yoksa çıktı vermez)

  • Zone kontrolü: sudo named-checkzone bilisim.local /etc/bind/zones/db.bilisim.local

Hata yoksa servisi yeniden başlatın:

Bash
sudo systemctl restart bind9
sudo systemctl enable bind9

7. Adım: Test Etme

Sunucunuzun üzerinden test yapmak için dig veya nslookup komutlarını kullanabilirsiniz:

  1. İleri yönlü test: dig pserver.bilisim.local

  2. Ters yönlü test: nslookup 192.168.101.250

Önemli Not: Ağınızdaki diğer istemcilerin (veya ETAP yüklü akıllı tahtaların) bu sunucuyu kullanabilmesi için, istemcilerin DNS adresi olarak 192.168.101.250 adresini tanımlamanız gerekmektedir.


Pardus sunucunuz üzerinde Web, Mail ve FTP servislerini yayına alabilmeniz için DNS bölge (zone) dosyanıza ilgili kayıtları eklememiz gerekiyor.

Daha önce oluşturduğumuz /etc/bind/zones/db.bilisim.local dosyasını aşağıdaki kayıtlarla güncelleyebilirsiniz.

1. Forward Zone (İleri Yönlü) Kayıtları

sudo nano /etc/bind/zones/db.bilisim.local komutu ile dosyayı açın ve içeriği şu şekilde zenginleştirin:

Plaintext
; ... (Önceki SOA ve NS kayıtları aynı kalacak) ...

; A Kayıtları (IP Tanımlamaları)
pserver     IN      A       192.168.101.250
www         IN      A       192.168.101.250  ; Web Sunucusu için
mail        IN      A       192.168.101.250  ; Mail Sunucusu için
ftp         IN      A       192.168.101.250  ; FTP Sunucusu için

; MX Kaydı (E-posta Yönlendirmesi)
; "10" öncelik değeridir. Mail trafiğinin hangi sunucuya gideceğini belirtir.
@           IN      MX  10  mail.bilisim.local.

; CNAME Kayıtları (Takma Adlar - İsteğe Bağlı)
; Eğer farklı isimlerin de aynı yere bakmasını isterseniz kullanabilirsiniz.
web         IN      CNAME   www
pop3        IN      CNAME   mail
smtp        IN      CNAME   mail

2. Reverse Zone (Ters Yönlü) Kayıtları

Mail sunucularının gönderdiği e-postaların "Spam"e düşmemesi için IP'den isme dönüş (PTR) kayıtları çok önemlidir.

sudo nano /etc/bind/zones/db.192.168.101 dosyasını açın ve eklemeleri yapın:

Plaintext
; ... (Önceki SOA ve NS kayıtları aynı kalacak) ...

250     IN      PTR     pserver.bilisim.local.
250     IN      PTR     www.bilisim.local.
250     IN      PTR     mail.bilisim.local.
250     IN      PTR     ftp.bilisim.local.

3. Değişiklikleri Uygulama

Her iki dosyada da değişiklik yaptıktan sonra Serial (Seri Numarası) kısmını bir artırmayı (örneğin 2 idi ise 3 yapın) unutmayın. Ardından ayarları kontrol edip servisi yeniden başlatın:

Bash
# Yazım hatalarını kontrol et
sudo named-checkconf
sudo named-checkzone bilisim.local /etc/bind/zones/db.bilisim.local

# Servisi yeniden başlat
sudo systemctl restart bind9

Kayıtların Açıklaması:

  • WWW (Web): Tarayıcıya www.bilisim.local yazıldığında web sunucunuza ulaşılmasını sağlar.

  • Mail & MX: E-posta sunucunuzun kimliğini tanımlar. MX kaydı olmadan dışarıdan e-posta alamazsınız.

  • FTP: Dosya transferi için ftp.bilisim.local adresini kullanmanıza olanak tanır.

Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu