Cara memblokir domain dan url tertentu menggunakan privoxy

2

Saya telah mengatur privoxy di router saya dengan OpenWRT. Proksi tampaknya berfungsi dengan baik karena saya dapat berselancar dengan lalu lintas saya melewatinya.

Saya mencoba menetapkan contoh minimal pemblokiran dengan hanya satu domain dalam aturan blok:

{+block {Too bad my friend...No facebook for you}}
    www.facebook.com

Aturan ini dapat ditemukan di bawah file tinyblock.action, yang saya sertakan dalam konfigurasi saya /etc/config/privoxy. The enable-blocksopsi disetel ke 1. Namun, ketika saya mencoba mengakses facebook, proksi tidak memblokir apa pun ...

Ada ide tentang hal itu?

Sebagaimana dijawab oleh @MariusMatutiae, ada masalah dengan pemfilteran https. Saya melakukan sedikit riset dan dokumentasi privoksi mengatakan secara eksplisit:

4.15. Bagaimana Privoxy dapat memfilter Secure (HTTPS) URL?

Karena koneksi HTTP aman dienkripsi sesi SSL antara browser Anda dan situs aman, dan dimaksudkan untuk aman diandalkan, ada sedikit yang bisa dilakukan Privoxy tetapi menyerahkan data omong kosong mentah meskipun dari satu ujung ke ujung lainnya tidak diproses.

Satu-satunya pengecualian untuk ini adalah pemblokiran oleh pola host, karena klien perlu memberi tahu Privoxy nama server jarak jauh, sehingga Privoxy dapat membuat koneksi. Jika nama itu cocok dengan pola host-only, koneksi akan diblokir.

Sejauh menyangkut pemblokiran iklan, ini kurang dari batasan yang mungkin terlihat, karena sumber iklan sering dapat diidentifikasi dengan nama host, dan sering spanduk untuk ditempatkan di halaman terenkripsi tetap tidak terenkripsi namun karena alasan efisiensi, yang mengekspos mereka dengan kekuatan penuh pemblokiran iklan Privoxy.

"Cookie konten" (cookie yang tertanam dalam konten halaman HTML atau JS yang sebenarnya, lihat filter {content-cookies}), dalam transaksi SSL tidak mungkin diblokir dalam kondisi ini. Untungnya, ini tampaknya bukan skenario yang sangat umum karena kebanyakan kue datang dengan cara tradisional.

Tapi bagaimanapun, saya tidak pernah menunjukkan facebook muncul di log saya ...

Rerito
sumber
"Seringkali spanduk untuk ditempatkan di halaman terenkripsi tetap tidak terenkripsi karena alasan efisiensi" .... setiap browser modern yang saya lihat memperingatkan tentang hal ini, karena kebocoran saluran samping (URL HTTPS terlihat di Referer, cookies. ... dan itu bahkan tidak masuk ke masalah injeksi skrip melalui elemen tidak aman)
Ben Voigt
@ BenVoigt Itu bukan masalah yang dihadapi. Di sini, jika saya memahami dokumen dengan benar, tindakan blok harus bekerja meskipun lalu lintas di HTTPS karena saya menggunakan pola host.
Rerito
Tidak, itu hanya komentar tentang ketidaktepatan teknis dari dokumentasi yang Anda kutip. Masalah Anda yang sebenarnya mungkin adalah bahwa sistem Anda tidak dikonfigurasikan untuk mengirim lalu lintas HTTPS ke proxy. Apakah Anda menggunakan konfigurasi proxy eksplisit (di browser), atau pengalihan transparan melalui aturan iptables?
Ben Voigt
@BenVoigt Suatu kesempatan Anda bertanya ... Sejauh ini saya hanya dalam pengaturan pengujian jadi saya menerapkan pengaturan proxy pada mesin saya. Setelah saya memvalidasi perilaku yang diinginkan, saya akan menetapkan aturan iptables pada router untuk mengarahkan lalu lintas melalui proxy. Saya perhatikan setelah memeriksa saya tidak mengatur proxy https ... Ketika saya melakukannya, saya mendapatkan ERR_TUNNEL_CONNECTION_FAILEDdari chrome
Rerito
@ BenVoigt Setelah komentar terakhir itu, saya mencoba mengakses halaman lain melalui https dan semuanya berjalan dengan baik. Saya menyimpulkan dari sini bahwa privoksi berhasil. Itu hanya tidak menampilkan halaman yang diblokir biasa (mungkin karena itu tidak dapat mengedit konten permintaan karena itu dienkripsi). Saya akan dengan senang hati menerima jawaban dari komentar Anda ketika Anda membuat saya memperhatikan kesalahan saya :)
Rerito

Jawaban:

3

Konfigurasi proksi perlu diubah untuk memasukkan HTTPS .... di browser, biasanya ada pengaturan terpisah untuk proksi HTTPS, dan jika melakukan proksi transparan, Anda memerlukan aturan pengalihan iptables tambahan untuk port TCP 443.

Jika Anda tidak melakukan langkah konfigurasi ini, browser Anda akan terhubung langsung ke server HTTPS, bukan Privoxy.

Misalnya, inilah pengaturan di Firefox:

masukkan deskripsi gambar di sini

Saya ingin tahu apakah "proxy SSL" berarti bahwa TLS tidak termasuk? Tentunya tidak, karena saya tidak berpikir browser dapat mengetahui apakah situs tertentu adalah SSL atau TLS sampai terhubung.

Ben Voigt
sumber