Squid: режем баннеры с Adzapper

20 Авг
2008

Несмотря на то, что кэширующий прокси-сервер Squid прекрасно справляется с задачей ограничения доступа к различным ресурсам, проверять файлы на вирусы и блокировать баннеры его штатными средствами крайне проблематично. Здесь на помощь приходят сторонние разработки и дополнения.

Blacklist c adzapper

Squid предоставляет несколько вариантов блокировки ресурсов — по IP-адресу, URL или ключевому слову. Первые два метода достаточно просто реализовать за счет парочки acl и http_access. Но тогда администратору придется обновлять список сайтов и адресов вручную. Эту проблему может взять на себя целый ряд проектов, подходящих к выполнению задачи каждый по-своему — от использования белых и черных списков с возможностью их автоматического обновления, до фильтрации по ключевым словам и применению эвристического анализа. Есть и комбинированные решения. Например, BannerFilter (phroggy.com/bannerfilter) рассчитан на использование известных адресов баннерных сетей и шаблонов, однако последняя версия датирована 2004 годом, поэтому об автоматизации процедуры обновления blacklist и думать не стоит. Хотя имеющиеся шаблоны вполне можно использовать для блокировки баннеров и всплывающих окон. Аналогично работает ufdbGuard (www.urlfilterdb.com), предлагающий бесплатное обновление баз в течение 60 дней. Есть и другие решения, к сожалению, большинство проектов давно не обновлялись. Поэтому выберем то, что поддерживается и доступно в репозитарии Ubuntu.
Редиректор adzapper (adzapper.sf.net) также использует списки URL, есть возможность их автоматического обновления. Его достаточно просто установить и настроить:

$ apt-get install adzapper

Вот, собственно, и все. Пакеты с подобными редиректорами обычно не превышают 100 Кб, поэтому установка проходит быстро. Чтобы прикрутить его к Squid, достаточно добавить в squid.conf всего одну строку. Правда, в зависимости от версии Squid эта строка будет отличаться. Например, в Squid 2.5, который лежит в репозитарии Ubuntu 6.06, и в новой 3.0 следует использовать параметр redirect_program:

redirect_program /usr/bin/adzapper.wrapper

В версии Squid 2.6 используется url_rewrite_program:

url_rewrite_program /usr/bin/adzapper.wrapper

Вот и все настройки, но этого вполне достаточно, чтобы после перезапуска Squid «sudo /etc/init.d/squid restart» часть баннеров была заменена надписью «This is ad zapped«.

Adzapped

Будут блокированы также всплывающие окна и флэш-анимация. Для ежедневного обновления blacklist (фактически самого скрипта adzapper) достаточно добавить новое задание crontab:

$ sudo crontab -e
0 0 * * * root /usr/share/doc/adzapper/examples/update-zapper

Работа скрипта обновления проста, c адреса adzapper.sf.net/scrips/squid_redirect скачивается скрипт, который затем копируется на место /usr/bin/adzapper. В самом конце adzapper, в области DATA, находится список шаблонов URL. Хотя опыт показывает, что его обновления происходят не очень часто.
Конфигурационный файл /etc/adzapper.conf имеет небольшое количество настроек. Если установить значение:

ZAP_MODE=»CLEAR»

То будет использоваться «тихая» блокировка, без вывода указанной выше надписи. При желании эти надписи легко подменить своими. Адрес, откуда загружаются картинки, указывается в двух переменных:

ZAP_BASE=http://adzapper.sourceforge.net/zaps
ZAP_BASE_SSL=https://adzapper.sourceforge.net/zaps

Никто не мешает здесь указать свой URL, разработчики даже рекомендуют такой вариант. Для этого, естественно, необходим рабочий веб-сервер, например, Apache. После установки adzapper в каталоге /usr/share/doc/adzapper/examples/zaps находятся все нужные шаблоны. Теперь достаточно в конфигурационном файле апача /etc/apache2/apache2.conf указать алиас на этот каталог:

$ sudo mcedit /etc/apache2/apache2.conf

Alias /zaps /usr/share/doc/adzapper/examples/zaps/

<Directory /usr/share/doc/adzapper/examples/zaps/>
Options FollowSymLinks Indexes
AllowOverride Limit
Order Allow,Deny
Allow from all
</Directory>

И поправить значение ZAP_BASE:

ZAP_BASE=http://localhost/zaps

Не забываем перезапустить Apache и Squid. Если есть желание, можно изменить файлы, находящиеся внутри каталога zaps, на свои. Часть рекламы все же прорывается сквозь такой заслон. Чтобы не возиться с acl, можно добавить в эту схему Bfilter (bfilter.sf.net), где используется эвристический алгоритм собственной разработки, позволяющий обнаруживать большую часть баннеров и блокировать всплывающие окна, или squidGuard (www.squidguard.org) , о котором пойдет чуть позже.

10 Комментариев к Squid: режем баннеры с Adzapper

Аватар

tinman321

Август 21st, 2008 | 6:46

А почему не AdBlock? Он есть в ФФ и Konqueror. И не надо придумывать с adzapper.

Аватар

журнал Современный дом

Август 22nd, 2008 | 13:44

Не по сабжу: Подскажите как в Linux Mandriva настроить кодировку на файлы и названия папок, 3-й день мучаюсь, незнаю.
ps: все файлы переношу из винды в кодировке win1251.

Аватар

tinman321

Август 26th, 2008 | 9:29

может установить русскую версию мандривы? никогда бы не подумал, что в таком лощеном дистре может возникнуть такая проблема.
Наверно надо копать в сторону /etc/locale.gen

Аватар

vadim s. sabinich

Август 26th, 2008 | 10:25

Для перечитывания конфигурационного файла squid, можно запустить так:
sabinich# squid -k reconfigure

Аватар

Рейтинг самых лучших тем

Сентябрь 12th, 2008 | 15:30

первое место в рейтинге…

http://www.tux.in.ua/articles/798...

Аватар

Linuxoid - все что знаю о Туксе » Архив блога » Установка HAVP в Ubuntu

Сентябрь 14th, 2008 | 21:37

[...] Баннеры не самая не приятная вещь, которую можно встретить на Интернет сайтах. Большая часть вирусов загружается с различных ресурсов самими пользователями. Задача любого админа не допустить этого. Можно просто блокировать файлы с определенным расширением или типом, но это применимо не всегда. Поэтому давай разбираться как добавить в нашу схему проверку трафика антивирусом. [...]

Аватар

Linuxoid - все что знаю о Туксе » Архив блога » Видео по установке AdZapper

Октябрь 9th, 2008 | 8:51

[...] видеоурок по подключению AdZapper к [...]

Аватар

paul

Февраль 4th, 2010 | 13:41

Возможно настроить так, чтобы adzapper не брал из инета свой баннер, если нет и не будет своего вебсервера? Что бы была просто пустая рамка на месте рекламы или вообще ничего?

Аватар

grinder

Февраль 4th, 2010 | 17:51

Выше же все написано.

Аватар

paul

Март 2nd, 2010 | 22:41

ZAP_MODE=»CLEAR» не помогает, потому и спрашиваю.

Комментировать

Наверх