Как заблокировать определенные домены и URL с помощью privoxy

2337
Rerito

Я настроил privoxy на моем маршрутизаторе с OpenWRT. Прокси, кажется, работает хорошо, так как я могу путешествовать с моим трафиком, проходящим через него.

Я попытался установить минимальный пример блокировки только с одним доменом в правиле блокировки:

{+block } www.facebook.com 

Это правило можно найти в файле tinyblock.action, который я включил в мою конфигурацию в /etc/config/privoxy. enable-blocksОпция установлена 1. Однако, когда я пытаюсь получить доступ к Facebook, прокси ничего не блокирует ...

Есть идеи по этому поводу?

Как ответил @MariusMatutiae, существует проблема с фильтрацией https. Я провел небольшое исследование, и документация privoxy прямо говорит:

4,15. Как Privoxy может фильтровать защищенные (HTTPS) URL-адреса?

Поскольку безопасные HTTP-соединения являются зашифрованными сеансами SSL между вашим браузером и защищенным сайтом и предназначены для обеспечения надежной защиты, Privoxy мало что может сделать, кроме как передать необработанные бессмысленные данные с одного конца на другой без обработки.

Единственным исключением является блокировка по шаблонам хоста, так как клиент должен сообщить Privoxy имя удаленного сервера, чтобы Privoxy мог установить соединение. Если это имя соответствует шаблону только для хоста, соединение будет заблокировано.

Что касается блокировки рекламы, то это меньшее ограничение, чем может показаться, поскольку источники рекламы часто идентифицируются по имени хоста, и часто баннеры, размещаемые на зашифрованной странице, тем не менее незашифрованы по соображениям эффективности, что обуславливает они в полную силу блокирования рекламы Privoxy.

«Cookie-файлы содержимого» (те, которые встроены в фактический контент страницы HTML или JS, см. Фильтр ), в транзакции SSL невозможно заблокировать при этих условиях. К счастью, это, кажется, не очень распространенный сценарий, так как большинство куки приходят традиционными способами.

Но в любом случае, я никогда не показываю фейсбук в моих журналах ...

1
«часто баннеры, которые должны быть размещены на зашифрованной странице, все же остаются незашифрованными по соображениям эффективности»… каждый современный браузер, который я видел, предупреждает об этом из-за утечки в боковом канале (URL-адрес HTTPS виден в Referer, куки. ... и это даже не входит в проблемы внедрения скрипта через небезопасные элементы) Ben Voigt 8 лет назад 0
@BenVoigt Это не проблема под рукой. Здесь, если я правильно понимаю документ, действие блока должно работать, даже если трафик находится в HTTPS, потому что я использую шаблон хоста. Rerito 8 лет назад 0
Нет, это просто комментарий к технической неточности документации, которую вы цитируете. Ваша настоящая проблема, вероятно, заключается в том, что ваша система не настроена на отправку трафика HTTPS на прокси-сервер в первую очередь. Используете ли вы явную настройку прокси (в браузере) или прозрачное перенаправление через правила iptables? Ben Voigt 8 лет назад 0
@BenVoigt Шанс, который вы спросили ... Пока я просто нахожусь в настройке тестирования, поэтому я применяю настройки прокси на моей машине. Как только я проверил желаемое поведение, я установлю правила iptables на маршрутизаторе, чтобы перенаправлять трафик через прокси. После проверки я заметил, что не настроил https-прокси ... Когда я это делаю, я получаю `ERR_TUNNEL_CONNECTION_FAILED` из chrome Rerito 8 лет назад 0
@BenVoigt После этого последнего замечания я попытался получить доступ к другим страницам через https, и все прошло нормально. Из этого я делаю вывод, что privoxy делает это. Он просто не показывает обычную заблокированную страницу (возможно, потому что не может редактировать содержимое запроса, так как он зашифрован). Я буду рад принять ответ от вашего комментария, поскольку вы заставили меня заметить мою ошибку :) Rerito 8 лет назад 0
Вы также не можете иметь пробел между {+ блоком и началом комментария { Matthew Lock 8 лет назад 0

1 ответ на вопрос

2
Ben Voigt

Конфигурацию прокси-сервера необходимо изменить, чтобы включить HTTPS .... в браузере, обычно для HTTPS-прокси обычно есть отдельная настройка, и если вы используете прозрачный прокси-сервер, вам потребуется дополнительное правило перенаправления iptables для TCP-порта 443.

Если вы не выполните этот шаг настройки, ваш браузер будет подключаться напрямую к HTTPS-серверу, а не к Privoxy.

Например, вот настройка в Firefox:

Интересно, означает ли «SSL-прокси», что TLS не включен? Конечно, нет, так как я не думаю, что браузер может знать, является ли конкретный сайт SSL или TLS, пока он не подключится.

Похожие вопросы