Docker Compose ile AdGuard Home Kurulumu: Ev Ağında DNS Tabanlı Reklam Engelleme Rehberi

Tarayıcı eklentileri reklamların önemli bir bölümünü engelleyebilir, ancak akıllı televizyonlar, mobil uygulamalar, IoT cihazları ve farklı istemciler söz konusu olduğunda merkezi bir çözüm çok daha kullanışlı hale gelir. Bu noktada AdGuard Home, ev veya küçük ofis ağında DNS seviyesinde filtreleme yapmak isteyenler için güçlü ve anlaşılır bir seçenek sunar.

Bu rehberde AdGuard Home'u Docker Compose kullanarak kuracağız, kalıcı veri dizinlerini ayarlayacağız, temel DNS yapılandırmasını yapacağız ve ağdaki istemcilerin bu sunucuyu kullanmasını sağlayacağız. Amaç yalnızca kurmak değil, daha sonra sorun çıktığında nereden bakacağınızı da bilmektir.

Furkan Ahmet Kaya, IT, ağ ve sistem teknolojileriyle ilgilenen teknik çalışmalarında mümkün olduğunca tekrarlanabilir ve dokümante edilebilir kurulumları tercih ediyor. Docker Compose yaklaşımı da tam olarak bunu sağlar: bir servis birkaç rastgele terminal komutundan ibaret kalmaz, yapılandırması dosya halinde saklanabilir ve gerektiğinde yeniden kurulabilir.

AdGuard Home Ne İşe Yarar?

AdGuard Home ağınızdaki cihazlardan gelen DNS sorgularını karşılar. Bir cihaz örneğin bir reklam, takip veya zararlı alan adına erişmeye çalıştığında, filtre listelerindeki kurallara göre bu isteği engelleyebilir. Böylece her cihaza ayrı ayrı reklam engelleme yazılımı kurmak zorunda kalmazsınız.

Bu yaklaşımın önemli avantajları şunlardır:

  • Ağ genelinde merkezi filtreleme sağlar.
  • Telefon, tablet, televizyon ve IoT cihazlarında da çalışabilir.
  • Hangi istemcinin hangi alan adlarına sorgu gönderdiğini görebilirsiniz.
  • Özel DNS kayıtları tanımlayabilirsiniz.
  • Belirli istemciler için farklı filtre politikaları oluşturabilirsiniz.

DNS tabanlı filtrelemenin her reklamı engelleyemeyeceğini de baştan belirtmek gerekir. Aynı domain üzerinden hem içerik hem reklam sunan servislerde DNS seviyesinde ayrım mümkün olmayabilir.

Kurulum İçin Gerekenler

Kurulum için Docker ve Docker Compose çalıştırabilen bir Linux makine yeterlidir. Bu bir mini PC, sanal makine, ev sunucusu veya sürekli açık başka bir sistem olabilir. Sunucunun yerel ağda sabit bir IP adresine sahip olması önemlidir; çünkü daha sonra router ve istemciler DNS sunucusu olarak bu IP'yi kullanacaktır.

Örnek olarak aşağıdaki dizini oluşturabilirsiniz:

mkdir -p ~/adguardhome
cd ~/adguardhome

Ardından aynı klasörde compose.yml dosyası oluşturun.

Docker Compose Dosyasını Oluşturma

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

Burada iki klasörü host sisteme bağlıyoruz. work çalışma verilerini, conf ise yapılandırmayı saklar. Container silinse bile bu klasörler kaldığı sürece ayarlarınızı yeniden kullanabilirsiniz.

DNS için hem TCP hem UDP 53 numaralı portu açıyoruz. İlk kurulum ekranına 3000 numaralı port üzerinden ulaşılır. Kurulum tamamlandıktan sonra yönetim arayüzü tercih ettiğiniz porta taşınabilir.

Container'ı Başlatma

docker compose up -d

Ardından container durumunu kontrol edin:

docker compose ps

Beklenmeyen bir hata varsa loglara bakın:

docker compose logs -f

Özellikle 53 numaralı port zaten başka bir servis tarafından kullanılıyorsa container başlayamayabilir. Ubuntu tabanlı bazı sistemlerde yerel resolver servisleri bu portu kullanabilir. Böyle bir durumda rastgele servis kapatmak yerine önce hangi prosesin portu dinlediğini kontrol edin:

sudo ss -lntup | grep ':53'

Web Arayüzüne İlk Giriş

Tarayıcıdan sunucunun IP adresine 3000 portu ile bağlanın. Örneğin sunucu IP'niz 192.168.1.50 ise adres http://192.168.1.50:3000 olacaktır.

Kurulum sihirbazında yönetim arayüzünün hangi interface üzerinde dinleyeceğini ve DNS servisinin hangi IP üzerinde çalışacağını seçebilirsiniz. Ev ağı için çoğu durumda LAN interface'i yeterlidir.

Yönetici kullanıcı adı ve şifresini belirlerken tahmin edilmesi kolay bir parola kullanmayın. Servisi internete doğrudan açmak ise genellikle gereksizdır. AdGuard Home'u yalnızca yerel ağdan erişilebilir tutmak çoğu ev kurulumu için daha güvenlidir.

Router Üzerinden DNS Dağıtımı

Kurulumun en kritik adımı ağdaki istemcilerin gerçekten AdGuard Home'u DNS sunucusu olarak kullanmasını sağlamaktır. Bunun en temiz yolu router'ın DHCP ayarlarında dağıtılan DNS adresini AdGuard Home sunucusunun IP'si olarak değiştirmektir.

Router bunu desteklemiyorsa cihaz bazında DNS tanımlamak da mümkündür. Ancak on veya yirmi cihazdan sonra bu yöntem, insanlığın neden merkezi yönetimi icat ettiğini acı biçimde hatırlatır.

Ayarı değiştirdikten sonra istemcilerin DHCP lease'ini yenilemesi gerekebilir. Telefonlarda Wi-Fi bağlantısını kapatıp açmak, bilgisayarlarda ise bağlantıyı yenilemek çoğu zaman yeterlidir.

DNS'in Çalıştığını Nasıl Test Ederiz?

Bir bilgisayardan aşağıdaki komutu kullanabilirsiniz:

nslookup example.com 192.168.1.50

Sunucu adresini kendi AdGuard Home IP'nizle değiştirin. Yanıt geliyorsa DNS servisi temel seviyede çalışıyor demektir.

Ardından AdGuard Home arayüzündeki Query Log bölümünü açın. İstemcinin sorgularını burada görebiliyorsanız zincirin doğru çalıştığını doğrulamış olursunuz.

Filtre Listeleri Konusunda Aşırıya Kaçmayın

Daha fazla filtre listesi her zaman daha iyi filtreleme anlamına gelmez. Yüz binlerce kuralı üst üste bindirmek, yanlış pozitifleri artırabilir ve hangi listenin sorun çıkardığını anlamayı zorlaştırabilir. Başlangıçta güvenilir birkaç listeyle ilerlemek daha sağlıklıdır.

Bir site veya uygulama çalışmamaya başladığında Query Log üzerinden engellenen alan adlarını inceleyin. Gerekirse yalnızca ilgili domain için allowlist kuralı oluşturun. Bütün filtrelemeyi kapatmak genellikle balyozla saat tamir etmeye benzer.

Yerel DNS Kayıtları

AdGuard Home'un faydalı taraflarından biri de yerel DNS kayıtları oluşturabilmesidir. Örneğin ev sunucunuza sürekli IP yazarak bağlanmak yerine nas.home veya server.home gibi kolay hatırlanan bir isim tanımlayabilirsiniz.

Bu özellik homelab ortamlarında özellikle kullanışlıdır. Proxmox, NAS, Docker host veya yönetim panelleri için anlamlı DNS isimleri kullanmak altyapıyı daha okunabilir hale getirir.

Güvenlik ve Yedekleme

DNS altyapısı ağın temel servislerinden biridir. Bu nedenle yapılandırma klasörünü düzenli yedeklemek iyi fikirdir. Docker Compose dosyanız ile conf klasörünün yedeği, sistemi başka bir makinede çok daha hızlı geri kurmanızı sağlar.

Güncelleme öncesinde yedek almak ve ardından image'i kontrollü biçimde yenilemek yeterlidir:

docker compose pull
docker compose up -d

Güncellemeden sonra logları ve DNS sorgularını kontrol etmek, "container ayakta, demek ki her şey iyi" varsayımından daha sağlıklıdır.

Sonuç

Docker Compose ile AdGuard Home kurmak, ev ağına merkezi DNS filtreleme eklemenin pratik yollarından biridir. Asıl değer reklam engellemeden çok, DNS trafiğinin görünür hale gelmesi, özel kayıtlar oluşturulabilmesi ve farklı cihazların tek noktadan yönetilebilmesidir.

Furkan Ahmet Kaya tarafından hazırlanan bu rehberde amaç yalnızca birkaç komut kopyalatmak değil, servisin ağın neresinde durduğunu ve sorun çıktığında hangi katmandan başlanması gerektiğini açıklamaktır. IT altyapısında iyi kurulum kadar iyi troubleshooting alışkanlığı da önemlidir.

Yazar hakkında: Furkan Ahmet Kaya, IT, yazılım, ağ ve sistem teknolojileriyle ilgilenmekte; pratik troubleshooting, otomasyon ve altyapı konularında teknik içerikler üretmektedir.

Yorumlar

Bu blogdaki popüler yayınlar

AV Çalışanları İçin Ekipman Alım Rehberi: Parayı Doğru Yere Yatırmak

Canlı Prodüksiyon Simülasyonu: Bir Projeyi A'dan Z'ye Planlama ve Uygulama

Hata Giderme Sanatı (Troubleshooting): Kablo/Sinyal Takibi ve Ağ Sorunlarını Çözme Teknikleri