LINUX.ORG.RU

fproxy v80 — локальный прокси-сервер для фильтрации http(s)-трафика

 , , ,


6

2

Опубликована 80-я версия кэширующего и антиспамного прокси-сервера для персонального использования c гибкими настройками.

Основные функции (всё настраивается):

  1. фильтрация нежелательного контента (реклама/трекеры/куки/прочий мусор);
  2. принудительное и бессрочное кеширование полученных данных (в основном удобно для картинок и скриптов);
  3. исправление содержимого веб-страниц на лету (правкой исходника на Си, есть пример для замены содержания страниц-клонов stackoverflow ссылкой на оригинал);
  4. чёрные/белые списки сертификатов и certificate pinning по списку;
  5. подмена айпи-адреса/домена/пути/протокола http-запроса по конфигу (такой расширенный вариант /etc/hosts);
  6. http/https-сниффер.

Программа прекрасно подходит для просмотра сайтов через медленный интернет или с медленного устройства (благодаря п.1 и 2, ради которых изначально всё и затевалось) и не только.

В случае обновления с версии до 78 следует сконвертировать кеш: зайти в рабочую директорию прокси-сервера от юзера (uid/gid) прокси-сервера и выполнить fproxy-cacheconv-78

Пример списка блокировки:

deny    nosub   all     share.yandex.ru browser-updater.yandex.net
deny    nosub   all     a.ria.ru # ?
deny    nosub   spec    vk.com
                query   /share.php
deny    nosub   spec    yastatic.net
                query   /pcode/adfox/loader.js
                query   /share2/share.js
deny    nosub   spec    www.youtube.com
                query   /subscribe_widget
deny    nosub   spec    pano.img.ria.ru
                query   /adriver/flashplagin/movie.swf
deny    nosub   spec    a.ria.ru
                query   /ping
deny    nosub   spec    n-ssl.ria.ru
                query   /polling
deny    nosub   spec    apis.google.com
                query   /js/plusone.js
deny    nosub   spec    habrahabr.ru
                pref    /hauusbx/toplink/
deny    nosub   spec    yandex.ru
                pref    /clck/safeclick/
                pref    /clck/click/
                pref    /clck/jclck/
deny    nosub   spec    s36.ucoz.net
                pref    /adv/
                pref    /bnr/
deny    w/sub   spec    ucoz.com
                pref    /abnl/
deny    nosub   spec    mediametrics.ru
                pref    /partner/
deny    nosub   spec    platform.twitter.com
                pref    /widgets/
deny    all     spec
                query   /tnc    # index.ru proxied counter
                exact   /tnc.js # index.ru proxied counter
                query   /pixel.gif # some spammers use this

Программа написана на Си и распространяется под BSD-подобной лицензией.

>>> Подробности

★★★

Проверено: hobbit ()

Подробности

Created: 22/31/03

Наркоман!

habrahabr.ru

Там есть что-то, что не редиректит на habr.com?


Зачем свой формат файла, если уже есть adblock-совместимые списки?

Tanger ★★★★★ ()
Ответ на: комментарий от Tanger

Там есть что-то, что не редиректит на habr.com?

Раньше было. А я не заморачивался удалением устаревших записей.

Зачем свой формат файла, если уже есть adblock-совместимые списки?

Потому что этот формат отражает логику работы фильтра. И он не только для блокировок, а ещё для много чего. Можно из формата адблока сконвертировать в него, наверно, но не знаю как будет с такими огромными списками работать. Надо будет туда хеш-таблицу прикрутить на будущее. Адблоком не пользовался почти.

firkax ★★★ ()
Ответ на: комментарий от elve

Если смотреть именно целевое использование - то разница в том что у squid там регулярки а тут несколько нужных вариантов. Так что, если формально подходить к вопросу, то менее. Но, с другой стороны:

1) мне ни разу не понадобились какие-то блокировки, кроме точных совпадений, трёх типов префиксов и расширений - по урлу и домен/домен+поддомены по домену (собственно поэтому их и нет)

2) дописать нужное несложно, но см. выше + если речь про регулярки то придётся тащить ещё одну библиотеку (pcre)

3) выглядит намного нагляднее

firkax ★★★ ()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от mx__

Грубая (и распространённая!) терминологическая ошибка — повод для придирки. Путать плагины с расширениями — всё равно что системник процессором обзывать.

bodqhrohro_is_back ()
Ответ на: комментарий от hobbit

Об экранизации «Незнайки на Луне», где ГГ в качестве компаньйона выдана журналистка в мини-платье, частично списанная с другого персонажа из «Незнайки в Солнечном городе», а сам компаньйон засунут в качестве эпизодического персонажа под шконарьмост.

А Ромашка и вовсе панцушотит, что вообще ни к селу, ни в ворота. (Равно как и замена интеллигентных, панимайш, советских инженеров Фуксии и Селёдочки на вот этих вот подружек-болтушек с IQ→0) Панцушотит ли Звёздочка — не помню, надо пересматривать.

bodqhrohro_is_back ()
Ответ на: комментарий от hobbit

Кстати, вспоминать этот мультик не является вообще в РФ экстремизмом ещё? А то вдруг я опять ЛОР подставляю ;DDDDDDDD

bodqhrohro_is_back ()
Ответ на: комментарий от hobbit

Ага, признавайся, тебя реклама панцушотами привлекает, старый извращенец? ;DDDDDD

bodqhrohro_is_back ()
  1. Он может отдавать браузеру пониженный ssl, т.е. на входе ssl 1.3, а браузер получает 1.0?
  2. Какой расход оперативной памяти?
zanac1 ()
Ответ на: комментарий от zanac1

Он может отдавать браузеру пониженный ssl, т.е. на входе ssl 1.3, а браузер получает 1.0?

Протокол на «входе» и «браузеру» никак не связан. Но если речь про правку конфига - там только минимальную версию можно указать, и по дефолту это «не подключаться к сайтам которые не умеют TLS хотя бы 1.0» и «не подключаться к браузеру если он не умеет TLS 1.2». Если хочешь чтобы он разрешал браузеру TLS/1.0 то надо в конфиге прописать

local_ssl.minver = 0301
0300 = SSLv3, 0301 = TLSv10, 0302=TLSv11 0303=TLSv12

Если надо именно сделать чтобы там был строго 1.0 и запрещался 1.2 - то это правкой исходника, helpers/server.c функция setup_minversion() выбрать нужные запреты версий вручную.

А ещё можно http и https друг с друга на лету превращать: то есть в инете http а браузер думает что это https, и наоборот, Но только для конкретных сайтов. Делается файлом rules_resolv.txt.

Какой расход оперативной памяти?

Сложно точно посчитать, для этого надо его в чистой системе запускать наверно. У меня он незаметный по сравнению с файрфоксом.

firkax ★★★ ()

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

BLOBster ★★★ ()
Ответ на: комментарий от firkax

можно http и https друг с друга на лету превращать: то есть в инете http а браузер думает что это https, и наоборот

Тоже подойдет

Сложно точно посчитать, для этого надо его в чистой системе запускать наверно.

Заблуждаетесь. Результаты на рабочей системе показывают как приложение ведет себя в реальной жизни. Сколько примерно правил для сайтов и расход по оперативной памяти.

zanac1 ()
Последнее исправление: zanac1 (всего исправлений: 1)
Ответ на: комментарий от zanac1

Заблуждаетесь. Результаты на рабочей системе показывают как приложение ведет себя в реальной жизни.

Правила расход не создают как раз, его создают загруженные в память данные веб-страниц (временно) и контексты openssl. А проблема измерения в том, что у линукса всё плохо с учётом потребления памяти отдельной группой процессов. Но я придумал способ. Сейчас набрал killall -9 на процессы прокси, и по общесистемным метрикам освободилось около 30мбайт в «free memory». Не знаю, насколько это достоверно.

firkax ★★★ ()
4 июня 2022 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.