Privoxy; web sayfası verilerini değiştirerek, istenmeyen içeriği engelleyerek ve HTTP başlıklarını tarayıcıya ulaşmadan önce yöneterek gizliliği güçlendiren, önbelleklemesiz bir filtreleyici web proxy'sidir. Uygulama katmanında çalışır; kullanıcı tanımlı kural kümelerine göre reklamları, izleyicileri ve diğer istenmeyen web öğelerini kaldırmak için HTTP ve HTTPS trafiğini işler.
Privoxy nedir?
Privoxy, öncelikli olarak kullanıcı gizliliğini korumak için tasarlanmış, açık kaynaklı ve hafif bir proxy sunucusudur. Web tarayıcısı (ya da herhangi bir HTTP istemcisi) ile internet arasında aracı olarak çalışır. Sonraki istekleri hızlandırmak için web içeriğini saklayan önbellekleme proxy'lerinin aksine Privoxy, gerçek zamanlı içerik değiştirme ve filtrelemeye odaklanır. Temel işlevi, gelen ve giden web trafiğini yüksek düzeyde yapılandırılabilir kurallara göre analiz etmek ve hangi verilerin alınıp verildiği ile görüntülendiği üzerinde ayrıntılı denetim sağlamaktır.
Privoxy'nin birincil amacı anonimlik veya şifreleme sağlamak değil, web içeriğini temizlemek ve izlemeyi azaltmaktır. Bununla birlikte, anonimliği artırmak için Tor veya VPN gibi diğer gizlilik araçlarıyla zincirlenebilir.
Privoxy nasıl çalışır?
Privoxy, HTTP/HTTPS isteklerini ve yanıtlarını yakalayarak, bir dizi filtreleme kuralı uygulayarak ve ardından değiştirilmiş trafiği ileterek çalışır.
İstek yakalama
Bir istemci (örneğin bir web tarayıcısı) Privoxy kullanacak şekilde yapılandırıldığında, tüm HTTP/HTTPS istekleri önce Privoxy örneğine gönderilir. Privoxy, belirtilen bir ağ adresi ve portu dinler; yerel örnekler için bu genellikle 127.0.0.1:8118 olur.
İçerik değiştirme
Bir web sayfası veya içerik aldığında Privoxy, verileri (HTML, CSS, JavaScript) actions ve filters dosyalarında tanımlanan kalıplara göre tarar. Şunları yapabilir:
* Reklam bannerlarını ve pop-up'ları kaldırma.
* İzleme betiklerini ve web bug'larını engelleme.
* İstenmeyen özellikleri devre dışı bırakmak için HTML öğelerini değiştirme (örneğin bazı sosyal medya widget'ları).
* GIF'lerin animasyonunu durdurma.
Başlık yönetimi
Privoxy, hem isteklerdeki hem de yanıtlardaki çeşitli HTTP başlıklarını değiştirebilir, ekleyebilir veya kaldırabilir. Birçok izleme mekanizması başlık bilgisine dayandığından bu yetenek gizlilik koruması açısından kritiktir. Örnekler:
* Referer başlığı: Web sitelerinin daha önce ziyaret edilen sayfayı öğrenmesini engellemek için sahte değerle değiştirilebilir veya kaldırılabilir.
* User-Agent başlığı: İstemcinin işletim sistemini ve tarayıcı sürümünü gizlemek için değiştirilebilir.
* Accept-Language başlığı: Dile dayalı parmak izi çıkarmayı önlemek için değiştirilebilir.
* X-Forwarded-For başlığı: Proxy'ler zincirlenirken istemcinin gerçek IP adresinin açığa çıkmasını önlemek için kaldırılabilir.
Öne çıkan özellikler
- Reklam ve izleyici engelleme: Yaygın izleme betiklerini, reklam ağı alan adlarını ve analiz servislerini tespit edip engellemek için kapsamlı kural kümeleri kullanır.
- Çerez yönetimi: Çerezler üzerinde ayrıntılı denetim sunar; kullanıcıların çerezleri kaynağına, yoluna veya son kullanma süresine göre engellemesine, izin vermesine veya değiştirmesine olanak tanır.
- HTTP başlığı değiştirme: Gizliliği artırmak için HTTP istek ve yanıt başlıklarını değiştirme konusunda güçlü yetenekler sunar.
- Web sitesi verilerini değiştirme: Web sayfalarının belirli bölümlerini yeniden yazabilir, istenmeyen öğeleri (örneğin betikler, gizli alanlar, hareketli görseller) kaldırabilir ve içerik politikalarını uygulayabilir.
- Proxy zincirleme: İstekleri başka bir proxy sunucusuna (örneğin Tor'un SOCKS proxy'sine ya da başka bir HTTP proxy'sine) iletebilir; böylece katmanlı gizlilik ve anonimlik çözümleri kurulabilir.
- Esnek yapılandırma: Tüm filtreleme mantığı metin tabanlı yapılandırma dosyalarıyla yönetilir; bu da son derece özelleştirilmiş ve ayrıntılı kural yönetimine olanak tanır.
Kurulum ve temel yapılandırma
Privoxy platformdan bağımsızdır; Linux, macOS ve Windows üzerine kurulabilir.
Linux/macOS
Debian tabanlı Linux dağıtımlarında:
sudo apt-get update
sudo apt-get install privoxy
Homebrew ile macOS'ta:
brew install privoxy
Windows
Kurulum dosyasını resmi Privoxy web sitesinden indirin ve kurulum sihirbazını izleyin.
Temel yapılandırma
Kurulumdan sonra Privoxy'nin ana yapılandırma dosyası genellikle şurada bulunur:
* /etc/privoxy/config (Linux)
* /usr/local/etc/privoxy/config (macOS Homebrew)
* C:\Program Files\Privoxy\config.txt (Windows)
Minimal bir config dosyası şunları içerebilir:
# localhost, 8118 portunu dinle
listen-address 127.0.0.1:8118
# Tüm varsayılan eylemleri etkinleştir (önerilir)
toggle 1
# Varsayılan eylem ve filtre dosyalarını belirt
actionsfile default.action
actionsfile user.action # Kullanıcı tanımlı kurallar için
filterfile default.filter
filterfile user.filter # Kullanıcı tanımlı filtreler için
# Örnek: tüm istekleri Tor'un SOCKS proxy'si üzerinden ilet
# Tor ile zincirleyecekseniz yorumu kaldırın ve ayarlayın
# forward-socks5 / 127.0.0.1:9050 .
config dosyasını değiştirdikten sonra Privoxy'yi yeniden başlatın:
sudo systemctl restart privoxy # Linux
brew services restart privoxy # macOS
Windows'ta Privoxy hizmetini Hizmetler yönetim konsolundan yeniden başlatın.
İstemci yapılandırması
Privoxy'yi kullanmak için tarayıcınızı veya sisteminizi 8118 portunda 127.0.0.1 adresini HTTP/HTTPS proxy'si olarak kullanacak şekilde yapılandırın.
* Firefox: Ayarlar -> Ağ Ayarları -> Elle proxy yapılandırması.
* Chrome/Edge: Sistem proxy ayarlarını kullanır.
* Sistem geneli: İşletim sisteminizde ağ proxy ayarlarını yapılandırın.
Gelişmiş yapılandırma kavramları
Privoxy'nin gücü, filtreleme davranışı üzerinde ayrıntılı denetime izin veren detaylı yapılandırma dosyalarında yatar.
Actions dosyaları
Actions dosyaları (örneğin default.action, user.action), Privoxy'nin belirli URL'ler veya kalıplar için hangi eylemleri uygulayacağını tanımlar. Her girdi bir eylem bloğundan ve bir URL kalıbından oluşur.
Örnek eylemler:
* +block: URL'ye erişimi engeller.
* +hide-referer: Referer başlığını kaldırır veya değiştirir.
* +set-cookie-header: Çerez davranışını değiştirir.
* +deanimate-gifs: Hareketli GIF'leri durdurur.
* +filter: Bir filterfile içinde tanımlanmış içerik filtresini uygular.
Bir actions dosyasındaki girdi:
{ +block }
.doubleclick.net
.google-analytics.com
{ +hide-referer }
/
/ kalıbı, hide-referer eylemini tüm URL'lere uygular. Daha özel kalıplar, genel olanlara göre önceliklidir.
Filter dosyaları
Filter dosyaları (örneğin default.filter, user.filter), Privoxy'nin web sayfalarındaki içeriği yeniden yazmak için kullandığı düzenli ifadeleri içerir. Filtreler, bir actions dosyasında +filter eylemi etkinleştirilmiş URL'lerin içeriğine uygulanır.
Belirli izleme betiklerini kaldıran örnek filtre:
FILTER: remove-facebook-pixel TAGS: SCRIPT
s@<script[^>]*src=["'][^"']*connect\.facebook\.net/en_US/fbevents\.js[^"']*["'][^>]*>\s*</script>@@is
Bu filtre, HTML içeriğindeki Facebook Pixel betik etiketlerini bulur ve kaldırır.
Trust dosyaları
Trust dosyaları, belirli gizlilik artırıcı eylemlerin (hide-referer veya çerez engelleme gibi) gevşetilmesi ya da devre dışı bırakılması gereken alan adlarını belirtmenizi sağlar. Agresif filtrelemenin işlevselliği bozduğu siteler için kullanışlıdır.
Eşleştirme (matcher) sözdizimi
Privoxy, URL kalıpları için kendine özgü bir eşleştirme sözdizimi kullanır:
* *: Joker karakter; sıfır veya daha fazla karakterle eşleşir.
* .: Herhangi tek bir karakterle eşleşir (alan adı bağlamında gerçek bir nokta ile eşleşir).
* /: Bir URL'nin yol bileşeniyle eşleşir.
* ~: Düzenli ifade olduğunu belirtir.
Örnek: *.example.com/ads/*, yolunda /ads/ bulunan example.com alt alan adlarının tümüyle eşleşir.
Kullanım senaryoları ve entegrasyon
Bağımsız proxy
En yaygın kullanım senaryosu, tek bir kullanıcının web trafiğini filtrelemek için Privoxy'yi yerel bir makinede çalıştırmaktır. Bu, web içeriğini tarayıcıya ulaşmadan önce temizleyerek anında gizlilik kazancı sağlar.
Tor ile zincirleme
Privoxy, filtrelenmiş tüm trafiğini Tor'un SOCKS proxy'si üzerinden iletecek şekilde yapılandırılabilir; böylece içerik filtreleme ile anonimlik birleştirilir. Bunun için config dosyasına bir forward-socks5 yönergesi eklenir:
forward-socks5 / 127.0.0.1:9050 .
Burada 127.0.0.1:9050, Tor'un SOCKS proxy'sinin varsayılan adresidir.
Ağ genelinde filtreleme
Privoxy, tüm bir yerel ağ için filtreleme sağlamak üzere ayrılmış bir sunucuya veya bir yönlendiriciye kurulabilir. Ağdaki istemciler daha sonra Privoxy sunucusunun IP adresini ve portunu proxy olarak kullanacak şekilde yapılandırılır. Böylece gizlilik koruması, her istemciyi ayrı ayrı yapılandırmaya gerek kalmadan tüm cihazlar için merkezileştirilir.
Privoxy, tarayıcı eklentileri ve VPN karşılaştırması
| Özellik | Privoxy | Tarayıcı eklentisi (örn. uBlock Origin) | VPN |
|---|---|---|---|
| Kapsam | Sistem/ağ geneli (yapılandırılırsa) | Yalnızca tarayıcı | Tüm ağ trafiği (işletim sistemi düzeyi) |
| Filtreleme katmanı | HTTP/HTTPS (içerik/başlıklar) | DOM/ağ istekleri (tarayıcı düzeyi) | Ağ katmanı (IP/TCP/UDP) |
| Şifreleme | Kendiliğinden şifreleme yok | Kendiliğinden şifreleme yok | Tüm trafiği VPN sunucusuna kadar şifreler |
| Anonimlik | Katkı sağlar ama asıl amaç değil; zincirleme gerekir | Yalnızca tarayıcı düzeyindeki izlemeyi gizlemekle sınırlı | IP'yi hedef siteden gizler, ISP'den değil |
| Yapılandırma | Metin dosyaları, karmaşık regex | Arayüz, filtre listeleri | İstemci yazılımı, sunucu seçimi |
| Performans | İşleme nedeniyle küçük bir gecikme | Tarayıcıda minimum ek yük | Ciddi gecikme getirebilir |
| Karmaşıklık | Orta ila yüksek | Düşük ila orta | Düşük ila orta |
Privoxy, tarayıcı eklentilerinin sunamayacağı sistem düzeyinde bir içerik filtreleme yeteneği sağlar; çünkü eklentiler tarayıcı ortamıyla sınırlıdır. VPN'lerden farklı olarak Privoxy trafiği şifrelemez ve istemcinin IP adresini bir sonraki durağa karşı gizlemez; bunun yerine içeriğin kendisini temizlemeye odaklanır. Bunlar birbirinin yerine geçen değil, birbirini tamamlayan araçlardır.
Performans değerlendirmeleri
Privoxy genel olarak hafiftir. Tipik gezinmede filtrelemenin getirdiği ek yük çok azdır. Performans şunlardan etkilenebilir:
* Karmaşık düzenli ifadeler: Filtre dosyalarındaki kapsamlı ve verimsiz regex kalıpları CPU kullanımını artırabilir.
* Yoğun trafik: Çok sayıda eşzamanlı isteğin veya çok büyük web sayfalarının işlenmesi daha fazla kaynak tüketebilir.
* Önbelleklemesiz yapı: Privoxy içeriği önbelleğe almadığından her istek ve yanıtı işlemek zorundadır; bu da önbellekleme proxy'lerinin hız avantajını sunmadığı anlamına gelir.
Güvenlik açısından etkileri
Privoxy'nin kendisi trafiği şifrelemez. Filtreleme amacıyla HTTPS trafiğini yakalayıp yeniden şifreleyecek şekilde ("man-in-the-middle" senaryosu) yapılandırılabilse de, bu istemci cihazlarda güven sertifikalarının dikkatle kurulmasını gerektirir. HTTPS yakalamanın hatalı yapılandırılması, şifreli bağlantıların bütünlüğünü zayıflatarak ciddi güvenlik riskleri doğurabilir. Genel gizlilik iyileştirmesi için Privoxy'yi öncelikle HTTP trafiğini filtrelemek üzere kullanmanız ya da uçtan uca şifreleme için güvenli bir VPN veya Tor ile zincirlemeniz önerilir.
