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.250Hostname:
pserverDomain (FQDN):
bilisim.localAğ 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.
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 pserverHosts dosyası:
sudo nano /etc/hostsiçeriğini şu şekilde güncelleyin:
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:
// 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.
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):
;
; 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
;
; 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
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:
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:
İleri yönlü test:
dig pserver.bilisim.localTers 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.250adresini 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:
; ... (Ö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:
; ... (Ö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:
# 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.localyazıldığında web sunucunuza ulaşılmasını sağlar.Mail & MX: E-posta sunucunuzun kimliğini tanımlar.
MXkaydı olmadan dışarıdan e-posta alamazsınız.FTP: Dosya transferi için
ftp.bilisim.localadresini kullanmanıza olanak tanır.
Yorumlar