Республика Squid, №2
09.09.08Мой Компьютер, №16, 14.04.2008
К первой части
Блокируем баннеры с adzapper
При помощи самого Squid или дополнений можно реализовать несколько вариантов блокировки ресурсов — по IP-адресу, URL или по ключевому слову. Первые два метода, при помощи парочки acl и http_access, достаточно просто реализовать и в самом Squid. Но администратору постоянно придется обновлять вручную список сайтов и адресов. Эту проблему решили взять на себя целый ряд проектов, использующих для этого свой арсенал средств — от белых и черных списков с возможностью их автоматического обновления до фильтрации по ключевым словам. Поиск по freshmeat.net даст ссылки на несколько проектов.
Например, BannerFilter (phroggy.com/bannerfilter) предлагает использование известных URL баннерных сетей и шаблонов, но, к сожалению, последняя версия датирована 2004 годом, поэтому об автоматизации процедуры обновления blacklist, скорее всего, придется забыть. Впрочем, имеющиеся внутри шаблоны вполне реально использовать для блокировки баннеров и всплывающих окон. Аналогично работает ufdbGuard (www.urlfilterdb.com), предлагающий бесплатное обновление баз в течение 60 дней. Есть и другие решения — к сожалению, большинство проектов давно не обновлялось.
Редиректор adzapper (adzapper.sf.net) также использует списки URL, есть возможность их автоматического обновления. И главное, нужный пакет есть в репозитарии Ubuntu. Поэтому его достаточно просто установить и настроить. Приступаем:
$ 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.
Блокируются в том числе всплывающие окна и флэш-анимация. Для ежедневного обновления 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, которые будут блокированы. Опыт показывает, что обновления его происходят не очень часто.
Конфигурационный файл Adzapper
Конфигурационный файл Adzapper /etc/adzapper.conf имеет небольшое количество настроек. Например, если раскомментировать строку ZAP_MODE=»CLEAR», будет произведена «тихая» блокировка, без вывода указанной выше надписи. При желании можно ее подменить своим вариантом. Адрес, откуда загружаются картинки, указывается в двух переменных:
ZAP_BASE=http://adzapper.sourceforge.net/zaps
ZAP_BASE_SSL=https://adzapper.sourceforge.net/zaps
Ничто не мешает здесь указать адрес своего сервера, разработчики даже рекомендуют такой вариант. Для этого, естественно, необходим рабочий web-сервер, например, Apache. Настройку Apache я показывать не буду, в журнале недавно писали об этом. После установки adzapper в каталоге /usr/share/doc/adzapper/examples/zaps находятся все нужные шаблоны. Теперь достаточно в конфигурационном файле Apache /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. Кстати, на сайте Adzapper написано о том, как вместо Squid использовать Apache. Часть рекламы все же прорывается сквозь такой заслон. Чтобы не возиться с acl, можно добавить в эту схему еще и Bfilter (bfilter.sf.net), в котором используется эвристический алгоритм, позволяющий обнаруживать большую часть баннеров и блокировать всплывающие окна. Или squidGuard (www.squidguard.org).
Борьба с вирусами
Вообще, баннеры — не самая неприятная вещь, которую можно встретить на интернет-сайтах. Именно здесь подхватывает вирусы большинство пользователей, и задача любого админа — не допустить этого. Одним из вариантов решения проблемы является блокировка файлов, имеющих определенное расширение или тип. Но такой подход применим далеко не всегда. Поэтому будем добавлять в нашу схему проверку трафика антивирусом.
Для этой цели подходят как минимум два проекта. Решение SquidClamAv (sf.net/projects/squidclamav) является редиректором, который, работая в паре с демоном clamd антивируса ClamAV, проверяет выборочно файлы, основываясь на содержимом или контексте.
В репозитарии Ubuntu есть несколько более продвинутый и поэтому несколько более сложный в настройке вариант — HAVP (HTTP Anti Virus Proxy, www.server-side.de). Он уже умеет проверять трафик на лету при помощи нескольких антивирусов (ClamAV, F-Prot, Kaspersky, NOD32, Sophos, AVG, Dr.Web и некоторыми другими). Его можно использовать как в связке со Squid, так и в одиночку, обеспечивая прозрачный прокси с проверкой на вирусы. Более того, поскольку HAVP — именно прокси, а не редиректор, есть возможность при подключении связки Squid+HAVP пользоваться разнообразными схемами: squid+havp, havp+squid, squid+havp+squid. Сюда же можно добавить решения для борьбы с баннерами.
Пакета с SquidClamAv в репозитарии нет, поэтому будем компилировать сами (давно я этого не делал J). Если еще не устанавливали компилятор, самое время это сделать:
$ sudo apt-get install build-essential
Естественно, нам понадобится и демон calmd:
$ sudo apt-get install clamav-daemon
Последний пакет потянет за собой еще несколько, в том числе и clamav-freshclam, который необходим для автоматического обновления антивирусных баз.
Теперь скачиваем с сайта проекта последнюю версию SquidClamAv. Распаковываем и компилируем:
$ tar xzvf squidclamav-3.5.tar.gz
$ cd squidclamav-3.5
$ ./configure –prefix=/usr —sysconfdir=/etc
$ make
$ sudo make install
В архиве содержится шаблон конфигурационного файла, копируем его на место:
$ sudo cp squidclamav.conf.dist /etc/squidclamav.conf
Создаем файл для журнала и делаем его владельцем пользователя proxy (в некоторых дистрибутивах squid работает от имени пользователя squid).
$ sudo touch /var/log/squidclamav.log
$ sudo chown proxy /var/log/squidclamav.log
Дополнительно пользователя proxy в файле /etc/groups нужно добавить в группу clamav, просто дописав:
clamav:x:proxy
Настройка SquidClamAv
SquidClamAv подключается аналогично другим редиректорам. Добавляем в конфигурационный файл squid.conf строку с указанием полного пути к исполняемому файлу. Узнать, куда он установлен можно, введя whereis squidclamav.
Для версий 2.5 и 3.0:
redirect_program /usr/bin/squidclamav
redirect_children 15
Для версии 2.6:
url_rewrite_program /usr/bin/squidclamav
url_rewrite_children 15
И приступаем к редактированию /etc/squidclamav.conf. Сначала общие параметры:
# указываем адрес и порт, на котором работает Squid
proxy http://127.0.0.1:3128/
# файл журнала
logfile /var/log/squidclamav.log
# страница, куда перенаправляется пользователь при обнаружении вируса
redirect http://localhost/cgi-bin/clwarn.cgi
# исполняемый файл squidGuard (если он установлен) и отладочная информация
# squidguard /usr/bin/squidguard
debug 0
force 1
Теперь нужно связать SquidClamAv с демоном clamd. Это можно сделать двумя способами: через локальный сокет или указав IP-адрес и порт, на котором clamd принимает соединения. Узнать эти параметры легко, достаточно посмотреть в файл /etc/clamav/clamd.conf. На сокет указывает переменная LocalSocket. В Ubuntu по умолчанию она выглядит так:
LocalSocket /var/run/clamav/clamd.ctl
Поэтому в squidclamav.conf записываем:
clamd_local /var/run/clamav/clamd.ctl
Теперь нужно указать SquidClamAv, какие, собственно, файлы будем проверять, а какие пропускать без проверки. Для этого используется еще ряд параметров: regex|regexi, abort|aborti, content|contenti или whitelist. Параметры, имеющие букву i в имени, игнорируют регистр. Самый простой whitelist — все, что будет приходить с указанного адреса, проверятся не будет:
whitelist www.mycomputer.ua
Параметр content предписывает проверку файлов, основанную на типе (тип можно узнать из логов Squid). Например, для проверки всех приложений пишем такое правило:
content ^.*application/.*$
Параметр abort позволяет исключить из проверки антвирусом файлы, подпадающие под шаблон:
abort ^.*.pdf$
aborti ^.*.png$
aborti ^.*.mp3$
И наконец, что проверять, указываем при помощи regex:
regexi ^.*.exe$
regexi ^.*.com$
regexi ^.*.zip$
И так далее. Запускаем демон clamd:
$ sudo /etc/init.d/clamav-demon start
И перезапускаем Squid:
$ sudo /etc/init.d/squid restart
Для проверки работоспособности настраиваем web-браузер на работу через Squid, заходим на страницу www.eicar.org/anti_virus_test_file.htm и пробуем скачать тестовый вирус (он не опасен). Если файл заблокируется, можно идти дальше.
Добавляем в crontab строчку для автоматического обновления антивирусных баз:
0 * * * * /usr/bin/freshclam –quiet
Чтобы пользователь перенаправлялся на страницу с пояснением, нужно иметь под рукой рабочий web-сервер. Если есть настроенный web-сервер, достаточно скопировать файл clwarn.cgi в каталог cgi-bin (в Ubuntu /usr/lib/cgi-bin). Этот шаблон также можно изменить по своему вкусу, хотя бы просто локализовать.
Это далеко не все дополнения, расширяющие возможности Squid. Особое внимание хочу обратить на squidGuard и DansGuardian (http://dansguardian.org). Окончательный выбор предстоит сделать вам.
Linux forever!
Сергей «grinder» ЯРЕМЧУК
Web-droid editor

вологість:
тиск:
вітер:

Огляд ноутбуку Lenovo ThinkPad X1 Extreme Gen 5: в чому сіль?



Ноутбуки Lenovo серії ThinkPad X1 Extreme мають бути готові до будь яких навантажень, витримувати певні фізичні випробовування та при цьому характеризуватися доволі невеликим габаритами та вагою. Розкажемо про модель п’ятого покоління та розберемося наскільки вона виправдовує свій статус екстремальної

ASUS представила в Україні ігровий ноутбук ROG Strix SCAR 16 (2023) з Core i9-13980HX та GeForce RTX 4080
ASUS Intel NVIDIA Republic of Gamers ігри ноутбук події в УкраїніКомпанія ASUS представила в Україні ігровий ноутбук ROG Strix SCAR 16 (2023). Також компанія показала на презентації версію моделі з дисплеєм діагоналлю 18 дюймів.
Нова пошта запустила сервіс безкоштовного повернення товарів
події в Україні сервіс«Легке повернення». — це швидка та безкоштовна послуга для повернення товару або частини товарів із замовлення продавцю протягом 14 днів після отримання посилки.