Teknolojinin Sınırlarını Zorlayan Proje: 5 Dolarlık Bir Mikrodenetleyiciyle Reklam Engelleyici DNS Filtresi
Hızlı erişim için kaydolun. E-postanızı aşağıya girin ve size bir onay e-postası göndereceğiz, aynı zamanda sizi bültenimize de kaydedeceğiz.
Bilgilerinizi göndererek, 16 yaşında olduğunuzu, Gizlilik Politikasını okuduğunuzu ve Şartlar & Koşullara kabul ettiğinizi onaylamış olursunuz. Coğrafi kısıtlamalar geçerlidir.
Teknolojinin En Yenilikçisiyle Tanışın: Tom’s Hardware Bültenine Kaydolun
Tom’s Hardware’in en iyi haberlerini ve derinlemesine incelemelerini doğrudan e-posta kutunuza alın.
Şimdi kaydoldunuz!
Bültene kaydolmanız başarılı oldu.
Bu e-posta adresiyle zaten bir hesap bulunmaktadır, lütfen giriş yapın.
Zeki bir hacker, 537.000 alan adını, son derece küçük, 5 dolarlık bir ESP32 reklam engelleyici adaptöre sığdırdı — yazılım sadece yaklaşık 50KB RAM kullanıyor ve engellenen istekleri 10 milisaniyede yanıtlayabiliyor.
Donanım tabanlı bir reklam engelleyici DNS filtresiyle ne kadar ucuza bir çözüm oluşturabilirsiniz? “Ücretsiz,” eğer elinizde kullanılmayan, çöpe atılmak üzere olan eski donanımlar varsa. Ancak durum buysa ne olur? RAM kıtlığı döneminde bile, bir Raspberry Pi’nin maliyeti birkaç yüz dolara ulaşabilir. Ancak, o kadar güçlü bir şeye ihtiyacınız yok. Aslında, tamamen işlevsel bir reklam engelleyici filtre oluşturmak için 5 dolarlık bir mikrodenetleyici kullanabilirsiniz; bu filtre 500.000’den fazla alan adını engelleyebilir ve yaklaşık 10 milisaniye gecikmeyle çalışabilir.

Bunun mümkün olduğunu biliyoruz çünkü Mısır’lı tam kapsamlı geliştirici ZedAxis (@M-Abozaid, GitHub’da) bunu zaten yapmış. ESP32-C3 “SuperMini” adlı bir kart kullanarak, ev ağının yedek DNS sunucusunu oluşturmuş ve bu sunucu reklam engelleme özelliği de sağlıyor. Birincil yönlendiricisi ise Pi-hole; bu, özel yazılımla çalışan ve DHCP adresleme, DNS çözümlemesi ve entegre reklam engelleme özelliklerine sahip bir Raspberry Pi’dir. SuperMini ise, Pi-Hole yeniden başlatıldığında veya kullanılamadığında yedek olarak devreye giriyor.
Bu proje, 19. yüzyılda İngiltere’de yaşanan Sanayi Devrimi’ndeki benzer bir dönüm noktasını akla getiriyor. Buhar motorunun icadı, üretim süreçlerini kökten değiştirmiş ve daha önce hayal bile edilemeyen ölçekte büyüme sağlamıştı. Benzer şekilde, bu küçük mikrodenetleyiciyle oluşturulan reklam engelleyici, internet kullanıcılarına daha güvenli ve temiz bir deneyim sunarken, aynı zamanda donanım maliyetini önemli ölçüde düşürüyor.
Ev Yapımı Ağ Reklam Engelleyici: Sadece 2 Dolar
ZedAxis’in geliştirdiği bu cihaz henüz test edilmedi, ancak çalışmayacağına dair bir neden görünmüyor. ESP32 ailesi, yerleşik Wi-Fi özellikli mikrodenetleyiciler arasında yaygın olarak bilinir ve bu tür işlevsellik, yetenekleri dahilinde değerlendirilebilir. Özellikle belirtmek gerekir ki, ZedAxis tarafından kullanılan ESP32-C3, bazı üst düzey modellerde bulunan 8MB PSRAM’e sahip olmasa da, daha düşük maliyetli bir versiyondur (ESP32’nin birçok farklı modeli bulunmaktadır).
ZedAxis’in kullandığı ESP32-C3 sadece 400KB RAM ve 4MB flash belleğe sahiptir. Bu sınırlı özelliklerle, herhangi bir büyüklükte düz metin blok listesini depolamak mümkün değildir; bu çok fazla veri gerektirir. Bu nedenle, her girişimci hakerın yapacağı gibi, verinin boyutunu küçültmek için hashleme yöntemine başvurdu. 32 bitlik hash’ler çok sayıda çakışmaya yol açarken, 64 bitlik hash’ler ise gereksiz yere fazla yer kaplayacaktır. Bu nedenle, 40 bitlik FNV-1a hash’leri kullanılarak, cihazın flash belleğinde yaklaşık 537.000 alan adının depolanması mümkün hale geldi.
Proje, bazı istatistiklerin görüntülenebildiği ve engellenmesi istenen özel alan adlarının yapılandırılabilidiği basit bir grafik kullanıcı arayüzüne (GUI) sahiptir. (Görsel kaynak: ZedAxis/YouTube)
Buradaki zekice kısım, aslında hash’lemenin kendisi değil. Alan adlarını doğrudan depolamak yerine, derleme süreci sırasında bir veya daha fazla kamuya açık blok listesi indirilir, yinelenen girdiler ve yorumlar temizlenir, her kalan alan adı 40 bitlik bir değere dönüştürülür, sonuçta elde edilen liste sıralanır ve tamamlanmış veritabanı ESP32’nin flash belleğine yazılır. Bir DNS sorgusu geldiğinde, cihaz istenen ana bilgisayar adını aynı şekilde hash’ler ve sıralanmış hash tablosuna karşı ikili arama yapar. Eşleşme bulunursa, istek engellenir. Aksi takdirde, sorgu yukarı akış çözücüsüne yönlendirilir. ZedAxis’e göre, tamamlanmış firmware sadece yaklaşık 50KB RAM kullanır ve engellenen sorgulara yaklaşık 10 milisaniyede yanıt verir.
Bu proje, benzer şekilde, internetin erken dönemlerinde geliştirilen “blacklists” kavramını akla getiriyor. O zamanlar, istenmeyen web sitelerini veya içerikleri engellemek için basit metin dosyaları kullanılıyordu. Ancak, bu yöntemlerin ölçeklenebilirliği ve verimliliği sınırlıydı. Günümüzde, benzer prensiplerle çalışan daha gelişmiş filtreleme sistemleri kullanılmaktadır, ancak temel fikir hala aynıdır: istenmeyen içeriği tanımlayıp engellemek.
Küçük Bir Cihaz, Büyük Bir Güvenlik: ESP32 Tabanlı DNS Engelleyici
ESP32 yonga setini kullanan bu küçük cihaz, aslında oldukça zekice bir tasarım barındırıyor. Normalde, ESP32’ler, yazılım güncellemelerini güvenli bir şekilde yapabilmek için yeterli bellek ayırır; böylece bir güncelleme sırasında sorun yaşanması durumunda bile cihaz kullanılamaz hale gelmez. Ancak, eğer kablosuz yazılım güncellemelerine ihtiyacınız yoksa, bu ikinci bölümü engelleyici veritabanı için kullanabilirsiniz. Kablosuz destek açıkken, proje yaklaşık 250.000 engellenmiş alan adıyla sınırlıdır. Bu özelliği kapatırsanız, bu sayı yaklaşık 537.000’e yükselir; ve tüm bunlar, genellikle bir fast-food öğününün fiyatına mal olan bir mikrodenetleyici üzerinde mümkün oluyor. ZedAxis, cihazın fiyatını 2 dolar olarak belirtiyor; ben daha ucuz SuperMini kartları bulamadım, ancak bu fiyata, küçük bir fark için çok fazla endişelenmeye gerek yok.

Elbette, bu cihaz, tam teşekküllü bir Pi-hole veya AdGuard Home kurulumunun yerini alamaz. ESP32 projesi basit bir gösterge paneline sahip olsa da, ayrıntılı kullanıcı istatistikleri, geçmiş sorgu kayıtları veya bu platformları cazip kılan tüm gelişmiş ayarları sunmuyor. Bunun yerine, bu cihaz, küçük bir “güvenlik ağı” görevi görüyor. Ağ üzerinde sessizce çalışıyor, çok az güç tüketiyor ve ana DNS sunucusu yeniden başlatma veya elektrik kesintisi nedeniyle devre dışı kaldığında bile, istemciler hala filtrelenmiş DNS yanıtları alıyor; böylece, yönlendiricinin yapılandırdığı varsayılan çözücüye geri dönmek zorunda kalmıyorlar.
Bu tür bir çözümün tarihsel bağlamı incelendiğinde, benzer stratejilerin geçmişte de kullanıldığı görülmektedir. Örneğin, Roma İmparatorluğu’nun sınırlarını korumak için inşa ettiği Hadrian Duvarı, sadece fiziksel bir engel değil, aynı zamanda psikolojik bir bariyer görevi görüyordu. Duvar, düşmanların geçişini zorlaştırırken, aynı zamanda Roma vatandaşlarına güvenlik hissi veriyordu. Benzer şekilde, bu küçük DNS engelleyici de, ağınızdaki potansiyel tehditlere karşı bir “duvar” görevi görüyor ve size huzur veriyor.
Bu yedek reklam engelleyicisi, yaratıcının ev ağına bağlandığında neredeyse fark edilmiyor. (Görsel: ZedAxis/YouTube)
Ev Yapımı Ad Blocker: Router’dan Güç Alanıyla Çalışan Minimalist Çözüm
ZedAxis isimli bir kullanıcının geliştirdiği ilginç bir proje dikkat çekiyor: Ev yapımı bir ad blocker. Bu cihaz, router’ın USB portundan aldığı güçle çalışıyor ve tüm iletişim Wi-Fi üzerinden gerçekleşiyor. Kullanılan temel bileşen, 400KB RAM’e sahip düşük maliyetli bir ESP32 mikrodenetleyici. ZedAxis, bu cihazı Huawei OptiXstar ev fiber ağ geçidinin arkasına yerleştirerek neredeyse görünmez hale getirmiş.
Bu tür projelerin yaygınlaşması pek olası görünmese de, ağ genelinde reklam engelleme isteyenlerin hala Raspberry Pi, kullanılmış mini PC veya sanal makinede çalışan AdGuard Home gibi çözümleri tercih etmesi muhtemel. Ancak, bu minimalist yaklaşım, düşük maliyetli bir mikrodenetleyici ile neler yapılabileceğine dair ilham verici bir örnek.
Projenin maliyeti ne kadar düşük görünse de, unutmamak gerekir ki, eğer proje 3D yazıcı gerektiriyorsa, o zaman “ucuz” sıfatı artık geçerliliğini yitiriyor. Ancak, kütüphanelerdeki ve atölye alanlarındaki artan sayıda 3D yazıcının erişilebilirliği, bu tür projelerin önündeki engelleri azaltıyor.
Alternatif olarak, Firefox + Ghostery + Malwarebytes Browser guard kombinasyonu ile donanım gereksinimi olmadan basit ve etkili bir reklam engelleme çözümü elde edilebilir. Ayrıca, Spybot Anti Beacon, Windows’un telemetri özelliklerini devre dışı bırakarak ek bir güvenlik katmanı sağlar.
Son olarak, unutmamak gerekir ki, bazı kullanıcılar bu tür projeleri tamamen ücretsiz olarak arkadaşları ve iş arkadaşları için gerçekleştiriyor.
Ne kadar ucuz bir proje olduğu iddia edilirse edilsin, eğer bu projenin tamamlanması için bir 3D yazıcının olması veya birinin sizin için yazdırması gerekiyorsa, o zaman bu proje kesinlikle ucuz değildir.

Burada bir 3D yazıcıya ihtiyaç yok. Bir kasa basabilirsiniz, ancak bunu yapmak zorunda değilsiniz.
Firefox + Ghostery + Malwarebytes Browser guard kombinasyonu işleri kolaylaştırıyor. Herhangi bir donanım gerektirmiyor. Spybot Anti Beacon ise Windows’un telemetri özelliklerini devre dışı bırakıyor. Basit ve etkili bir çözüm.
Bu, belirli bir işletim sistemine özgü bir çözümdür ve bazı kullanıcıların kullandığı faydalı uygulamalar için tasarlanmıştır.
Birçok kişi, telefonlardaki reklamları ve istenmeyen alan adlarını engellemek için PiHole kullanıyor. Windows üzerinde yapabileceğiniz bir şeyin, telefonlarda aynı etkiyi yaratmayacağını unutmayın.
Bu proje, ana sistem güncellenirken bile bu engelleme özelliğinin çalışmaya devam etmesini sağlayan güzel bir ek katkıdır.
Bu, yine belirli bir işletim sistemine özgü bir çözümdür ve bazı kullanıcıların kullandığı faydalı uygulamalar için tasarlanmıştır.
Ben de aynı kombinasyonu Android telefonumda kullanıyorum, ancak Windows’a özel olan Spybot Anti Beacon’u hariç. Harika sonuçlar veriyor. Yapımcısına teşekkürler. Bu, onun belirli bir ihtiyacını karşılıyor. Ancak benim gibi diğer %90+’lık kesim için çözüm basit ve etkili. Windows kullanıcıları, aynı amaca ulaşmak için genellikle “hosts” dosyasını düzenlerler. Ayrıca, Linux’un da benzer bir çözümü olduğuna inanıyorum. Ben de onu sadece katlama işlemleri için sınırlı bir şekilde kullanıyorum.
Tarihsel bağlam olarak, bu türden basit ama etkili çözümler, geçmişte farklı teknolojilerle ortaya çıkmıştır. Örneğin, Orta Çağ’da loncalar arasındaki rekabet, daha iyi üretim tekniklerinin geliştirilmesine yol açarken, günümüzde de bireysel kullanıcıların ihtiyaçlarına yönelik açık kaynaklı projeler, benzer bir yenilikçiliği teşvik etmektedir. Bu durum, hem geçmişte yaşanan gelişmelerden ders çıkarmamıza, hem de gelecekteki olası çözümleri öngörmemize yardımcı olabilir.

Elektrik Kesintisi Durumunda Wi-Fi Ağının Çalışmaya Devam Etmesi Mantıklı Mı?
Eğer bir elektrik kesintisi yaşanıyorsa, neden kablosuz ağınızın, kullandığı diğer bağlantıların, internet servis sağlayıcınızın cihazlarının (örneğin AT&T fiber hattımın kullanması gereken ayrı bir dönüştürücü var ve bu, ağ geçidinde entegre bir fiber port yerine kullanılıyor) ve çevrimiçi kalmanız için gerekli olan diğer cihazların çalışmaya devam etmesi beklenir? Ancak, PiHole’un enerji tüketimini kontrol eden cihazın (UPS) enerjisinin tükenmesine neden olacak kadar yüksek olmaması gerekir. Raspberry Pi 4 gibi bir cihazda maksimum güç tüketimi 15W civarındadır ve PiHole kullanımıyla bu değer daha da düşebilir. Bu durum, UPS’nin çalışma süresini önemli ölçüde kısaltabilir ve kritik anlarda yetersiz kalmasına neden olabilir. Ayrıca, bir Raspberry Pi’nin açılış süresi de oldukça kısa olduğundan, sistemin yeniden başlatılması kolaylıkla planlanabilir. Web taraması gibi işlemler için gerekli olan engelleme özelliğinin, bu kısa açılış süresini tolere edebileceğini düşünüyorum.
537 bin alan adının 4 MB’lık bir alanda saklanması ilk başta çok fazla görünmeyebilir, ancak verilerin sıkıştırılmasının işlem gücü ve sınırlı RAM nedeniyle mümkün olmayacağını fark ettim. Bu durum, her seferinde doğrudan flaş bellekten veri okumayı gerektirecek ve bu da ayrı satırların incelenmesini engelleyecekti. Veri boyutunu küçültmek için kullanılan karma (hashing) yöntemleri hakkında araştırma yaptım ancak tam olarak nasıl çalıştığını anlamadım. Temel fikrini kavrayabiliyorum, ancak detaylara hakim olamadım. Benzer bir durum, bitwise XOR gibi kavramları anlamakta da zorlanıyorum.
Bu tür teknik zorluklar ve sınırlamalar, geçmişte de farklı alanlarda karşılaşılan problemlerle paralellik gösteriyor. Örneğin, Osmanlı İmparatorluğu’nun geniş coğrafyaya yayılmasıyla birlikte, iletişimde yaşanan gecikmeler ve lojistik zorluklar, merkezi otoritenin etkinliğini zaman zaman azaltmıştır. Benzer şekilde, günümüzde de internet teknolojilerinin gelişimiyle birlikte ortaya çıkan güvenlik açıkları ve veri gizliliği sorunları, bireysel hakların korunması konusunda yeni zorluklar yaratmaktadır. Tarih boyunca liderler, bu tür teknik ve lojistik engelleri aşmak için farklı stratejiler geliştirmişlerdir. Örneğin, Roma İmparatorluğu’nun yollarının inşası, iletişim hızını artırarak imparatorluğun daha etkin bir şekilde yönetilmesini sağlamıştır.
Cihazın Depolama Kapasitesi ve Etkinliği Hakkında
Yapılan hesaplamalara göre, 537.000 alan adının depolanması için yaklaşık 2,56 MB’lik bir alana ihtiyaç duyulurken, ikinci firmware kopyası hala mevcut olduğunda bu miktar yaklaşık %48’e düşüyor. Ancak, cihazın üreticisi tarafından yapılan açıklamalarda, daha fazla alan adının eklenemediği ve 537.000 sayısının yalnızca ikinci firmware kopyasının silinmesiyle elde edildiği belirtiliyor. Bu durum, cihazın ilk kurulumda yaklaşık 1,4 MB’lik bir depolama alanını sadece firmware kopyaları için kullandığını gösteriyor. Kalan alanın kullanıcılar tarafından kullanılabilir olması beklenirken, bu sınırlı kapasite cihazın kullanım olanaklarını da kısıtlayabiliyor. Bu durum, daha fazla depolama gerektiren projelerin daha güçlü bir cihaza ihtiyaç duyabileceğini düşündürüyor. Günümüzde hala 4 MB’lik bellek kartlarının üretilmesi ve piyasada bulunması oldukça şaşırtıcı.
Eğer başlangıçta 256.000 alan adı depolanabiliyorduysa, ancak bu sayı daha sonra 537.000’e çıkarıldıysa, cihazın yazılımının hangi alan adlarının listede yer alacağına nasıl karar verdiği sorusu ortaya çıkıyor. Cihazda bulunan blok listelerinin toplamında, depolama kapasitesinden daha fazla benzersiz alan adı bulunuyorsa, yazılım hangi kriterlere göre seçim yapıyor? Belki de yazılım, her bir blok listesindeki alan sayılarına bakarak, istenen sayıda alanı engelleyecek bir kombinasyon oluşturuyor. Ancak, eğer bir blok listesi büyürse, bu durum listenin boyutunu aşırı artırabilir ve cihazın etkinliğini azaltabilir. Bu durumda, engellenemeyen alan adı sayısı artarken, aynı zamanda hash tablolarında çakışma olasılığı da yükselir. Belki de 40 bitlik bir hash boyutu, depolanabilecek maksimum alan adlarının sayısıyla uyumlu olacak şekilde seçilmiştir. Daha fazla depolama alanı ve daha fazla alan adının kullanılması, kabul edilebilir bir çakışma olasılığı sağlamak için daha büyük boyutlu hash’lere ihtiyaç duyulmasına yol açabilirdi.
Tarihsel olarak, benzer sınırlamalarla karşılaşıldığında, farklı teknolojiler geliştirilerek çözümler bulunmuştur. Örneğin, erken dönem bilgisayarlarda bellek kapasitesi oldukça sınırlıydı ve programlar genellikle kartlara veya manyetik bantlara yazılırdı. Bu durum, programcıların çok dikkatli bir şekilde kod yazmalarını ve mevcut kaynakları en verimli şekilde kullanmalarını gerektiriyordu. Zamanla, daha büyük kapasiteli bellekler geliştirildi ve bu da programlama dillerinin ve yazılımın gelişimini hızlandırdı. Benzer şekilde, günümüzde de cihazlardaki sınırlamaların aşılması için sürekli olarak yeni teknolojiler araştırılıyor ve geliştiriliyor.
Ağ Seviyesi Engelleme Cihazları ve Kullanım Kolaylığı
Ağ seviyesinde çalışan engelleme cihazlarını birkaç kez değerlendirdim, ancak tek bir cihazın erişimini hızlı bir şekilde yönetememek, benim için pratik olmuyor. Tarayıcı uzantılarıyla, bir web sitesinin erişimini geçici veya kalıcı olarak engelini kaldırmak sadece birkaç tıklamayla mümkün oluyor. Bu sayede, belirli bir içerik için gerekli olan komut dosyalarını veya reklamları etkinleştirebiliyorum, ancak bunu kalıcı olarak izin listesine eklemek yerine, farklı bir tarayıcı kullanarak veya engellemenin tamamen devre dışı bırakarak daha temiz bir çözüm elde ediyorum. Telefonumda AdGuard’ın ücretsiz hizmetini kullanıyorum ve bazı web sitelerine erişememek can sıkıcı olabiliyor çünkü bir reklam alanının engellenmesi nedeniyle sayfanın içeriği görüntülenmiyor ve bu durumda istediğim gibi izin vermeme olanak bulunmuyor.
Bu durum, benzer zorlukların yaşandığı başka dönemleri de akla getiriyor. Örneğin, Osmanlı İmparatorluğu’nun farklı etnik ve dini grupları bünyesinde barındırdığı dönemlerde, merkezi otoritenin bu çeşitliliği yönetmekte karşılaştığı sorunlar, günümüzdeki dijital dünyadaki erişim kısıtlamalarına benzer zorluklar yaratabiliyordu. Her ne kadar farklı bağlamlarda olsalar da, her iki durumda da esnekliğin ve uyumun önemi vurgulanıyor.
Kaynak: Tom’S Hardware