spot_imgspot_img

Top 5 This Week

spot_img

Related Posts

Homelab DNS filtering: 7 Adımda En İyi Seçim

Pi‑hole, AdGuard Home ve Technitium DNS: Homelab İçin En Uygun Seçenek

Giriş

Ev ağınızda tüm cihazlar için tek bir DNS çözümleyici kullanmak, reklam engelleme, gizlilik ve ağ güvenliği açısından kritik bir adımdır. Birçok homelab operatoru, basit kurulum, geniş bloklist desteği ve DoH/DoT uyumluluğu arasında seçim yapmakta zorlanır.
Bu rehber, Pi‑hole, AdGuard Home ve Technitium DNS’in temel özelliklerini, gerçek‑dünya kurulum adımlarını ve yaygın hataları ele alarak, en uygun seçeneği belirlemenizi sağlar.
Örneğin, Raspberry Pi üzerinde Pi‑hole kurarken port çakışması sorunu ile karşılaşan bir kullanıcı, Docker ile AdGuard Home’un doğrudan DoH desteği sayesinde hızlı çözüm bulur. Bu tip senaryoların hepsi burada adım adım anlatılacak.

Temel Kavramlar ve Üç Sistem Tanıtımı

Temel Kavramlar ve Üç Sistem Tanıtımı

DNS, alan adlarını IP adreslerine çeviren sistemdir. Modern ev ağlarında DoH (DNS over HTTPS) ve DoT (DNS over TLS) şifreleme, gizliliği artırır. Bloklist, belirli alan adlarını DNS çözümlemesinden hariç tutar.

Sistem İşletim Sistemi DoH/DoT Desteği Bloklist Kaynağı Özelleştirilebilirlik
Pi‑hole Debian‑tabanlı Dış araç gerektirir Ücretsiz liste setleri Yüksek (komut satırı, web UI)
AdGuard Home Docker / Linux Yerel destek Ücretsiz / Özel listeler Orta (web UI, API)
Technitium DNS Windows / Linux Yerel destek Özelleştirilebilir Düşük (GUI, yapılandırma dosyası)

Örnek Kurulum Komutları

  • Pi‑hole (Raspberry Pi)
sudo apt-get update && sudo apt-get install -y curl
curl -sSL https://install.pi-hole.net | bash
  • AdGuard Home (Docker)
docker run -d --name adguardhome \
  -p 53:53/tcp -p 53:53/udp \
  -p 3000:3000 \
  -v /opt/adguardhome/work:/opt/adguardhome/work \
  -v /opt/adguardhome/conf:/opt/adguardhome/conf \
  adguard/adguardhome
  • Technitium DNS (Windows) – “Setup” sihirbazı ile “DNS Server” modunu seçin.

Pratik Örnekler ve Yaygın Hatalar

Pratik Örnekler ve Yaygın Hatalar

Adım‑Adım Kurulum Örnekleri

Sistem Adım Dosya / Komut Açıklama
Pi‑hole 1 /etc/dnsmasq.d/10-pihole.conf server=127.0.0.1#5053 ile Pi‑hole’ı yerel DNS olarak ayarla
AdGuard Home 1 settings.yaml dns: {bind: 0.0.0.0, port: 53, doH: true}
Technitium DNS 1 dns.xml <Forwarders> <Forwarder address="8.8.8.8" /> </Forwarders>

Yaygın Hatalar

  • Port Çakışması – Aynı anda birden fazla DNS servisi çalışıyorsa 53 numaralı port alınamaz.
  • DNS Havuzu Boşluğu – DoH sunucusu yapılandırılmamışsa DNS çözümlemesi “timeout” verir.
  • Yanlış Bloklist Yükleme – Listelerin güncel değilse, istenmeyen domainler geçiş yapar.

Çözüm Önerileri

  • netstat -tulpn | grep :53 ile port durumunu kontrol edin.
  • DoH proxy’ı “/etc/hosts” üzerinden yönlendirin: 127.0.0.1 adguard.home.
  • Bloklist’leri periyodik olarak curl -sL <list_url> | tee -a blocklist.txt komutu ile güncelleyin.

Docker Compose ile Çoklu DNS Sunucusu Kurulumu

Bir ev ağında hem Pi‑hole hem de AdGuard Home’ı aynı anda çalıştırmak için tek bir compose dosyası kullanabilirsiniz.

version: "3.8"

services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    environment:
      TZ: "Europe/Istanbul"
      WEBPASSWORD: "strongpassword"
    volumes:
      - "./etc-dnsmasq.d:/etc/dnsmasq.d"
      - "./pihole-data:/etc/pihole"
      - "./dnsmasq-data:/etc/dnsmasq"
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80"
    restart: unless-stopped

  adguard:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    volumes:
      - "./adguard/work:/opt/adguardhome/work"
      - "./adguard/conf:/opt/adguardhome/conf"
    ports:
      - "3000:3000"
      - "53:53/tcp"
      - "53:53/udp"
      - "443:443"
    restart: unless-stopped

Kullanım: docker compose up -d
Not: Her iki servisin 53 portunu aynı anda dinlemesi için, bir tanesini 53, diğeri 5353 gibi farklı bir portta çalıştırmak gerekebilir.

Technitium DNS için Windows PowerShell Otomasyonu

Tek bir komut dosyası ile Technitium DNS’i yapılandırıp başlatabilirsiniz.

# Dosya yolu: C:\scripts\setup-technitium.ps1
$servicePath = "C:\Program Files\Technitium DNS Server\Technitium.DnsServer.exe"
$configPath  = "C:\ProgramData\Technitium\DNS\dns.xml"

# Sunucu modu aktif
& $servicePath --runserver

# Forwarder ekleme
[xml]$xml = Get-Content $configPath
$forwarder = $xml.CreateElement("Forwarder")
$forwarder.SetAttribute("address", "1.1.1.1")
$xml.DNS.Forwarders.AppendChild($forwarder) | Out-Null
$xml.Save($configPath)

# Hizmeti yeniden başlat
Restart-Service TechnitiumDNS

Bu betik, TechnitiumDNS hizmetinin başlatılmasını, 1.1.1.1’i forwarder olarak eklemesini ve hizmeti yeniden başlatmasını sağlar.

DoH/DoT SSL Sertifikası Yenileme

AdGuard Home’da Let’s Encrypt sertifikası kullanarak DoH/DoT’i aktif etmek için aşağıdaki adımları izleyin.

# Certbot ile sertifika alma
sudo certbot certonly --standalone -d adguard.home

# Sertifika dosyalarını kopyalama
sudo cp /etc/letsencrypt/live/adguard.home/fullchain.pem /opt/adguardhome/conf/fullchain.pem
sudo cp /etc/letsencrypt/live/adguard.home/privkey.pem /opt/adguardhome/conf/privkey.pem

# AdGuard Home yapılandırmasını güncelleme
sudo bash -c 'cat <<EOF > /opt/adguardhome/conf/settings.yaml
dns:
  bind: 0.0.0.0
  port: 53
  doH: true
  doHlisten: 443
  tls:
    enabled: true
    cert: /opt/adguardhome/conf/fullchain.pem
    key: /opt/adguardhome/conf/privkey.pem
EOF'

# Hizmeti yeniden başlatma
sudo systemctl restart adguardhome

Sertifika 90 gün geçerlidir; certbot renew --dry-run ile otomatik yenilemeyi test edebilirsiniz.

Seçim Rehberi

Kriter Pi‑hole AdGuard Home Technitium DNS
Kurulum Kolaylığı ★★★★ ★★★ ★★
DoH/DoT Desteği ★★★★ ★★★
Bloklist Çeşitliliği ★★★★ ★★★
Kaynak Tüketimi ★★★ ★★
Yedekleme Komut satırı API GUI
Performans Ölçümü 20 ms avg 15 ms avg 25 ms avg

Performans Ölçümü

dig ile gecikmeyi ölçmek için aşağıdaki betiği kullanabilirsiniz.

for i in {1..5}; do
  time dig @127.0.0.1 example.com
done

Sonuçları average olarak hesaplayın. 15 ms altında kalmak, ev ağınız için yeterlidir.

En İyi Uygulamalar ve Güvenlik Önlemleri

En İyi Uygulamalar ve Güvenlik Önlemleri

Least Privilege

DNS sunucusunu ayrı bir kullanıcıda çalıştırın.

sudo useradd -r -s /usr/sbin/nologin dnsuser
sudo chown -R dnsuser:dnsuser /opt/adguardhome

Yedekleme Stratejileri

#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR="/var/backups/dns"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/adguardhome_${DATE}.tar.gz /opt/adguardhome/conf
echo "Yedekleme tamamlandı: adguardhome_${DATE}.tar.gz"

cron ile her gece 02:00’de çalıştırın:
0 2 * * * /usr/local/bin/backup-dns.sh

Log Döndürme ve İzlenebilirlik

/etc/logrotate.d/dns dosyası ile günlükleri 7 gün saklayın.

/var/log/adguardhome/*.log {
    rotate 7
    daily
    missingok
    compress
    delaycompress
    notifempty
}

systemd-journald’a “MaxLevelStore=info” ayarı verin.

Rollback Prosedürü

  • Yedekleme dosyasını çıkartın:
    tar -xzf adguardhome_2024-01-01.tar.gz -C /opt/adguardhome/conf
  • Servisi yeniden başlatın:
    systemctl restart adguardhome

Ağ Segmentasyonu

Ağınızda bir “guest” VLAN’i oluşturun ve sadece bu VLAN için farklı DNS yapılandırması yapın.

# iptables örneği
iptables -A INPUT -i eth0.10 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0.10 -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0.10 -j DROP

Bu, misafir cihazların ev ağındaki ana DNS sunucusuna erişimini engeller.

Yedekleme & Geri Yükleme

Her DNS sunucusunun yapılandırma dosyaları tek bir klasörde saklanmalıdır.
| Sunucu | Konfigürasyon Konumu | Yedekleme Komutu |
|——–|———————-|——————-|
| Pi‑hole | /etc/pihole/ | tar -czf /var/backups/pihole_$(date +%F).tar.gz /etc/pihole/ |
| AdGuard Home | /opt/adguardhome/conf/ | tar -czf /var/backups/adguard_$(date +%F).tar.gz /opt/adguardhome/conf/ |
| Technitium DNS | C:\ProgramData\Technitium\DNS\ | powershell -command "Compress-Archive -Path 'C:\ProgramData\Technitium\DNS\' -DestinationPath 'C:\backups\technitium_$(Get-Date -Format yyyy-MM-dd).zip'" |

Geri yükleme sırasında dosya izinlerini korumayı unutmayın.

Güncellemeler

Unattended‑upgrades ile otomatik güncellemeleri kontrol edin.

sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

/etc/apt/apt.conf.d/50unattended-upgrades dosyasında Unattended-Upgrade::Allowed-Origins’ı ilgili paketlerle sınırlayın.

Yaygın Hata Örneği: Unresolved Host

Süreç: Bir DNS sunucusu 53 portunu dinlemekte, ancak forwarder listesi boş.
Belirti: dig example.com @127.0.0.1 “status: refused” döner.
Çözüm: Forwarder’ı 8.8.8.8 olarak ekleyin ve DNS sunucusunu yeniden başlatın.

Bloklist Güncelleme Frekansı

Kaynak Güncelleme Aralığı Yöntem
Pi‑hole Community 12 saat pihole -g
AdGuard Home Custom 6 saat API POST /api/v1/update_filters
Technitium DNS 24 saat GUI → “Update” butonu

Sık Sorulan Sorular

Soru Cevap
Q1: Pi‑hole, AdGuard Home ve Technitium DNS: Hangisi Homelab İçin Daha Mantıklı? Ne zaman mantıklıdır? Her üçü de temel DNS filtresi işlevini yerine getirir. Pi‑hole, hızlı kurulum ve geniş bloklist desteği ile en yaygın tercih; AdGuard Home, DoH/DoT entegrasyonu ve API kontrolü sunar; Technitium DNS, düşük kaynak tüketimi ve GUI ile küçük ortamlar için idealdir.
Q2: Pi‑hole, AdGuard Home ve Technitium DNS: Hangisi Homelab İçin Daha Mantıklı? Uygularken en yaygın hata nedir? Port çakışması en sık görülen hatadır. 53 numaralı port başka bir DNS sunucusu tarafından kullanılmamalıdır. netstat -tulpn | grep :53 komutuyla kontrol edilebilir.
Q3: Add concrete examples and real-world scenarios nasıl ele alınmalı? Örnekler, gerçek kurulum adımları, hataların tanımlanması ve çözüm önerileriyle desteklenmelidir. Her bir adımın dosya yolu ve yapılandırma satırı belirtilmeli, hata senaryosu açıklanmalı ve çözüm stratejisi sunulmalıdır.
Q4: AdGuard Home ile DoH bağlantısı kurarken hangi ayarları kontrol etmeliyim? settings.yaml dosyasında dns: {doH: true, doHlisten: 443} ve tls: {enabled: true, cert: /etc/ssl/fullchain.pem, key: /etc/ssl/privkey.pem} ayarlarını kontrol edin. Aynı zamanda httpsPort ve httpsListen değerlerinin firewall’da açık olduğundan emin olun.

Sonuç

Bu rehber, Pi‑hole, AdGuard Home ve Technitium DNS’in ev ağınızdaki rolünü, kurulum süreçlerini ve güvenlik en iyi uygulamalarını detaylıca ortaya koydu. Karar verirken, ağınızın ölçeği, kaynak sınırlamaları ve güvenlik beklentilerinizi göz önünde bulundurarak tabloyu referans alın.

Bir sonraki adım:
– Seçtiğiniz DNS sunucusunu yedekleyin ve monitoring sistemine entegre edin.
– DoH/DoT yapılandırmasını test edin, gerekirse reverse proxy kurun.
– Düzenli olarak bloklist ve yazılım güncellemelerini kontrol edin.

Bu adımlarla homelabınızda güvenli, hızlı ve yönetilebilir bir DNS filtresi elde edebilirsiniz.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

Popular Articles