Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    SquidGuard & Adblock

    Scheduled Pinned Locked Moved Russian
    21 Posts 4 Posters 14.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • V
      volag
      last edited by

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

      Возникла мысль прикрутить к 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, чтобы добавить туда возможность добавления данного списка(еще с возможностью регулярного обновления, благо на него есть постоянный урл)?

      1 Reply Last reply Reply Quote 0
      • D
        dvserg
        last edited by

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

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

        SquidGuardDoc EN  RU Tutorial
        Localization ru_PFSense

        1 Reply Last reply Reply Quote 0
        • V
          volag
          last edited by

          Ну да…. для начала надо хотя бы вручную прикрутить, можно в /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\.
          
          
          1 Reply Last reply Reply Quote 0
          • D
            dvserg
            last edited by

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

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

            SquidGuardDoc EN  RU Tutorial
            Localization ru_PFSense

            1 Reply Last reply Reply Quote 0
            • V
              volag
              last edited by

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

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

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

              1 Reply Last reply Reply Quote 0
              • D
                dvserg
                last edited by

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

                SquidGuardDoc EN  RU Tutorial
                Localization ru_PFSense

                1 Reply Last reply Reply Quote 0
                • V
                  volag
                  last edited by

                  @dvserg:

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

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

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

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

                  1 Reply Last reply Reply Quote 0
                  • D
                    dvserg
                    last edited by

                    @volag:

                    @dvserg:

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

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

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

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

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

                    SquidGuardDoc EN  RU Tutorial
                    Localization ru_PFSense

                    1 Reply Last reply Reply Quote 0
                    • V
                      volag
                      last edited by

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

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

                      1 Reply Last reply Reply Quote 0
                      • D
                        dvserg
                        last edited by

                        @volag:

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

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

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

                        SquidGuardDoc EN  RU Tutorial
                        Localization ru_PFSense

                        1 Reply Last reply Reply Quote 0
                        • V
                          volag
                          last edited by

                          @dvserg:

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

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

                          1 Reply Last reply Reply Quote 0
                          • D
                            dvserg
                            last edited by

                            @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] - любая цифро-буквенная строка с латиницей

                            SquidGuardDoc EN  RU Tutorial
                            Localization ru_PFSense

                            1 Reply Last reply Reply Quote 0
                            • V
                              volag
                              last edited by

                              @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 Reply Last reply Reply Quote 0
                              • D
                                dvserg
                                last edited by

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

                                SquidGuardDoc EN  RU Tutorial
                                Localization ru_PFSense

                                1 Reply Last reply Reply Quote 0
                                • E
                                  Eugene
                                  last edited by

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

                                  http://ru.doc.pfsense.org

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    dvserg
                                    last edited by

                                    @Evgeny:

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

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

                                    SquidGuardDoc EN  RU Tutorial
                                    Localization ru_PFSense

                                    1 Reply Last reply Reply Quote 0
                                    • V
                                      volag
                                      last edited by

                                      up

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

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

                                      1 Reply Last reply Reply Quote 0
                                      • V
                                        volag
                                        last edited by

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

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

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

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

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

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

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          dvserg
                                          last edited by

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

                                          SquidGuardDoc EN  RU Tutorial
                                          Localization ru_PFSense

                                          1 Reply Last reply Reply Quote 0
                                          • V
                                            volag
                                            last edited by

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

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

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

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.