Linux DNS sunucu yapılandırması, Linux üzerinde DNS yazılımının (BIND9, Unbound veya PowerDNS gibi) kurulması, güvenliğinin sağlanması ve alan adı kayıtlarının çözümlenmesi (özyinelemeli) ve/veya barındırılması (yetkili) işlemidir.
Bu kılavuz, 2026 ortamları ve modern Linux dağıtımları için optimize edilmiş adım adım kurulum, en iyi uygulamalar, güvenlik (DNSSEC, TSIG) ve sorun giderme konularını açıklamaktadır.
Linux'ta güvenilir bir DNS kurulumu, öğrenebileceğiniz en değerli sistem yöneticiliği becerilerinden biridir. Bu başlangıç seviyesine uygun Linux DNS sunucu yapılandırma kılavuzunda, önbellekleme ve yetkili DNS'i kuracak, güvenliğini sağlayacak ve büyük ölçekli barındırma için kullandığımız üretime hazır kalıpları öğreneceksiniz.
İster dahili bir çözümleyici, ister halka açık bir ad sunucusu veya bölünmüş ufuklu DNS oluşturuyor olun, bu 2026 için eksiksiz bir kılavuzdur.
DNS nasıl çalışır?
DNS, insan tarafından okunabilir alan adlarını kayıtlar (A/AAAA, CNAME, MX, TXT, NS, PTR) kullanarak IP adreslerine çevirir. İki ana rolü vardır:

Linux üzerinde bu rollerden birini veya her ikisini de çalıştırabilirsiniz. Güvenlik açısından, üretim ortamında bunları ayrı tutun.
2026'da DNS Yazılımı Seçimi
Kullanım senaryonuza ve operasyonel rahatlığınıza göre yazılım seçin. Bunlar 2026'da en yaygın ve en iyi desteklenen yazılımlardır:
Önkoşullar ve Planlama
Kurulumdan önce rolü belirleyin (özyinelemeli mi yoksa yetkili mi) ve hazırlıkları yapın:
Önbelleğe alma özelliğine sahip bir DNS çözümleyici yükleyin (öncelikle önerilir)
Seçenek A: BIND9'u Yalnızca Önbellekleme Amaçlı Çözümleyici Olarak Kullanma (Ubuntu/Debian)
Ubuntu/Debian'da BIND9'u kurun ve yönlendirme (isteğe bağlı) ve DNSSEC doğrulamasıyla güvenli özyinelemeli çalıştırma yapacak şekilde yapılandırın.
sudo apt update && sudo apt install bind9 bind9-utils bind9-dnsutils -y
# /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; };
listen-on { 127.0.0.1; 10.0.0.10; }; // replace with your IP
listen-on-v6 { none; };
dnssec-validation auto;
// Optional: use upstream forwarders (ISP, Google, Cloudflare)
forwarders {
1.1.1.1;
8.8.8.8;
};
// Hardening
minimal-responses yes;
rate-limit {
responses-per-second 10;
};
};
sudo named-checkconf
sudo systemctl enable --now named
sudo systemctl restart named
Sunucunuzun çözümleyicisini kendisine yönlendirin:
# If systemd-resolved is managing resolv.conf, disable it:
sudo systemctl disable --now systemd-resolved
sudo rm -f /etc/resolv.conf
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
Seçenek B: Önbellek Çözümleyici Olarak Unbound (RHEL/Alma/Rocky/Ubuntu)
Unbound, varsayılan olarak minimal ve güvenlidir. Erişim kontrolü ve DNSSEC doğrulaması ile kurun ve yapılandırın.
# RHEL family
sudo dnf install -y unbound
# Ubuntu/Debian
sudo apt update && sudo apt install -y unbound
# /etc/unbound/unbound.conf.d/local.conf
server:
interface: 0.0.0.0
access-control: 127.0.0.0/8 allow
access-control: 10.0.0.0/8 allow
access-control: 192.168.0.0/16 allow
hide-identity: yes
hide-version: yes
qname-minimisation: yes
harden-referral-path: yes
val-log-level: 1
auto-trust-anchor-file: "/var/lib/unbound/root.key"
forward-zone:
name: "."
forward-addr: 1.1.1.1
forward-addr: 8.8.8.8
sudo unbound-anchor -a /var/lib/unbound/root.key
sudo unbound-checkconf
sudo systemctl enable --now unbound
Müşterilerinizi Sorun Çözücünüze Yönlendirin
BIND9 ile Yetkili Bir DNS Sunucusu Yapılandırın
Herkese açık DNS için, yetkili ve özyinelemeli rolleri farklı sunucularda çalıştırın. Burada yalnızca yetkili hizmeti etkinleştirin (özyinelemeyi devre dışı bırakın).
Temel Güvenlik: Özyinelemeyi Devre Dışı Bırak, Erişim Kontrol Listelerini Ayarla
# /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
recursion no;
allow-query { any; };
allow-transfer { key "xfr-key"; 203.0.113.10; }; // secondary NS
dnssec-enable yes;
dnssec-validation auto;
listen-on { 203.0.113.5; }; // public IP
listen-on-v6 { none; };
minimal-responses yes;
};
key "xfr-key" {
algorithm hmac-sha256;
secret "BASE64_TSIG_SECRET";
};
İleri Bölge Oluşturun
# /etc/bind/named.conf.local
zone "example.com" IN {
type master;
file "/etc/bind/zones/db.example.com";
allow-transfer { key "xfr-key"; 203.0.113.10; };
also-notify { 203.0.113.10; };
};
# /etc/bind/zones/db.example.com
$TTL 300
@ IN SOA ns1.example.com. admin.example.com. (
2026010101 ; Serial: YYYYMMDDnn
3600 ; Refresh
900 ; Retry
1209600 ; Expire
300 ) ; Minimum
IN NS ns1.example.com.
IN NS ns2.example.com.
ns1 IN A 203.0.113.5
ns2 IN A 203.0.113.10
@ IN A 203.0.113.20
www IN A 203.0.113.21
api IN A 203.0.113.22
mail IN A 203.0.113.23
@ IN MX 10 mail.example.com.
@ IN TXT "v=spf1 a mx -all"
Ters Bölge (PTR) Oluştur
# /etc/bind/named.conf.local (append)
zone "113.0.203.in-addr.arpa" IN {
type master;
file "/etc/bind/zones/db.203.0.113";
};
# /etc/bind/zones/db.203.0.113
$TTL 300
@ IN SOA ns1.example.com. admin.example.com. (
2026010101 3600 900 1209600 300 )
IN NS ns1.example.com.
5 IN PTR ns1.example.com.
20 IN PTR example.com.
21 IN PTR www.example.com.
Doğrula ve yeniden yükle:
sudo named-checkconf
sudo named-checkzone example.com /etc/bind/zones/db.example.com
sudo named-checkzone 113.0.203.in-addr.arpa /etc/bind/zones/db.203.0.113
sudo systemctl reload named
Gelişmiş Üretim Özellikleri
Bölünmüş Ufuk DNS (Görünümler)
İç ve dış müşterilere farklı yanıtlar sunun. Örnek: internal.example.com Ağınızdaki özel IP adreslerine çözümlenir.
acl "internal" { 10.0.0.0/8; 192.168.0.0/16; };
view "internal" {
match-clients { "internal"; };
recursion yes;
zone "example.com" { type master; file "/etc/bind/zones/db.example.com.internal"; };
};
view "external" {
match-clients { any; };
recursion no;
zone "example.com" { type master; file "/etc/bind/zones/db.example.com.public"; };
};
DNSSEC İmzalama
DNSSEC, veri bütünlüğü ve kaynak kimlik doğrulaması sağlar. BIND9'da, satır içi imzalama kullanılır.
# /etc/bind/named.conf.local (zone with inline-signing)
zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
inline-signing yes;
auto-dnssec maintain;
key-directory "/etc/bind/keys";
};
# Generate keys
cd /etc/bind/keys
sudo dnssec-keygen -a ECDSAP256SHA256 -n ZONE example.com
sudo dnssec-keygen -f KSK -a ECDSAP256SHA256 -n ZONE example.com
# Reload and publish DS record at your registrar
sudo rndc reload
# Extract DS:
dnssec-dsfromkey -f Kexample.com.+013+*.key example.com
TSIG ile Güvenli Bölge Transferleri
Birincil ve ikincil ad sunucuları arasındaki aktarımları doğrulamak için TSIG'yi kullanın.
# Create key on primary:
sudo tsig-keygen -a hmac-sha256 xfr-key > /etc/bind/keys/xfr-key.key
# Include on both primary and secondary:
include "/etc/bind/keys/xfr-key.key";
# Primary zone stanza
allow-transfer { key xfr-key; 203.0.113.10; };
also-notify { 203.0.113.10; };
Hız Sınırlama ve Kayıt Tutma
Yanıt hızı sınırlaması kullanarak kötüye kullanımı önleyin ve yapılandırılmış kayıtlar tutun.
# Example logging in /etc/bind/named.conf
logging {
channel default_log {
file "/var/log/named/default.log" versions 5 size 10m;
severity info;
print-time yes;
};
category default { default_log; };
category queries { default_log; };
};
Sistem Entegrasyonu ve Güçlendirme
Güvenlik Duvarı ve SELinux/AppArmor
Sistem d-çözümlü Etkileşimler
Ubuntu'da, systemd-resolved yönetebilir /etc/resolv.confYerel çözümleyiciler için devre dışı bırakın ve 127.0.0.1 adresine yönlendirin. Masaüstü bilgisayarlarda etkin bırakın ve NetworkManager aracılığıyla çözümleyicinize yönlendirin.
İzleme ve Ölçümler
Sorun Giderme ve Sık Karşılaşılan Hatalar
Temel kazı komutları
# Test recursion
dig qloudhost.com @127.0.0.1
# Test authoritative NS and SOA
dig NS example.com @203.0.113.5
dig SOA example.com @203.0.113.5
# Trace resolution path
dig +trace example.com
# DNSSEC validation status (ad flag)
dig +dnssec example.com
# Reverse lookup
dig -x 203.0.113.20 @203.0.113.5
Sık Karşılaşılan Sorunlara Yönelik Çözümler
En İyi Uygulamalar Kontrol Listesi (2026)
Yönetilen DNS'i Ne Zaman Kullanmalısınız? (Zaman ve Riskten Tasarruf Edin)
Küresel anycast, yerleşik DDoS koruması, DNS analizi ve %100 çalışma süresi SLA'larına ihtiyacınız varsa, yönetilen DNS, kendi başınıza yapacağınız çözümlerden daha iyi performans gösterebilir. QloudHostBarındırma ve bulut altyapılarımız, birinci sınıf DNS sağlayıcılarıyla entegre olur ve yönetilen hizmetler ekibimiz, tek bir bölge dosyasına dokunmanıza gerek kalmadan BIND/Unbound'u yapılandırabilir veya sizi dayanıklı, API tabanlı bir DNS iş akışına geçirebilir.
Adım Adım Mini Hızlı Başlangıç Kılavuzu (Kopyala/Yapıştır)
Önbellek Çözümleyici (Unbound) 60 Saniyede
sudo apt update && sudo apt install -y unbound
sudo bash -c 'cat >/etc/unbound/unbound.conf.d/local.conf' <<'EOF'
server:
interface: 127.0.0.1
access-control: 127.0.0.0/8 allow
qname-minimisation: yes
auto-trust-anchor-file: "/var/lib/unbound/root.key"
forward-zone:
name: "."
forward-addr: 1.1.1.1
forward-addr: 8.8.8.8
EOF
sudo unbound-anchor -a /var/lib/unbound/root.key
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
sudo systemctl enable --now unbound
dig qloudhost.com @127.0.0.1
Çözümleniyor DNS_PROBE_FINISHED_NXDOMAIN hata Özellikle Linux tabanlı bir sistemde çalışıyorsanız, bu işlem genellikle sistem DNS ayarlarını düzenlemeyi içerir. DNS'nin Linux ortamlarında nasıl çalıştığına dair adım adım bir kılavuz için (düzenlemeden başlayarak) aşağıdaki adımları izleyin. /etc/resolv.conf Önbellekleme ve özel ad sunucularının yapılandırılmasına ilişkin ek kaynak, DNS kurulumunuzu iyileştirmenize ve gelecekte benzer bağlantı sorunlarından kaçınmanıza yardımcı olacaktır.
Sıkça Sorulan Sorular: Linux DNS Sunucusu Yapılandırması 2026
2026'da önbelleğe alma özellikli bir DNS sunucusu için BIND9 mu yoksa Unbound mu daha iyi?
Unbound, güçlü varsayılan ayarları, güvenlik duruşu ve basitliği nedeniyle genellikle yalnızca önbellekleme için daha iyidir. BIND9, zaten standart olarak kullanıyorsanız veya görünümler veya entegre politikalar gibi özelliklere ihtiyacınız varsa uygundur. Birçok ekip özyineleme için Unbound'ı, yetkili işlemler için ise BIND9 veya PowerDNS'i kullanır.
Yetkili DNS sunucumu nasıl güvenli hale getirebilirim?
Özyinelemeyi devre dışı bırakın, TSIG ve IP ACL'leri ile aktarımları sınırlayın, DNSSEC imzalama özelliğini etkinleştirin, minimum yanıt sürelerini ve hız sınırlamasını açın, yazılımı güncel tutun ve günlükleri izleyin. Yetkili sunucuları halka açık olduğunda anycast veya DDoS saldırılarına dayanıklı bir ağın arkasına yerleştirin.
DNS'in doğru çalışması için hangi portların açık olması gerekir?
Sorgular için UDP 53 portunu ve büyük yanıtlar, bölge transferleri ve DNSSEC için TCP 53 portunu açın. TCP/53 portuna her iki yönde de izin verildiğinde birçok "gizemli" hata ortadan kalkar.
Yalnızca dahili ağ için DNSSEC'e ihtiyacım var mı?
Yalnızca dahili kullanım için çözümleyiciler için, istemcileri sahte harici yanıtlardan korumak amacıyla DNSSEC doğrulamasını etkinleştirin. Tamamen dahili bölgeler için DNSSEC isteğe bağlıdır, ancak özel bir PKI'niz varsa ve anahtarları yönetmek için değişiklik kontrolleriniz varsa giderek daha çok önerilmektedir.
Aynı sunucuda özyinelemeli ve yetkili DNS'i birlikte çalıştırabilir miyim?
Mümkün ancak en iyi uygulama değil. Ayrıştırma, saldırı yüzeyini ve operasyonel etki alanını azaltır. Birleştirmek zorundaysanız, BIND görünümleri ve katı ACL'ler kullanın; özyinelemenin herkese açık bir şekilde ifşa edilmediğinden ve günlük kaydının rolleri açıkça ayırt ettiğinden emin olun.
Yukarıdaki adımlarla, Linux DNS sunucunuzun yapılandırması 2026 yılı için üretime hazır hale gelir. Uzman yardımı veya tamamen yönetilen bir kurulum istiyorsanız, QloudHostMühendislerimiz, çalışma süresi, performans ve uyumluluk hedeflerinize uygun güvenli DNS yığınları tasarlayabilir, kurabilir ve işletebilir.


Leave a Comment