Pi-hole, bir DNS ve DHCP sunucusu çalıştırarak ağa hizmet veren açık kaynak kodlu bir reklam engelleyici yazılımdır[1]. Ağınızda pi-hole kurulu bir Raspberry Pi bulundurarak, web sayfalarındaki tüm reklamlardan kurtulabilirsiniz. Bunun için ağdaki diğer bilgisayarlara DNS sunucu olarak pi-hole kurulu Raspberry Pi’ın IP adresini tanımlamanız yeterlidir. Böylece ağınızdaki internet kullanan tüm cihazlar herhangi bir reklam engelleyici program kurmadan, reklamlardan kolayca ve topyekûn temizlenir.
Pi-hole reklamları engelleyerek internet bant genişliğinin etkin kullanılmasını sağlar. Ayrıca tarayıcılar web sayfalarındaki engellenen reklam işlevlerini çalıştırmadıklarından işlemci ve ram kullanımından da tasarruf edilir. Reklam verenler tarafından çevrim içi alışkanlıklarınızın takip edilmesini önler. Pi-hole’un sağladığı avantajları aşağıdaki gibi sıralayabiliriz:
- Ücretsizdir.
- Ağ genelinde hizmet verir.
- İstemcilere program yüklemeyi gerektirmez.
- Ağdaki herhangi bir cihazın reklamları almasını önler.
- Ağ başarımını iyileştirir.
- Başarım ve kullanım istatistiklerini web arayüzünden raporlar.
- Sahip olduğu API desteği ile pi-hole işlevlerini kendi programlarınız içinden kullanabilirsiniz.
- Dâhili DHCP sunucusu vardır.
Pi-hole temel olarak; reklam verenlerin alan adlarının güncel bir kara listesini (120.000’den fazla alan adı) tutarak, bu alan adlarının DNS sorgu isteklerini kendi adresi ile yanıtlar. Böylece pi-hole’u DNS sunucu olarak kullanan tüm ağ cihazları reklam içeriklerinden en başta yalıtılmış olur ve bu konuda bir ağ trafiği oluşmaz.
Pi-hole’u kurmak için öncelikle root kullanıcısına geçin ve aşağıdaki komutu vererek kurulumu başlatın. Bu komut ile bir kurulum betiği indirilerek, bash kabuğu ile çalıştırılacaktır.
1 2 3 |
pi@raspberry:~ $ sudo su pi@raspberry:~ # sudo curl -sSL https://install.pi-hole.net | bash |
Kurulumun genel adımlarından bahsetmek gerekirse; Pi-hole, çalışabilmek için Raspberry Pi’ın sabit bir IP adresine sahip olmasını gerekli kılar. Bu adres ağdaki diğer cihazlara DNS sunucu adresi olarak tanımlanır. Bunun için aşağıdaki ekran da sabit adres tanımlamak istediğiniz arabirimi seçmeniz istenir:
1 2 3 4 5 6 |
Choose An Interface (press space to select) (*) eth0 available ( ) wlan0 available ( ) usb0 available |
Pi-hole sonraki aşamada alan adlarını çözmek için (IP adreslerine çevirmek için) kullanacağı bir DNS sunucu adresini seçmenizi ister:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Select Upstream DNS Provider. To use your own, select Custom. Google ↑ OpenDNS ▮ Level3 ▒ Norton ▒ Comodo ▒ DNSWatch ▒ Quad9 ↓ |
Sonraki aşamada, Raspberry Pi hâlihazırda kullandığı IP yapılandırmanızı listeleyerek bu ayarları kalıcı hale getirmenizi tavsiye eder. Dilerseniz bu aşamada yeni bir IP yapılandırması girebilirsiniz Yapılandırma Raspberry Pi’ın sabit IP adresi ve alt ağ maskesini ile ağ geçidini içerir. Sonraki aşamada pi-hole başarım durumunu ve istatistiklerini takip edebilmek için kullanılan web arayüzünü de kurmak isteyip istemediğinizi sorar:
1 2 3 4 5 |
Do you wish to install the web admin interface? (*) On (Recommended) ( ) Off |
Sonraki aşamada ağdaki cihazlar tarafından yapılan DNS sorgu isteklerinin bir günlük (log) kaydını tutmak isteyip istemediğiniz sorulur. Günlükler disk alanı tüketeceğinde, bu günlüklere ihtiyacınız yoksa kapatabilirsiniz:
1 2 3 4 5 6 7 |
Do you want to log queries? (Disabling will render graphs on the Admin page useless): (*) On (Recommended) ( ) Off |
Kurulum tamamlandıktan sonra aşağıdaki gibi bir rapor ekranı görüntülenir:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Configure your devices to use the Pi-hole as their DNS server using: IPv4: 192.168.2.234 IPv6: Not Configured If you set a new IP address, you should restart the Pi. The install log is in /etc/pihole. View the web interface at http://pi.hole/admin or http://192.168.2.234/admin Your Admin Webpage login password is KNxbTtJ4 |
Yukarıdaki raporda pi-hole sunucusunun adresi ve kurulum günlüğünün konumu görüntülenmektedir. Pi-hole web arabirimine erişmek için pi-hole sunucusunun adresinin (IP adresi) sonuna /admin yazın. Yönetim sayfasının parolası da KNxbTtJ4 gibi rasgele oluşturulan bir paroladır.
Pi-hole’un çalışıp çalışmadığını sınamak için komut satırında nslookup aracından faydalanabilirsiniz. Aşağıdaki komutlar ile pi-hole’u kurulu olduğu Raspberry Pi bilgisayarının adresi olan 192.168.2.234 üzerinde çalışan DNS sunucusuna adservice.google.com reklam alan adının IP adresi sorulmakta ve cevap olarak pi-hole kendi IP adresini döndürmektedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
pi@raspberry:~ $ nslookup > server 192.168.2.234 Default server: 192.168.2.234 Address: 192.168.2.234#53 > adservice.google.com Server: 192.168.2.234 Address: 192.168.2.234#53 Name: adservice.google.com Address: 192.168.2.234 |
Bloklanan alan adlarını bir web tarayıcısı ile ziyaret ettiğinizde pi-hole aşağıdaki gibi bir web sayfası görüntüler. Bu sayfa üzerinden alan adı hakkında teknik bilgi alabileceğiniz gibi alan adını izin verilenler (whitelist) listesine eklemek için yönetici parolasını kullanabilirsiniz.
Engellenen bir alan adı için pi-hole sayfası
pi-hole’u kullanmaya başlamak için ağdaki istemcilere DNS adresi olarak pi-hole’u kurduğunuz Raspberry Pi’ın IP adresini tanımlamanız yeterlidir. Ancak istemcilere ulaşma şansınız yoksa veya onlarla ayrı ayrı uğraşmak istemiyorsanız DHCP sunucunuza pi-hole’un IP adresini tanımlayabilirsiniz. Eğer internet bağlantınızı bir kablo ya da DSL modem üzerinden sağlıyorsanız, cihazınızın paneline ulaşarak DHCP yapılandırma ayarları kısmından pi-hole’un DNS adresini girebilirsiniz. Dilerseniz pi-hole ile birlikte gelen DHCP sunucusunu da bu iş için kullanabilirsiniz. Bu durumda ağda çakışma olmaması için mevcut DHCP sunucunuzu devre dışı bırakmanız gerekir.
Pi-hole’un web arabirimine ulaşmak için tarayıcınızın adres çubuğuna aşağıdaki adresini yazarak, login bağlantısına tıklatın ve kurulum sonunda oluşturulan parolayı girin:
1 |
<a href="http://192.168.2.234/admin/">http://192.168.2.234/admin/</a> |
Pi-hole yönetim sayfası
Yönetim arabiriminin giriş sayfasında toplam DNS sorgu sayısı ve bloklanan alan adı sayısı gibi kullanım istatistikleri görüntülenir. Soldaki menüden login bağlantısını tıklatarak, kurulum sırasında oluşturulan parola ile yönetim sayfasına ulaşabilirsiniz. Giriş yaptıktan sonra, soldaki menü aracılığı ile kısıtlamak istediğiniz (blacklist) veya izin vermek istediğiniz (whitelist) alan adlarını tanımlayabilir veya pi-hole’u devre dışı bırakabilirsiniz.
Pi-hole kendi içinde bir DHCP sunucusuna da sahiptir. Ağınızın DHCP sunucusunda DNS adresi tanımlayamıyorsanız onu devre dışı bırakarak, pi-hole’un kendi DHCP sunucusunu kullanabilirsiniz.
Pi-hole’un komut satırından kullanabileceğiniz bazı özelliklerinden bahsetmek faydalı olabilir. DNS sorgu işlemlerini canlı olarak izlemek için –t (tail) seçeneği kullanılır. Tail ile pi-hole tarafından çözülen ve bloklanan alan adları canlı olarak listelenir:
1 |
pi@raspberry:~ $ pihole –t |
pi-hole yönetici parolasını sıfırlamak için –a (admin seçenekleri) ve –p (parola) seçeneklerinden faydalanabilirsiniz:
1 2 3 |
pi@raspberry:~ $ sudo pihole -a –p Enter New Password (Blank for no password): |
Status, disable ve enable argümanları ile sırasıyla pi-hole servislerinin durumunu görüntüleyebilir, reklam alan adlarını engelleme işlevini devre dışı bırakabilir ve etkinleştirebilirsiniz:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
pi@raspberry:~ $ pihole disable [i] Disabling blocking [✓] Restarting DNS service [✓] Pi-hole Disabled pi@raspberry:~ $ pihole status [✓] DNS service is running [✗] Pi-hole blocking is Disabled pi@raspberry:~ $ pihole enable [i] Enabling blocking [✓] Restarting DNS service [✓] Pi-hole Enabled |
Pi-hole’un alan adı listesi sıklıkla güncellenir. Bu listeyi kendinize çekmek ve pi-hole’un alt sistemlerini güncelleme için –g (updateGravity) ve –up (updatePihole) seçeneklerinden faydalanabilirsiniz:
1 2 3 |
pi@raspberry:~ $ pihole –g pi@raspberry:~ $ pihole –up |
-s (status) parametresi ile canlı istatistiki bilgileri görüntüleyebilir, -j seçeneği ile bu bilgileri json biçiminde listeletebilirsiniz:
1 2 3 |
pi@raspberry:~ $ pihole –c pi@raspberry:~ $ pihole -c -j |
[1] Pi-hole GitHub sayfası: https://github.com/pi-hole