SquidGuard & Adblock



  • Доброго времени суток!

    Возникла мысль прикрутить к SquidGuard'у перечень рекламных сайтов от Adblock(плагин к firefox).

    Штука безусловно полезная, но вот как это сделать?

    http://notes.ozmonet.com/index.php?title=Network-Wide_Adblock здесь нашлась небольшая статья как перепаковать файл из формата Adblock'а в удобоваримый для SquidGuard'а.
    В общем-то я дошел до этапа перепакованного файла, но вот куда его подсунуть в SquidGuard, да еще и так, чтобы в дальнейшем gui его не перетёр, вот в чем главный вопрос.

    Как по мне, так штука полезная и будет полезна не только мне.

    Бродя по файловой системе pfSense я нашел пару путей, где хранятся данные для SquidGuard'а:
    /var/db/SquidGuard - видимо основной каталог с данными
    /tmp/SquidGuard/arcdb - судя по всему просто временное место.

    Итого: куда добавлять готовый файл с правилами и как исправить gui, чтобы добавить туда возможность добавления данного списка(еще с возможностью регулярного обновления, благо на него есть постоянный урл)?



  • Готовый архив блэклиста должен быть упакован сначала в TAR а сверху в .gz
    Положить можно в любое доступное по сети место http/ftp и указать ему URL для скачки.
    Можно также закачать в /tmp и указать локальный путь /tmp/file.tbz (tar.gz)- опция не документирована, но работает.

    А что собой представляет перепакованный АДБлок? Expressions ?



  • Ну да…. для начала надо хотя бы вручную прикрутить, можно в /tmp каким-нибудь WinSCP файл закинуть, это не проблема. Я просто ничего похожего из файлов в SquiGuard'е не нашел

    вот фрагмент перепакованного файла:

    \&ad_keyword\=
    \&ad_type_
    \&adname\=
    \&adspace\=
    \&adtype\=
    \&advertiserid\=
    \&clientype\=.*\&adid\=
    \&googleadword\=
    \&program\=revshare\&
    +adverts\/
    -ad-large\.
    -ad-loading\.
    -ad-manager\/
    -ad-util-
    -ad1\.jpg
    -ad2\.gif
    -adhelper\.
    -adserver-
    -advert-
    -advert\.
    -banner-ad\.
    
    


  • Минусы/плюсы лучше убрать - сразу пакуй как надо. Перестроение базы с дифами не используется - только с нуля.
    Выражение можно строить и так
    (token1)|(tiken2)|(token3)

    Имя файла надеюсь expressions ?



  • я вообще предполагал добавить еще одну категорию к существующим в список SquidGuard'а.

    Файл-то expressions, просто куда его сохранить? как указать SquidGuard'у подгружать еще и этот файл?

    Я создал /var/db/SquidGuard/Adblock и там файл expressions, куда дальше смотреть?



  • Путь /var/squidGuard/db/adblock
    Тут-же прописать его имя adblock в файл /usr/local/etc/squidGuard/blacklist.files



  • @dvserg:

    Путь /var/squidGuard/db/adblock
    Тут-же прописать его имя adblock в файл /usr/local/etc/squidGuard/blacklist.files

    После прописывания имени adblock в файл blacklist.files у меня в squidguard'е этот набор правил с какого-то перепуга стал в двух экземплярах, и перестал работать SquidGuard. Убив эту строчку - фильтр заработал.

    В общем ручное редактирование не прокатило(по крайней мере у меня).

    Какие еще будут мысли?



  • @volag:

    @dvserg:

    Путь /var/squidGuard/db/adblock
    Тут-же прописать его имя adblock в файл /usr/local/etc/squidGuard/blacklist.files

    После прописывания имени adblock в файл blacklist.files у меня в squidguard'е этот набор правил с какого-то перепуга стал в двух экземплярах, и перестал работать SquidGuard. Убив эту строчку - фильтр заработал.

    В общем ручное редактирование не прокатило(по крайней мере у меня).

    Какие еще будут мысли?

    Это файл в котором хранятся данные о категориях Блэклиста. Последняя строка не должна быть пустой.
    Других вариантов не вижу. Пользовательские категории из гуя перезаписываются каждый раз заново.



  • Я вообще исхитрился так: создал категорию adblock в гуе, вписал один сайт в поле expressions, сохранил, затем перезаписал WinSCP этот файл тем, коотрый я стянул и сконвертировал. Все это дело работало, но появилось два пункта adblock. Затем фильтр обиделся и не заработал, пока я не вернул все в "заводские настройки".

    Вот у меня такой вопрос: какой допустимый синтаксис в файле expressions?



  • @volag:

    Я вообще исхитрился так: создал категорию adblock в гуе, вписал один сайт в поле expressions, сохранил, затем перезаписал WinSCP этот файл тем, коотрый я стянул и сконвертировал. Все это дело работало, но появилось два пункта adblock. Затем фильтр обиделся и не заработал, пока я не вернул все в "заводские настройки".

    Вот у меня такой вопрос: какой допустимый синтаксис в файле expressions?

    Ну естественно одна категория шла из файла блэклист а вторая из гуя. А про совпадение имен ничего не говорилось?



  • @dvserg:

    Ну естественно одна категория шла из файла блэклист а вторая из гуя. А про совпадение имен ничего не говорилось?

    Я глядел логи, но ничего такого нет, вообще без ошибок все происходит.
    Преполагаю, что можно попробовать цивильно в гуе в поле expressions добавить весь список(он весит до 400Кб) и нормальным образом сохранить, но вот в хинте под этим полем указан список правил, разделенный "|", а вот про сами правила ничего не указано, например как там маски указывать и т.д. Где можно уточнить перевариваемый формат выражений(expressions)?



  • @volag:

    @dvserg:

    Ну естественно одна категория шла из файла блэклист а вторая из гуя. А про совпадение имен ничего не говорилось?

    Я глядел логи, но ничего такого нет, вообще без ошибок все происходит.
    Преполагаю, что можно попробовать цивильно в гуе в поле expressions добавить весь список(он весит до 400Кб) и нормальным образом сохранить, но вот в хинте под этим полем указан список правил, разделенный "|", а вот про сами правила ничего не указано, например как там маски указывать и т.д. Где можно уточнить перевариваемый формат выражений(expressions)?

    Это обычные регулярные выражения - гугл в курсе.
    Маски:
    .   - одиночный символ

    • - неограниченное повторение последнего символа
      .* - соотв любая последовательность
      . - точка
      \ - один слеш
      ^ - от начала строки
      $ - конец строки
      () - скобки ограничивают токен
      [] - скобки допустимые символы
      |  - знак или

    http:\\..mail.ru. - соответствует http:\.mail.ru
    ..mail.ru.((.exe$)|(.php$)|(.zip$)) - соответствует .mail.ru.exe или .mail.ru.php или .mail.ru.zip

    [0-9]* - любая строка из цифр
    [a-zA-Z0-9] - любая цифро-буквенная строка с латиницей



  • @dvserg:

    Это обычные регулярные выражения - гугл в курсе.
    Маски:
    .   - одиночный символ

    • - неограниченное повторение последнего символа
      .* - соотв любая последовательность
      . - точка
      \ - один слеш
      ^ - от начала строки
      $ - конец строки
      () - скобки ограничивают токен
      [] - скобки допустимые символы
      |  - знак или

    http:\\..mail.ru. - соответствует http:\.mail.ru
    ..mail.ru.((.exe$)|(.php$)|(.zip$)) - соответствует .mail.ru.exe или .mail.ru.php или .mail.ru.zip

    [0-9]* - любая строка из цифр
    [a-zA-Z0-9] - любая цифро-буквенная строка с латиницей

    То бишь мне по идее достаточно в исходном файле заменить символы перевода строк на символ "|"(получится одна немерянная мегастрока) и вставить все содержимое в это поле?



  • Думаю так - каждая строка заключается в скобки и | между ними
    (строка1)|(строка2)|(строка3)|(строка4)
    Я не помню реализован ли там разделитель токенов, так что лучше так.



  • Некисло у вас там кормят, похоже, dvserg -)))



  • @Evgeny:

    Некисло у вас там кормят, похоже, dvserg -)))

    Ты про аватар? Это мне напоминалка, что пора чуток похудеть.



  • up

    И все-таки, кому-то интересна кроме меня эта тема?

    как автоматизировать процесс конвертации списка https://easylist-downloads.adblockplus.org/ruadlist+easylist.txt в удобный для squidguard'а?



  • Ну собственно как обычно - сам спросил, сам ответил.

    Все в общем-то работает, но есть проблемы с автоматизацией.

    Как заработало: в самом первом посте я давал ссылку на сайт, где показано как сконвертировать регулярные выражения. Результат сквидгарду подходит, НО веб-интерфейс бьёт его.
    Как обойти: я вручную переписал файл expressions (если кому нужен готовый вот я выкинул: http://dl.dropbox.com/u/10649848/expressions), после этого в меню services вручную перезапускаем SquidGuard.

    Все работает нормально, но только до первого сохранения в веб-морде:(

    Теперь собственно вопрос к уважаемому dvserg как к специалисту по сквидгарду, как обойти указанную мной проблему? Кстати easylist постоянно обновляется и хотелось бы автоматизировать процесс(крон напряч не проблема - проблема подсунуть сквидгарду непоколеченный перепакованный easylist)

    Заранее благодарен!



  • Копать GUI-Expressions, чтобы пропускал как есть. Для себя одного это можно сделать, для всех не рискну - если будет ошибка в регулярном выражении - гард упадет в эмерженс мод.



  • Судя по тому, что я вижу, GUI-expressions убивает просто переводы строк. Причем я так понимаю это делается для общего конфигурационного xml-файла.

    Разница между моим и перегенерированным файлами только в отсутствии символов перевода строки.

    P.S. Решил я небольшой скрипт написать и скормить его крону, только вот не найду, где лежит скрипт запуска SquidGuard'а?



  • squidGuard and Adblock (Easylist)

    http://forum.pfsense.org/index.php/topic,19756.0.html

    ;)


Log in to reply