pfSense, FreeBSD temelli güçlü bir açık kaynaklı yönlendirici/güvenlik duvarı işletim sistemidir. Kutudan çıktığında, pfSense, güvenli bir ağ oluşturmanıza olanak tanıyan sağlam araçlara sahiptir.
Ancak pfSense, resmi depo üzerinden paketler yüklemenize de imkan tanır, böylece sistemimize daha fazla işlevsellik katabilirsiniz.
pfSense, FreeBSD temelli güçlü bir açık kaynaklı yönlendirici/güvenlik duvarı işletim sistemidir. Kutudan çıktığında, pfSense, güvenli bir ağ oluşturmanıza imkan tanıyan güçlü araçlarla birlikte gelir.
Ama pfSense, sistemde daha fazla işlevsellik eklemek için resmi depo üzerinden paketler yüklemenizi de sağlar.
Bu paketlerden biri Squid olarak adlandırılır. Squid, içerik filtreleme de yapabilen bir önbelleğe alan web vekilidir. Bu kavramı biraz daha açalım ve vekil sunucuların ve kullanımlarının etrafında biraz bağlam sağlayalım.
İlgili rehber: pfBlockerNG Kullanarak pfSense’te IP Filtrelemesi ve DNS Blackholing Nasıl Kurulur
Vekil sunucuların içerik önbelleğe almasındaki ve filtrelemesindeki rolü, aynı zamanda pfSense’te reklam engellemek için Squid ve SquidGuard’ı nasıl yapılandıracağınızı tartıştım.
Bunu yaparak kullanıcılar güvenliklerini ve gizliliklerini artırabilir, bant genişliği tüketimini azaltabilir ve web sayfası yükleme hızlarını artırabilirler.
Vekil sunucu, cihazınız (dizüstü bilgisayar, tablet, akıllı telefon) ile son internet hedefiniz (herhangibirsite.com) arasında aracı bir sunucudur.
Trafik cihazınızdan ayrılır, vekil sunucuya bağlanır ve ardından bu vekil sunucudan son hedefine yönlendirilir.
Trafiklerinizi neden vekil sunucu üzerinden gönderiyorsunuz? Bunun birkaç nedeni var. Bunlardan biri içerik önbelleğidir. Bu, vekil sunucunun bazı içerikleri yerel olarak saklayacağı anlamına gelir, böylece bir müşteri bu içeriği bir sonraki seferde talep ettiğinde, bu içerik önbellekten sunulur ve tekrar indirilmek için internette dolaşmaz.
Bu, internet gezinmenizi hızlandırır çünkü vekil sunucunun yerel önbelleğinden içerik getirmek, internet üzerinden bir indirmeyi yeniden başlatmaktan çok daha hızlıdır.
Bir diğer amaç ise içerik filtrelemesidir. İçerik filtreleme, belirli alan adlarına veya IP adreslerine bağlantıları engelleme anlamına gelir. Örneğin, Facebook’a erişimi engelleyen kuruluşlar içerik filtrelemesi yapıyorlar.
İçerik filtrelemesi için bir diğer kullanım ise reklamları engellemektir. Çevrim içi reklamlar çok rahatsız edicidir. Gizliliğinizi ihlal ederler, bant genişliğinizi tüketirler ve büyük bir kötü amaçlı yazılım vektörüdürler. Onlardan kurtulmak için mükemmel nedenler var. Ve işte bu makalede Squid’i bu amaçla kullanacağız.
Bu yazıda, tüm cihazlarınızda reklamları engellemek için pfSense üzerinde Squid ve SquidGuard’ı (SquidGuard, liste tabanlı filtrelemeyi etkinleştiren Squid’in ek bir bileşenidir) nasıl yapılandıracağınızı göstereceğiz.
Bu rehber, çalışan WAN ve LAN arayüzleriyle yapılandırılmış çalışan bir pfSense sisteminiz olduğunu ve GUI erişiminiz olduğunu varsayar.
İlk yapmamız gereken şey, Squid vekil sunucusunu kurmaktır.
1. Üst menülerden, Sistem > Paket Yöneticisini seçin. Paket Yöneticisi‘nin Kurulu Paketler sekmesine yönlendirilirsiniz.
2. Mevcut Paketleri seçin. Mevcut paketlerin listesi görüntülenir.
3. squid‘i görene kadar aşağı kaydırın ve Kur‘a tıklayın. Paket Yükleyici penceresi görüntülenir.
4. Onayla‘ya tıklayın. Kurulum başlar.
5. Kurulum tamamlandığında, Paket Yükleyici penceresinin altında Başarılı yazısını görmelisiniz. Squid şimdi kurulmuştur.
Squid artık kurulduğuna göre, yeni vekil sunucumuzu yapılandıralım.
Üst menülerden, Hizmetler > Squid Vekil Sunucusunu seçin. Squid Ayarları‘nın Genel sekmesine yönlendirilirsiniz.
Squid’i bölüm bölüm yapılandırmayı ele alacağız. Amacımız Squid ile reklam engelleme ayarı yapmak, bu yüzden her alt menüye girmeyeceğiz. Sadece hedefimize ulaşmamız için gerekenlere gireceğiz. Bahsedilmeyen ayarlar varsayılan değerlerinde bırakılmalıdır.
Squid’i yapılandırmadan önce, Yerel Önbellek sekmesine gitmeli ve sayfanın altında Kaydet’e tıklayarak varsayılan yerel önbellek ayarlarını kabul etmeliyiz.
Varsayılan yerel önbellek ayarlarını kabul etmeden vekil sunucuyu yapılandırmaya çalışırsanız, bunu yapmanız için yönlendirilir ve şu ana kadar yapılandırdığınız ayarları kaybedersiniz.
Yerel önbellek ayarlarınızı daha sonra ayarlamak isterseniz, bunu Squid Ayarları Yerel Önbellek sekmesinden yapabilirsiniz.
Proxy sunucuları iki şekilde çalışabilir: şeffaf veya açık. Şeffaf modda, müşterilerinizde (bilgisayar, tablet, akıllı telefon vb.) hiçbir yapılandırma gerekmez – trafiği şeffaf bir şekilde yönlendirilir.
Ancak bu mod sadece port 80 üzerinden HTTP trafiğini yönlendirir, HTTPS trafiğini değil (Aşağıda daha fazlası var – Ortada Adam SSL filtrelemesi yapılandırırsanız). Çoğu internet trafiği HTTPS kullanarak gerçekleştiği için şeffaf modun reklam engelleme için sınırlı kapsamı vardır ama önbellekleme için yine de faydalı olabilir.
Açık mod, her müşterinin proxy’ye “erişim isteği”nde bulunmasını yapılandırmanızı gerektirir. Ve bu modda, tüm TCP internet trafiği yönlendirilir (HTTP ve HTTPS). Bizim bu rehberde istediğimiz budur. Bu yüzden bu rehberde Şeffaf modu etkinleştirmeyeceğiz, ama her iki modu da sorunsuz bir şekilde kullanabilirsiniz.
Yukarıda belirttiğim gibi, HTTPS bağlantılarını şeffaf bir şekilde yönlendirmek mümkündür. Ancak bunu yapmak için aslında HTTPS’i kırmalısınız.
Squid, erişmeye çalıştığınız web sitesinden uygun SSL sertifikasını kendi sertifikasıyla değiştirebilir, bağlantıyı şifresini çözebilir ve kendi sertifikasıyla tekrar şifreleyebilir. Bu, SSL bağlantılarını filtrelemenize olanak tanır, ancak tarayıcınızda gerçekleşmesi gereken HTTPS doğrulamasını da bozar.
Ortada Adam SSL filtrelemesini sadece ne yaptıklarını bilen kişilerin belirli amaçlar için kullanmasını önermiyorum. Bu özelliği de devre dışı bırakacağız.
Buradaki ayarlar isteğe bağlıdır ama Squid başlıklarında görüntülenen bilgi miktarını sınırlayacaktır.
Squid ile açıkça neyi engelleyebileceğimizi görmek için ACL sekmesine gitmemiz gerekiyor.
Squid’in süzgeç olarak kullanması için farklı elementleri tanımlayabileceğimiz birçok kutucuk olduğunu görebiliriz. Haydi hepsine bir göz atalım.
İzin Verilen Alt Ağlar
Squid proxy’ye ekstra alt ağlar ekleyebilirsiniz. Bu, sistemde bir arayüze bağlı olmayan IPSec gibi alt ağlar için kullanışlıdır. Örneğimizde buraya bir şey eklememize gerek yok.
Sınırsız IP’ler
Bu bölümde listelenen IP adreslerinin trafiği proxy sunucusu tarafından süzülmeyecektir.
Yasaklı Sunucu Adresleri
Bu bölümde listelenen IP adreslerine, alt ağının izinli olmasına rağmen proxy sunucusunu kullanma izni verilmeyecektir.
İzin Verilenler Listesi
İzin Verilenler Listesi kutucuğunda listelenen alan adları, proxy’yi kullanmaya yetkili olan tüm sunuculara açık olacaktır. İzin verilenler listesindeki girdiler, yasaklılar listesindeki herhangi bir girdiyi geçersiz kılar.
Yasaklılar Listesi
Yasaklılar Listesi kutucuğunda listelenen alan adları, proxy sunucusunu kullanmaya izin verilen tüm sunucular için erişilemez olacaktır.
Kullanıcı Ajanlarını Engelle
Bu kutu, belirli uygulamaların internete erişimini engelleme konusunda son derece kullanışlıdır. Bir uygulama internete talepte bulunduğunda, başlıklarında kullanıcı ajanı olarak adlandırılan bir alan bulunur. Kullanıcı ajanı, kullanılan uygulamayı tanımlar. Örneğin, Google Chrome’un kullanıcı ajanı Chrome’dur.
Kullanıcı ajanları başlangıçta bir sunucuya web isteği yapan web tarayıcıyı tanımlamak için kullanıldı, böylece sunucu, talep edilen veriyi o belirli tarayıcıda nasıl render edeceğini bilebilirdi. Ancak şimdi kullanımları, internet üzerinden talepte bulunan herhangi bir uygulamayı kapsar hale gelmiştir.
Squid’de bir kullanıcı ajanını engellemek için, önüne “^” (tırnak işareti olmadan) eklemeniz gerekiyor.
Dolayısıyla, Squid’in Kullanıcı Ajanını Engelle kutucuğunda ^Chrome listelemek, Google Chrome’un internete erişimini engeller.
^Mozilla listelemek, Firefox’un internete erişimini engeller. ^WhatsApp listelemek, WhatsApp’ın internete erişimini engeller.
Kullanıcı ajanları oldukça özgündür ve her zaman yukarıdaki örnekler kadar basit değildir. Bir uygulamanın burada engellenebilmesi için tam olarak hangi kullanıcı ajanını kullandığını bilmelisiniz.
MIME Tiplerini Engelle (Sadece Yanıt)
MIME, MIME tipleri içinde Çok Amaçlı İnternet Posta Uzantıları anlamına gelir ve URL’ler içindeki dosya tiplerini tanımlamak için kullanılır. MIME tipleri şu şekildedir:
tip/alttip
Dolayısıyla, MIME Tiplerini Engelle kutusuna audio/mpeg eklemek, mp3 dosyalarının indirilmesini engeller. MIME Tiplerini Engelle kutusuna image/png eklemek, png resimlerinin indirilmesini engeller.
Kullanıcı ajanları durumunda olduğu gibi, MIME tipleri çok özgündür. Squid’de süzme işleminin çalışması için tam tipi ve alt tipi girmeniz gerekiyor.
Devam edip Squid kurulumumuzu test edelim ve her şeyin doğru çalışıp çalışmadığını görmek için bir sonraki adımlara geçmeden önce kontrol edelim. Yasaklılar Listesi kutusuna bir alan adı gireceğiz ve Squid’in bunu beklediğimiz gibi engelleyip engellemediğini göreceğiz.
Squid Proxy Ayarları‘ndaki ACL sekmesinden, Yasaklılar Listesi kutusuna facebook.com yazın.
Sayfanın altında Kaydet‘e tıklayın.
Squid Proxy Ayarları‘ndaki Genel sekmesine gidin.
Squid Proxy’yi Etkinleştir kutucuğunu işaretleyin.
Sayfanın altında Kaydet‘e tıklayın.
Proxy sunucumuz şimdi etkinleştirildi ve facebook.com’u engellemek üzere ayarlandı.
Hızla web tarayıcımızı proxy sunucusu aracılığıyla çalışacak şekilde yapılandıracağız ve düzgün çalışıp çalışmadığını görmek için deneyeceğiz. Eğer her şey doğru yapılandırılmışsa, facebook.com’a erişememeliyim.
Tarayıcının sağ üst köşesindeki Ayarlar simgesine tıklayın ve Tercihler‘i seçin (Windows’ta bu Seçenekler olarak adlandırılır). Genel Ayarlar sayfasına yönlendirilirsiniz.
Genel Ayarlar sayfasını aşağı kaydırın ve Ağ Ayarları bölümüne gelin ve Ayarlar butonuna tıklayın.
Elle Proxy Yapılandırması‘nı seçin.
HTTP Proxy kutusuna pfSense kutunuzun IP adresini yazın. Benim durumumda bu, 192.168.1.1.
Port alanını 3128 olarak ayarlayın.
FTP ve HTTPS için de bu proxy’yi kullan kutucuğunu işaretleyin.
Pencerenin altında Tamam‘a tıklayın ve Ayarlar sayfasını kapatın.
Şimdi, facebook.com’a (HTTP veya HTTPS üzerinden) erişmeye çalışırsam, tarayıcım şu sayfayı gösteriyor:
Tam da istediğimiz bu.
Peki, şimdi facebook.com’u engellemek üzere yapılandırılmış çalışan bir proxy sunucumuz var. Harika. Ancak reklamları engellemek istiyorsak, Squid’in Yasaklılar Listesi kutusuna binlerce alan adı eklememiz gerekecek. Tam olarak ideal değil…
İşte burada SquidGuard devreye giriyor. SquidGuard, liste tabanlı filtreleme yapabilen bir Squid eklenti modülüdür.
Liste tabanlı filtreleme ile, yasaklı alan adları listesinin URL’sini girersiniz ve bu yasaklı listede yer alan alan adlarıyla eşleşen tüm alan adları engellenir.
Temel Squid proxy sunucumuz hazır ve çalışıyorken, devam edip SquidGuard’ı kuracak ve yapılandıracağız.
1. Üst menülerden, Sistem > Paket Yöneticisi‘ni seçin. Bu sizi Paket Yöneticisi‘nin Kurulu Paketler sekmesine yönlendirir.
2. Kullanılabilir Paketler‘i seçin. Kullanılabilir paketlerin listesi gösterilir.
3. SquidGuard‘ı görene kadar aşağı kaydırın ve Kur‘a tıklayın. Paket Yükleyici penceresi gösterilir.
4. Onayla‘ya tıklayın. Kurulum başlar.
5. Kurulum tamamlandığında, Paket Yükleyici penceresinin altında Başarılı yazısını görmelisiniz. SquidGuard artık kuruldu.
SquidGuard artık kuruldu. Hadi listeye dayalı filtrelemeyi yapılandıralım.
Üst menülerden, Hizmetler > SquidGuard Proxy Filtresi seçeneğini seçin. SquidGuard Proxy Filtre Ayarları bölümünün Genel sekmesine yönlendirilirsiniz.
Squid’in kendisini yapılandırırken olduğu gibi, Squid Guard’ı bölüm bölüm yapılandırma konusunda da ilerleyeceğiz. Ve yine, her alt menüye girmeyeceğiz – sadece amacımıza ulaşmak için yapılandırmamız gerekenleri ele alacağız. Bahsedilmeyen ayarlar varsayılan değerlerinde bırakılmalıdır.
Şimdilik Aktif Et kutucuğunu işaretsiz bırakın.
Reklamları Temizle kutucuğunu işaretleyin.
Kara Liste kutucuğunu işaretleyin.
Kara Liste URL alanına şu URL’yi girin: https://shallalist.de/Downloads/shallalist.tar.gz. Bu bizim kara liste URL’miz. SquidGuard bu listeyi indirecek ve engellemeyi veya izin vermeyi seçebileceğimiz farklı alan adı kategorileri sağlayacak. Ücretsiz olarak sunulmaktadır ve Shalla Secure Services tarafından sağlanmaktadır. Kullanabileceğiniz diğer listeler var, ancak birçoğu ücretlidir. Shallalist’i yıllardır kullanıyorum, çok iyi çalışıyor ve sık sık güncelleniyor, bu yüzden kullanmanızı öneririm.
Sayfanın altındaki Kaydet‘e tıklayın.
SquidGuard Proxy Filtre Ayarları‘nın Kara Liste sekmesine gidin. Kara liste URL’si gösterilmektedir.
İndir düğmesine tıklayın. Kara listenin indirilmesi ve ayrıştırılması başlar.
Tamamlandığında, Kara Liste Güncelleme Günlüğü penceresinin altında Kara liste güncellemesi tamamlandı ifadesini görmelisiniz.
SquidGuard Proxy Filtre Ayarları‘nın Ortak ACL sekmesine gidin.
Hedef Kurallar Listesi‘nin yanındaki + sembolüne tıklayın. Hedef Kurallar Listesi görüntülenir.
Listede ilk girdi adv‘dir, bu reklamlar anlamına gelir. Sağ tarafındaki açılır menüden, Engelle‘yi seçin.
Englemek istediğiniz diğer içerik kategorilerini de engelleyin.
Englemek istediğiniz tüm kategorileri reddettikten sonra, listenin altına gidin ve Varsayılan Erişim‘in yanındaki açılır menüden İzin Ver‘i seçin.
Sayfanın altında Kaydet‘e tıklayın.
SquidGuard Proxy Filtre Ayarları‘nın Genel sekmesine geri dönün, Aktif Et kutucuğunu işaretleyin ve sayfanın altında Kaydet‘e tıklayın.
Kaydettikten sonra, Uygula düğmesine tıklayın.
Artık Squid’i kara liste filtrelemesiyle yapılandırdık. Eğer proxy’yi kullanmak üzere ayarlanmış tarayıcımı kullanarak reklam gösterilen bilinen bir web sayfasına erişirsem, bu reklamların gitmiş olması gerekiyor.
Squid aktifken:
Squid devre dışıyken:
İşe yarıyor. Bu harika. Ama şu anki ayarlarımla, Squid sadece tarayıcımın trafiğini yakalayacak; bu nedenle, Squid’in reklam engelleme özelliğinden sadece web tarayıcımı kullanırken faydalanabilirim.
Tüm trafiğinizi proxy sunucu üzerinden göndermek üzere tüm cihazınızı nasıl yapılandıracağınızı göstereceğim. Bu, sadece tarayıcınızda değil, uygulamalarınızda da reklam engellemesinden faydalanmanızı sağlar. Bunu macOS, Windows, Linux, iOS ve Android’de nasıl yapacağınızı göstereceğim.
Bağlantımızı test etmeden önce Firefox’ta manuel olarak yaptığımız proxy ayarlarını geri alalım ve cihazımızı sistem geneli proxy yapılandırması için hazırlayalım.
Firefox’ta Ağ Ayarları kısmına geri dönün ve Sistem proxy ayarlarını kullan seçeneğini belirleyin. Bu, tarayıcının proxy ayarları olarak sistem ayarlarını kullanmasını sağlar. Bu varsayılan ayardır.
Tamam‘ı tıklayın ve Ayarlar sayfasını kapatın.
Sistem Tercihleri uygulamasından Ağ‘ı seçin.
Şu anki bağlantınızın seçili olduğundan emin olun ve sağ alt köşede Gelişmiş‘i tıklayın.
Proxy sekmesini seçin.
Hem Web Proxy (HTTP) hem de Güvenli Web Proxy (HTTPS) kutularını işaretleyin.
pfSense kutunuzun IP adresini ve proxy portunu girin – benim durumumda 192.168.1.1 ve 3128.
Tamam‘ı ve Uygula‘yı tıklayın.
Ayarlar uygulamasını açın (Win+I klavye kısayolu ile).
Ağ ve İnternet‘e gidin.
Proxy sekmesini seçin.
Manuel proxy kurulumu bölümüne kaydırın.
Bir proxy sunucu kullan anahtarını etkinleştirin.
pfSense kutunuzun IP adresini ve proxy portunu girin – benim durumumda 192.168.1.1 ve 3128.
Ağ Ayarları penceresinden, Ağ proxy‘si seçeneğini seçin.
Yöntem açılır menüsünden Manuel‘i seçin.
pfSense kutunuzun IP adresini ve proxy portunu – benim durumumda 192.168.1.1 ve 3128 – HTTP Proxy ve HTTPS Proxy yanına girin.
Ağ Ayarları penceresini kapatın.
Ayarlar > WiFi bölümünden, WiFi bağlantınızın yanındaki “i” simgesine dokunun.
Aşağı kaydırın ve Proxy Yapılandır‘a dokunun.
Manuel‘i seçin.
pfSense kutunuzun IP adresini ve proxy portunu – benim durumumda 192.168.1.1 ve 3128 – Sunucu ve Port yanına girin.
Ayarlar uygulamasını kapatın.
Ayarlar uygulamasından, WiFi‘yi seçin.
Şu anda bağlı olan WiFi ağına uzun basın.
Ağı değiştir seçeneğini seçin.
Gelişmiş seçenekler‘i genişletin.
Proxy açılır menüsünden Manuel‘i seçin.
pfSense kutunuzun IP adresini ve proxy portunu – benim durumumda 192.168.1.1 ve 3128 – Proxy sunucu adı ve Proxy portu altına girin.
Kaydet‘e tıklayın.
iOS veya Android’de mobil veri üzerinden proxy’nin çalışması için, mobil cihaz yönetimi (MDM) profili yüklemeniz gerekecektir. Bu, şu anki rehberin kapsamı dışında. Belki ilerleyen zamanlarda bunu ele alırız.
Şimdi, tüm cihazlarınızda reklamları engellemek için kullanabileceğiniz, kara liste filtrelemeye sahip çalışan bir proxy sunucunuz var. Verilerinizi çalan rahatsız edici reklamları kaldırarak güvenliğinizi ve gizliliğinizi artırdınız.
Ayrıca daha az bant genişliği tüketirsiniz. Ve web sayfalarınız, reklamların indirilip gösterilmesine gerek kalmadığı için daha hızlı yüklenir. Ama aynı zamanda Squid içerikleri sizin için önbelleğe alıyor. Yani, sıkça istediğiniz içerikler daha hızlı yüklenecek.
Güzel iş. Güvende kalın.