Pi-hole Kurulum Rehberi
Güncelleme Tarihi: 27.04.2021
Pi-hole Nedir?
Pi-hole, internetteki reklamları, zararlı yazılım barındıran siteleri ve izleyicileri engellemek için kullanılan ücretsiz ve özgür bir sunucu yazılımıdır. Bir DHCP sunucusu olarak kullanıldığında aynı ağdaki tüm cihazların korunmasını sağlar. Pi-hole, Linux üzerinde çalışır, yükleyip kullanabilmek için Linux çalıştıran bir cihaza/bilgisayara ihtiyaç vardır. Kullanıcıların büyük bir kısmı Pi-hole yazılımını Raspberry Pi cihazlarına kurarlar. Biz de bu yazıda Pi-hole yazılımını Raspberry Pi cihazına kurup çalıştırmayı ele alacağız.
Web tarayıcısına bir reklam engelleme eklentisi kurup çalıştırmaktan daha iyidir. Pi-hole kullanan bir ağa bağlı tüm cihazlar ekstra bir yazılıma veya ayara ihtiyaç duymadan reklam ve izleyicilerden temizlenir. Web tarayıcısındaki eklenti yalnızca tarayıcıdaki etkinlikleri kapsar, Pi-hole ise üzerinden geçen geçen tüm internet trafiğini kapsar. Bu sayede Pi-hole ağına bağlı mobil cihazlardaki ve akıllı TV’lerdeki uygulama içi reklamlar dahi engellenir. Ayrıca istatistikleri görüntülemek ve etkinlikleri kontrol etmek için kullanılan bir web arayüzü panosuna sahiptir. Pi-hole’ün teknik olarak yaptığı iş, kara listeye eklenmiş bir bağlantı isteği aldığında onu 0.0.0.0 ip adresine, aksi durumda ise ‘upstream server’a (OpenDNS, Cloudflare, GoogleDNS ..) aktarmaktır. Dilerseniz kendi ‘upstream server’ (DNSCrypt-Proxy v.s.) yazılımınızı da Rapberry Pi cihazına kurup kullanabilirsiniz. DNSCrypt-Proxy kurulum talimatlarını makalenin sonunda bulabilirsiniz.
Raspberry Pi OS Kurulumu (Eski adıyla Raspbian)
Bu makaleyi okuduğunuza göre büyük ihtimalle bir Raspberry Pi cihazınız var ve işletim sistemi yüklü. Eğer elinizde Raspbian işletim sistemi kurulu bir Raspberry Pi varsa bu adımı geçebilirsiniz.
Pi-hole, minimum donanım ve yazılım gereksinimleriyle sorunsuz çalışır. Raspberry Pi 2, 3, 4 veya Zero üzerinde çalışabilir. Genellikle Zero modeli tercih edilir. Pi-hole için 512MB RAM ve 4GB SD kart yeterlidir. Zero modelinin enerji tüketimi oldukça azdır bu sayede modeminizin USB çıkış voltajıyla besleyebilirsiniz. Zero modelinde entegre bir Ethernet portu bulunmadığından, eğer modeme Ethernet kablosu ile bağlamak isterseniz bir adaptöre ihtiyacınız olacaktır. Bu yazıda Zero-W veya wifi desteklekli başka bir Raspberry Pi modelini wifi ile modeme bağlayabilmeniz için gereken ayarları bulacaksınız.
Raspbian’ı Raspberry Pi’ya yüklerken birkaç seçeneğimiz var, ben Raspberry Pi OS (32-bit) Lite
sürümünü kullandım. Bu sürümde bir masaüstü grafik arayüzü bulunmuyor ve herhangi bir ekrana veya klavyeye ihtiyaç duymuyor. Kurulumu ve kullanımı ağ üzerinden gerçekleştireceğiz.
- Raspberry Pi OS (32-bit) Lite Image İndirme
Raspbian’ı şu adresten indirebilirsiniz. https://www.raspberrypi.org/downloads/raspberry-pi-os/ Dilerseniz farklı bir sürümü de kullanabilirsiniz ama bu işlem için en uygun seçim “Raspberry Pi OS (32-bit) Lite” olacaktır. - Raspberry Pi OS (32-bit) Lite Image’ını SD Karta Yazdırma
İndirdiğiniz img dosyasını “Win32DiskImager” yardımıyla SD kartınıza kurun: Win32DiskImager İndirme Linki: https://sourceforge.net/projects/win32diskimager/ img dosyasını ve kurulum yapacağınız SD kartı seçin ve “write” butonuyla imajı SD karta yazdırın.
Ağ Üzerinden Raspberry Pi Cihazına Bağlanma
- SSH Etkinleştirme
Pi-hole kurulumunu ağ üzerinden gerçekleştireceğiz bu yüzden SSH’ı (Secure Shell, uzak sunucu bağlantı protokolü) etkinleştirmemiz gerekiyor. SSH’ı etkinleştirebilmek için SD kartın boot bölümüne uzantısı olmayanSSH
adında boş bir dosya oluşturun. Raspberry Pi açıldığında boot klasöründe SSH dosyasını arar eğer dosyayı bulursa SSH etkinleştirilir ve dosya silinir. Ayrıntılı bilgiye ihtiyaç duyarsanız şu bağlantıdan 3. adıma bakabilirsiniz: https://www.raspberrypi.org/documentation/remote-access/ssh/
- Raspberry Pi Zero-W İçin Wi-fi Ağ Bağlantısı
Raspberry pi Zero-W modelinde ağa wi-fi ile bağlanabilmek için SD kartın boot bölümüne (ana dizinine)wpa_supplicant.conf
adında ikinci bir metin dosyası oluşturmanız gerekiyor. Bu dosyanın içine bağlanacağımız ağın ağ bilgilerini ekleyeceğiz. Oluştutduğunuz metin dosyasının içine aşağıdaki kodu kopyalayıp yapıştırın. Dosyanın içindeki ağ adı (Wİ-Fİ-ADI) ve ağ parolası (Wİ-Fİ-PAROLASI) bölümüne kendi wi-fi ağ bilgilerinizi girin. Dosyayıwpa_supplicant.conf
olarak kaydedin. Dosyanın uzantısı.conf
olmalıdır. Dosyayı.txt
uzantısı ile kaydetmediğinize emin olun.\
- Raspberry Pi Cihazı Çalıştırın
SD kartınızı Raspberry Pi cihazınıza takın ve güç kablosunu bağlayıp çalıştırın. Eğer Raspberry Pi cihazını modeme bağlanmak için ethernet kablosu kullanacaksanız kablo bağlantısını yapın. Raspberry Pi’yın başlamatılması yaklaşık 1.5 dakika sürecektir. - Raspberry Pi İp Adresini Öğrenme
Kurulumu ağ üzerinden gerçekleştireceğimiz için Raspberry Pi cihazının ip adresine ihtiyacımız olacak. İp adresini birkaç farklı yolla öğrenebilirsiniz. Modeminizin arayüzünden veya ağdaki cihaz ip’lerini tarayan bir programı bilgisayarınıza/telefonunuza kurarak öğrenebilirsiniz. Ben bu işlemler için çoğunlukla “Advanced IP Scanner” programını kullanıyorum. Advanced IP Scanner programını şu adresten indirebilirsiniz: https://www.advanced-ip-scanner.com/tr/
- PuTTY ile Raspberry Pi Cihazına Bağlanma
Raspberry Pi cihazımızın ip adresini öğrendiğimize göre artık cihazımızın terminaline bağlanabiliriz. Bu işlem (SSH) için sıklıkla “PuTTY” adlı program kullanılıyor. Eğer Bilgisayarınızda yüklü değilse şu adresten indirebilirsiniz: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Programı çalıştırın ve aşağıdaki ekran görüntüsündeki gibi Raspberry Pi cihazının ip adresini girin ve ardından “Open” butonu ile cihaza bağlanın.
Eğer başarılı bir şekilde bağlanabilirseniz Raspberry Pi sizden bir kullanıcı adı ve parola isteyecek. Varsayılan kullanıcı adı ve şifre aşağıdaki gibidir:
Pi-hole Kurulumu
Kurulumu “root/su” kullanıcısı olarak yapmamız gerekiyor, en azından ilerleyen adımlarda sorun yaşamamak bu adımı atlamamakta fayda var. root olarak işlem yapabilmek için aşağıdaki komutlardan birini çalıştırın:
Not:
Bazı kurulumlarda yaşanan DNS sorununu yaşamamak için kuruluma başlamadan önce Raspberry Pi’daki nameserver’i (27.0.0.1) geçici olarak tercih ettiğiniz bir DNS hizmetine kaydedin. (aşağıdaki kodu çalıştırın):
[19.10.2024] Sorunu ve çözüm yolunu bildiren: Çağatay İlhan
Pi-hole uygulamasını tek adımda otomatik olarak kurmak mümkün, kurulumu başlatmak için aşağıdaki komutu çalıştırın:
Komutu çalıştırdığınızda kurulum sihirbazı başlayacak. Kurulum aşamasında Pi-hole hakkında bize bazı bilgiler gösterilecek ve bazı ayarları yapmamızı isteyecek. Bu ayarların büyük bir kısmını varsayılan olarak bırakacağız. Eğer farklı bir versiyon kuruyorsanız veya tereddütte kalırsanız varsayılan ayarı olduğu gibi bırakın. Kurulum tamamlandıktan sonra istediğiniz ayarı web ara yüzünden değiştirebilirsiniz.
Aşağıdaki gibi bilgilendirme pencerelerinde “ok” seçeneğini seçip geçiyoruz.
Bu adımda bir DNS sağlayıcısı seçmenizi istiyor. Genellikle Cloudflare kullanılıyor ben de ilk kurulumda Cloudflare DNS sağlayıcısını seçtim.
Pi-hole tarafından hazırlanmış listeleri (blacklist) yüklemek isterseniz her iki seçeneği işaretleyin. Bu liste sürekli güncelleniyor. Kurulum tamamlandıktan sonra kendi listelerinizi oluşturabilir veya Github üzerinde paylaşılan farklı listeleri de yükleyip kullanabilirsiniz.
Aşağıdaki pencerede ise kullanmak istediğimiz ip protokolünü seçmemizi istiyor. Şu anda Türkiye’de ipv6 desteklenmiyor o yüzünden sadece ipv4 seçeneğini işaretleyebilirsiniz.
Pi-hole sunucusunun statik adresi.
Aşağıdaki ayarları tercihinize göre değiştirebilirsiniz, ancak ilk penceredeki admin web arayüzünü mutlaka kurun(işaretli bırakın). Ben bu ayarları olduğu gibi bıraktım.
Kurulum tamamlandığında web arayüzne giriş yapabilmeniz için bir parola verecek. Bu parolayı not edin. Eğer parolayı değiştirmek isterseniz aşağıdaki komutu kullanabilirsiniz.
Artık Raspberry Pi cihazınızın ip adresini bilgisayarımızın web tarayıcısına yazarak veya http://pi.hole/admin linkini yazarak Pi-hole uygulamasına erişebilirsiniz.
Pi-hole uygulamasını DNS sunucusu olarak kullanabilmek için 3 tane seçeneğimiz.
1. İç ağdaki her cihaza Pi-hole adresini DNS adresi olarak ayarlamak. Bu seçeneği kullanırsanız Pi-hole ile reklamları engellemek istediğiniz her cihaza Pi-hole adresini DNS adresi olarak elle girmeniz gerekiyor.
2. Pi-hole uygulamasını DHCP sunucusu olarak ayarlamak, dns sunucuları Pi-hole yönlendirmek.
Bunu için “settings” -> “DHCP” yolunu izleyin ve DHCP “server enabled” seçeneğini işaretleyin. Pi-hole aşağıda bulunan resimdeki gibi belirlediğiniz aralıktaki ip adreslerini Pi-hole yönlendirir bu sayede modeme bağlanan hiçbir bilgisayara ya da cihaza bir ayar yapmanıza gerek kalmaz. Bu seçeneği kullanacaksanız modeme bağlanan bilgisyarın verdiğiniz aralıkta bir ip adresi almış olması gerekiyor. Aşağıdaki resimdeki görüldüğü gibi dağıtılacak IP adresi aralığı belirleyebilirsiniz.
Eğer Pi-hole’ü DHCP sunucusunu kullanmaya karar verdiyseniz modemizin DHCP sunucusu devre dışı bırakın.
3. Modemden DNS Sunucusu olarak Pi-hole seçmek. Bu şekildeki bir kullanımda hiçbir cihaza (bilgisayar/telefon …) DNS ayarı yapmanıza gerek kalmaz. Bu ağa bağlanacak tüm cihazlar Pi-hole üzerinden İnternet’e bağlanır.. (Modemlerin kullanıcı ayarları birbirinden farklılık gösterir)
Pi-hole birçok komut kullanır, komut satırı arayüzünde kullanabileceğiniz birkaç komut:
Tamamı: https://docs.pi-hole.net/core/pihole-command/
Pi-hole Core Komutları:
Pi-hole Web Komutları:
DNSCrypt-Proxy Kurulumu
DNSCrypt-Proxy, anonimleştirilmiş şifrelenmiş DNS protokollerini destekleyen esnek bir DNS proxydir.
Ben bu yazıyı yazarken en güncel sürümü “2.0.45” idi.
Kuruluma başlamadan önce şu adresten en güncel versiyonu kontrol edebilirsiniz, kurulumu Raspberry Pi cihazına yapacağımız için linux-arm
sürümünü seçmelisiniz.
https://github.com/DNSCrypt/dnscrypt-proxy/releases
Kurulum için aşağıdaki adamları sırasıyla uygulayın.
dnscrypt-proxy.toml dosyasındaki ayarları aşağıdaki gibi değiştirin.
53 numaralı port Pi-hole tarafından kullanıldığı için listen_addresses satırındaki portu 5300 olarak değiştirin.
Aşağısaki komutlar yardımıyla ayarları kurun ve çalıştırın.\
Daha sonra Raspberry Pi’yi statik bir IP adresi için yapılandırmalıyız. Bu işlem için aşağıdaki komutu girin:
static domain_name_servers
yazan satırı aşağıdaki gibi değiştirin.\
Pi-hole ile oturum açın, ayarlardan DNS’e gidin. (settings -> DNS)
Tüm Upstream DNS Servers
seçeneklerini kaldırın.
Custom 1’e (IPv4) 127.0.0.1#5300
girin ve kutuyu işaretleyin ve değişiklikleri kaydedin.
Raspberry Pi’nizi yeniden başlatın.
Tüm DNS sorgularının düzgün çalıştığını ve Pi-hole’un bazı istekleri engellediğini doğrulayın. Aşağıdaki komutu çalıştırdığınızda ‘iadsdk.apple.com’ engelli bir adres olduğu için 0.0.0.0 döndermelidir.
Eğer DNSCrypt-Proxy başarılı bir şekilde çalışıyorsa aşağıdaki gibi bir sonuç döndermelidir.