AdGuard Home: Ağ Genelinde Reklam ve İzleyici Engelleyen DNS Sunucusu
(github.com/AdguardTeam)- AdGuard Home, kurulduktan sonra ev ağındaki tüm cihazlara uygulanan ücretsiz ve açık kaynaklı bir DNS sunucusudur; istemci tarafı yazılım gerektirmeden reklamları ve izlemeyi engeller
- Çalışma biçimi, izleme alan adlarını DNS sinkholing ile “black hole”a yeniden yönlendirerek cihazların ilgili sunuculara bağlanmasını engelleyen bir yapıdır ve herkese açık AdGuard DNS sunucusuyla kodun büyük bir bölümünü paylaşır
- Kendi sunucunuz olarak çalıştırdığınızda, herkese açık DNS’e kıyasla neyin engelleneceğini ve neye izin verileceğini doğrudan seçebilir, ağ etkinliğini izleyebilir ve özel filtreleme kuralları ekleyebilirsiniz
- Pi-Hole’a benzer şekilde reklam ve izleyici engelleme ile engelleme listesi özelleştirmeyi destekler; ancak AdGuard Home şifreli DNS upstream’leri, DoH/DoT sunucusu çalıştırma, kimlik avı ve kötü amaçlı yazılım alan adlarını engelleme, ebeveyn denetimi ve Safe Search’ü zorlama gibi özellikleri varsayılan olarak sunar
- DNS düzeyinde engelleme, YouTube ve Twitch reklamları ya da Facebook, Twitter ve Instagram sponsorlu gönderileri gibi içerikle aynı alan adını kullanan reklamları engelleyemez; gelecekte içerik engelleme proxy desteği de tüm durumları çözmeyebilir
AdGuard Home’un rolü ve çalışma biçimi
- AdGuard Home, kullanıcılar ve cihazlar için bir gizlilik koruma merkezi olmayı hedefleyen, ağ genelinde reklam ve izleyici engelleyen bir DNS sunucusudur
- Kurulumdan sonra ev ağındaki tüm cihazları kapsar ve her cihaza ayrı bir istemci yazılımı kurma gereği yoktur
- DNS sunucusu olarak çalışırken izleme alan adlarını “black hole”a yeniden yönlendirerek cihazların ilgili sunuculara bağlanmasını engeller
- Herkese açık AdGuard DNS sunucusunda kullanılan yazılımı temel alır ve iki ürün kodun büyük bir bölümünü paylaşır
Kurulum ve entegrasyon
- Linux, Unix, macOS, FreeBSD ve OpenBSD’de
curl,wget,fetchile otomatik kurulum betiği çalıştırılabilir-c <channel>: belirtilen kanalı kullanır-r: AdGuard Home’u yeniden kurar-u: AdGuard Home’u kaldırır-v: ayrıntılı çıktı-rve-uaynı anda kullanılamaz
- Manuel kurulum ve cihaz ayarları Getting Started belgesinde görülebilir
- Resmî Docker imajı Docker Hub üzerinden sağlanır
- Linux kullanıcıları Snap Store üzerinden kurulum yapabilir
- Entegrasyon gerektiğinde REST API kullanılabilir; ayrıca python client da sunulur
- Bu Python istemcisi, AdGuard Home Hass.io Add-on oluşturmak için kullanılmıştır
Herkese açık AdGuard DNS’ten farkı
- Kendi AdGuard Home sunucunuzu çalıştırmak, herkese açık DNS sunucusu kullanmaya göre daha fazla kontrol sağlar
- Sunucunun neyi engelleyeceğini ve neye izin vereceğini kullanıcı doğrudan seçebilir
- Ağ etkinliği izlenebilir
- Özel filtreleme kuralları eklenebilir
- Sunucu kullanıcıya ait olduğu için kontrol de kullanıcıdadır
Pi-Hole ve geleneksel reklam engelleyicilerle karşılaştırma
- AdGuard Home ve Pi-Hole, reklamları ve izleyicileri DNS sinkholing yöntemiyle engeller ve engellenecek hedeflerin özelleştirilmesini sağlar
- AdGuard Home, ek yazılım kurulumu veya manuel ayar gerektirmeden birçok özelliği varsayılan olarak sunmayı hedefler
- README’deki karşılaştırma tablosuna göre AdGuard Home şu özellikleri sunar
- Reklam ve izleyici engelleme
- Engelleme listesi özelleştirme
- Yerleşik DHCP sunucusu
- Yönetici arayüzü için HTTPS
- DNS-over-HTTPS, DNS-over-TLS, DNSCrypt şifreli DNS upstream’leri
- Çapraz platformda çalıştırma
- DNS-over-HTTPS veya DNS-over-TLS sunucusu olarak çalıştırma
- Kimlik avı ve kötü amaçlı yazılım alan adlarını engelleme
- Yetişkin içerikli alan adlarını engelleyen ebeveyn denetimi
- Arama motorlarında Safe Search’ü zorlama
- Cihaz bazında ayarlar
- AGH DNS kullanıcılarını seçen erişim ayarları
- root yetkisi olmadan çalıştırma
- Geleneksel reklam engelleyicilerle karşılaştırıldığında DNS sinkholing, reklamların büyük bir bölümünü engelleyebilir; ancak geleneksel reklam engelleyicilerin esnekliği ve gücünden yoksundur
- DNS tabanlı engelleyiciler, geleneksel reklam engelleyicilerin kurulamadığı Smart TV, akıllı hoparlör ve IoT cihazlarında reklam, izleme ve analiz isteklerini engellemeye yardımcı olabilir
Bilinen sınırlamalar ve gelecek yönelim
- DNS düzeyindeki engelleyiciler şu örnekleri engelleyemez
- YouTube, Twitch reklamları
- Facebook, Twitter, Instagram sponsorlu gönderileri
- İçerikle aynı alan adını paylaşan reklamlar DNS düzeyindeki engelleyicilerle engellenemez
- Yalnızca DNS ile bu sorun çözülemez; bağımsız AdGuard uygulamalarında olduğu gibi bir içerik engelleme proxy’si gerekir
- AdGuard Home’un gelecekte içerik engelleme proxy özelliği desteği alması planlanıyor
- Bu durumda bile yeterli olmayabilecek veya karmaşık yapılandırma gerektirebilecek durumlar kalabilir
Kaynaktan derleme ve geliştirme
- Geliştirme ortamını hazırlamak için
make initçalıştırılır - Derleme için şunlar gerekir
- Temel derleme, depoyu klonladıktan sonra
makeçalıştırılarak yapılır - Standart olmayan
-jbayrağı şu anda desteklenmez;make -j 4veyaMAKEFLAGSiçinde-j 4bulunan ayarlar derlemeyi bozabilir- Gerekirse
make -j 1ile üzerine yazılabilir
- Gerekirse
- Go’nun desteklediği OS/ARCH hedeflerine çapraz derleme yapılabilir;
makeçalıştırılırkenGOOSveGOARCHbelirtilir - Yayın derlemesi hazırlamak için
snapcraftgerekir vemake build-release CHANNEL='...' VERSION='...'kullanılır - Yerel Docker imajı
make build-dockerile derlenir; resmî imajlar Docker Buildx kullanır - Frontend hata ayıklamada,
clientdizininde geliştirme derlemesi watch modunda çalıştırılır veAdGuardHomeikilisine--local-frontendbayrağı verilerek gömülü frontend dosyaları yerine./build/dizinindeki dosyalar kullanılır - E2E frontend testleri Playwright kullanır ve testler
tests/e2eiçindedirnpm run test:e2e: tüm testleri headless olarak çalıştırırnpm run test:e2e:interactive: interaktif testnpm run test:e2e:debug: debug modunpm run test:e2e:codegen: yeni test kodu oluşturur- Playwright, sistemde yüklü tarayıcılardan farklı olabilecek kendi tarayıcı ikililerini indirip kurar
Katkı, kararsız kanallar ve haricî projeler
- Katkı yapmak isteyenler depoyu fork’layıp değişiklik yaptıktan sonra pull request gönderebilir ve code guidelines belgesine uymalıdır
- UI ve backend’e aynı anda katkı yapmak gerekmez; ideal olarak ayar, API ve işlevleri içeren backend uygulaması önce girer, UI ise daha sonra başka bir pull request’te uygulanabilir
- Kararsız sürüm kanalları iki tanedir
beta: görece kararlı beta sürümdür ve genellikle iki haftada bir veya daha sık yayımlanıredge: geliştirme dalının en yeni sürümüdür ve her gün yeni güncellemeler push edilir
- Kararsız sürümler Snap Store’daki
betaveedgekanalları, Docker Hub’dakibetaveedgeetiketleri, otomatik kurulum betiği veya Wiki’deki bağımsız çalıştırılabilir derlemelerle kurulabilir - AdGuard ile bağlantılı olmayan üçüncü taraf geliştiriciler ve hayranlar tarafından yapılmış ilgili projeler vardır
- AdGuard Home Remote: iOS uygulaması
- Python library
- Home Assistant add-on
- OpenWrt LUCI app
- AdGuardHome sync
- AdGuardian-Term: terminal tabanlı gerçek zamanlı trafik izleme ve istatistikler
- Chocolatey package
Gizlilik ve kullanılan teknolojiler
- AdGuard Home’un temel fikri, kullanıcıların kendi verileri üzerinde kontrol sahibi olması gerektiğidir
- AdGuard Home kullanım istatistikleri toplamaz ve kullanıcı ayarlamadığı sürece web servisleri kullanmaz
- Tam privacy policy, teorik olarak AdGuard Home’un gönderebileceği tüm öğeleri kapsar
- Başlıca temel teknolojiler Go ve Node.js ekosistemidir
- Go kütüphanesi olarak
gcache,miekg's dns,go-yaml,service,dnsproxy,urlfilterkullanır - Node.js tarafında React.js, Tabler ve çeşitli Node.js paketleri kullanılır
whotracks.meverileri de kullanılır
- Go kütüphanesi olarak
- AdGuard Home, daha önce bahsedilen CoreDNS’i artık kullanmaz
1 yorum
Hacker News yorumları
Birkaç yıl boyunca ev ağımda rakip proje Pi-hole[0] çalıştırdıktan sonra NextDNS[1] ile tanıştım.
Performans açısından, isteklerin ev dışına çıkmaması avantajını kaybettim; ama tüm cihazların evin içinde ve dışında kullanabilmesi anlamındaki taşınabilirlik ve kazandırdığı zaman daha ağır bastı.
Pi-hole %90 oranında iyi çalışıyordu ama durduğunda düzeltmek zaman alıyordu; yılda 20 dolar karşılığında NextDNS ile kendi kendine işletilen çözümün rekabet etmesi zordu.
NextDNS reklamı yapmıyorum; bu tür projelerin mutlaka var olması gerektiğini düşünüyorum, ama NextDNS gerçekten çok basit bir SaaS aracı ve fiyat/performansı çok iyi.
0 - https://pi-hole.net/
1 - https://nextdns.io
SD kart bozulmalarının %99,9’u yetersiz güç veren adaptörlerden kaynaklanır; uygun bir 2,5~3A USB güç kaynağı bulmakla uğraşmak istemiyorsan resmi Raspberry Pi güç adaptörünü alman yeterli.
Yılda 20 dolara her yıl yedek bir RPi Zero 2W ve SD kart alıp üstüne kutlama için bir Sheetz sandviç parası bile kalır.
Pi-hole + WireGuard + tek seferlik 15 dolarlık RPi Zero satın alımı kombinasyonunu yenmenin zor olduğunu düşünüyorum.
Benim instance’ım yıllarca tek bir sorun bile çıkarmadan çalıştı; yaklaşık bir yıl önce OPNSense kutusunda çalıştırmak istediğim için AdGuard Home’a geçtim.
Cihazlara otomatik WireGuard VPN kurdum; kendi SSID’ime bağlı olmadıklarında ev ağıma VPN ile bağlanıyorlar, bu yüzden uzaktan da yerel DNS çalışıyor.
Uçak Wi‑Fi’ı gibi ağlara bağlanırken kapatmayı hatırlamak gerekiyor; bu yüzden teknik olmayan arkadaşlara önermenin zor olduğunu düşünüyorum.
Görünüşe göre artık yaklaşık 3 aday var.
Sadece DNS şifreleme ve engelleme için yılda 20 dolar ödeyeceksem, yalnızca DNS reklam engelleme değil IP anonimliği ve tünelleme gibi şeyler de sunan Mullvad’a yükseltmeyi düşünmeye değer.
Yakınlarda Pi-hole’a bakarken AdGuard Home’u seçtim.
İlk bakışta arayüzü de daha iyi ve genel olarak daha iyi görünüyordu; böylesine pürüzsüz bir araç için, iç DNS’e yerel özel alan adı sorgularını devretmek gibi şaşırtıcı derecede çok özelleştirme de sunuyor.
AdGuard’ın bunu neden ücretsiz sunduğundan emin değilim, belki araştırmak gerekir; ama şimdilik nispeten düşük riskli bir tercih gibi göründü.
Rahatsız edici reklamlar ortadan kalkınca NYTimes uygulaması gibi şeyleri kullanma deneyiminin ne kadar daha keyifli hâle geldiğini ne kadar söylesem az.
Split DNS özelliğinde akla gelebilecek tüm seçenekler var.
Arkasında ikinci bir DNS sunucusuna ihtiyacım olacağını sanmıştım, ama gereken tüm kuralları doğrudan AdGuard Home’un içine koyabildim.
DoT ve DoH upstream’lerini de destekliyor; bu hâlâ birçok ev tipi yönlendiricide yaygın değil.
Doküman: https://github.com/AdguardTeam/AdGuardHome/wiki/Configuratio...
Varsayılan upstream olarak kendi DNS sunucularını ayarlayıp birçok kişinin varsayılanları korumasını umuyor olabilirler.
DNS, veri madenciliği ve veri satışı için en iyi teknolojilerden biri; 8.8.8.8 veya 1.1.1.1 gibi kolay ezberlenen DNS sunucularının var olma nedeninin de bu olduğunu düşünüyorum.
Google ve Cloudflare bunu sadece iyi niyetle yapıyor olamaz.
Öte yandan AdGuard, müşteri verilerini satmadığını iddia ediyor.
Dokümantasyonu okuyup kuruyorsun, düzgün çalışır hâle getiriyorsun; sonra arkadaşlarına ev ağında sinir bozucu reklamların olmadığını anlatıp övünüyorsun.
Bunun üzerine arkadaşların “bana da kur” diyor.
Kurulumu yapabilirsin ama bakımını üstlenemezsin; bu yüzden “o karmaşıklık yerine tüm aile için yılda 29 dolara hemen çalışan basit, uygulama tabanlı bir kurulum var” diyorsun.
O akşam yemeğinde beş arkadaşın hizmeti indirip ödeme yapmış oluyor.
Günümüz teknoloji startup’larının felsefesinin de buna benzediğini düşünüyorum: açık kaynak bir ürün alıp onun üzerine ticari iş kurmak.
AdGuard, Rus mühendisleri olan bir Rus şirketi; geliştiricilerinin ve çalışanlarının çoğu Moskova’da çalışıyor, şirket ise Kıbrıs’ta kayıtlı.
İyi bir kombinasyon değil; güvenlik gerekçesiyle uzak dururdum.
MacPaw’ın Rusya’da geliştirilen yazılımları risk olarak sınıflandırmasının nedeni hükümetin verilere her an erişebilmesi; ama bu, kendi barındırdığın açık kaynak bir yazılım.
FSB rastgele bir mahkeme kararıyla yerel sunucuna erişemez.
Bu yüzden meşru bir endişeden çok Rus düşmanlığı gibi geliyor; Rus geliştiricilerin kendi hükümetlerinin aptallıkları yüzünden ne kadar acı çektiğini bizzat bildiğim için bunu daha da uygunsuz buluyorum.
py-hole da ilgini çekebilir.
Sadece Python betiği ve dnsmasq yapılandırmasından oluşuyor; OpenWrt üzerinde çalışıyor, ücretsiz ve CPU kullanımı neredeyse 0’a yakın.
https://github.com/time4tea-net/py-hole
AdGuard’ın bir başka güzel yanı da Home Assistant eklentisi olarak sunulması.
HA’nın geri kalanıyla entegre olduğu için, örneğin panoya engellemeyi açıp kapatan bir anahtar koyabiliyorsun.
AdGuard Home harika
Bir süre Pi-hole kullandım ama oldukça sık küçük sorunlar yaşadım
Ciddi şeyler değildi, ama bu tür araçlar yalnızca sorunsuz çalıştıklarında gerçekten işe yarıyor
Benim Pi kurulumumda docker-compose[1] ile sorunsuz çalışıyor; ayrıca adguardhome-sync[2] adlı güzel bir container kullanarak ikinci bir Pi’yi yedek olarak çalıştırıyor ve ayarları senkronize ediyorum
Artık ağda reklam görmüyorum; hangi cihazların izleme/reklam isteklerini ne kadar çok gönderdiğini görmek de epey ilginç
1 - https://thesmarthomejourney.com/2021/05/24/adguard-pihole-dn...
2 - https://thesmarthomejourney.com/2023/02/12/adguardhome-sync-...
Sayısız cihaz ve uygulama, izleme ve reklam hedefleme için hardcode edilmiş DNS sunucularına doğrudan çıkmaya çalışıyor
Burada Technitium DNS kullanan var mı bilmiyorum
Açık kaynak ve ücretsiz; çok sınırlı donanımda bile çalışıyor
Ben Orange Pi 3 LTS üzerinde çalıştırıyorum
https://technitium.com/dns/
“Technitium DNS Server is an open source authoritative as well as recursive DNS server” deniyor; Pi-hole ya da AdGuard’ın da özyinelemeli DNS sunucusu olup olmadığını, yoksa yalnızca basit bir engelleyici mi olduklarını merak ediyorum
Uzun süredir Pi-hole kullanıyorum ve bunun ne avantajı olduğunu anlamaya çalışıyorum
Biraz ayarla ücretsiz mümkün
AdGuard’ı bilmiyordum ama iyi görünse de özellikle denemek istemiyorum
.NET tabanlı olduğu için çapraz platform da
O yöntemi istiyorsanız Docker imajı da var
NextDNS hakkında birkaç genel olarak olumlu yorum var, ama ben NextDNS’ten taşınmayı düşündüğüm için bunu ayrıca bırakıyorum
Nedeni şu: Şu anda Mac/Safari kullanıyorum ve “IP adresini izleyicilerden gizle” özelliğini açmak istiyorum; bunu açınca NextDNS’in normalde engellediği web sitesi reklamları görünmeye başlıyor
Bu yüzden bu seçeneği kapatmam gerekiyor ve Apple’ın özelliğini kullanamıyorum
Genel olarak ikisi birlikte kullanılamıyor gibi; NextDNS yardım sitesinde de bununla ilgili bir sorun başlığı var
https://help.nextdns.io/t/q6yq4xy/nextdns-stops-working-prop...
Bunun AdGuard veya Pi-hole için de bilinen bir sorun olup olmadığını bilen var mı merak ediyorum
Relay’i açınca bağlantı proxy üzerinden geçer ve yerel ağdaki DNS sunucusunu kullanmaz
Pi-hole, NextDNS ya da AdGuard fark etmez
İkincisinin amacının ne olduğunu bilmiyorum
HN’de Pi-hole ya da AdGuard Home yazısı çıkmadan dayanılabilen belirli bir süre var gibi
Güzel
Benzer şekilde, ağınızda pfSense çalıştırıyorsanız pfBlockerNG’ye de bakmaya değer. Şahsen oldukça seviyorum: https://docs.netgate.com/pfsense/en/latest/packages/pfblocke...