Администраторы Linux серверов, которые предоставляют доступ пользователей локальной сети к ресурсам сети Интернет, всегда сталкиваются с проблемой блокировки нежелательных адресов. Обычно под эту категорию попадают сайты порнографического содержания, варез, шпионский софт, социальные сети и так далее. Одним из наиболее продвинутых средств для такой блокировки является URL редиректор SquidGuard.
Заметка предназначена для RPM-Based дистрибутивов линукс, но с небольшой доработкой может использоваться и в версиях линукс, основанных на других репозитариях. Установка SquidGuard достаточно проста. Заходим в консоль сервера как пользователь root и пишем:
wget http://www.squidguard.org/Downloads/squidGuard-1.4.tar.gz tar zxvf squidGuard-1.4.tar.gz cd squidGuard-1.4 ./configure make make install
Для работы SquidGuard также необходимо наличие в системе установленной BerkeleyDB. Как пишет Википедия:”Berkeley DB (BDB) — высокопроизводительная встраиваемая база данных, реализованная в виде библиотеки”. Вот именно в формате Berkeley DB и будут храниться и использоваться SquidGuard-ом списки URL для фильтрации. Проверим есть ли в системе установленная Berkeley DB. Подходит для CentOS 4.x
rpm -qa | grep db4 Если вывод команды примерно такой:
db4-utils-4.2.52-7.1 db4-devel-4.2.52-7.1 db4-4.2.52-7.1 значит все в порядке. Если нет, то устанавливаем Berkeley DB командой: yum install db4* и проводим установку SquidGuard повторно. Далее нам необходимо скачать список запрещенных URL. К счастью создавать их самостоятельно необходимости нет. Есть соответствующие сервисы в сети. Я использую бесплатный сервис http://www.shallalist.de/ Скачиваем архив ссылок и распаковываем его в каталог /usr/local/squidGuard/db. В нашем случае выполняем следующие действия:
cd /usr/local/squidGuard/db wget http://www.shallalist.de/Downloads/shallalist.tar.gz tar zxvf shallalist.tar.gz cp -R BL/* /usr/local/squidGuard/db/ rm -R BL
Настройка SquidGuard выполняется с помощью редактирования файла squidGuard.conf в каталоге /usr/local/squidGuard. Настроек хватает в нем, они хорошо описаны в в соответствующем примере по умолчанию. Приведу один из наиболее простых конфигов:
dbhome /usr/local/squidGuard/db logdir /usr/local/squidGuard/logs dest porn { domainlist porn/domains urllist porn/urls } dest redirector { domainlist redirector/domains urllist redirector/urls } dest spyware { domainlist spyware/domains urllist spyware/urls } acl { default { pass !redirector !porn !spyware all redirect http://172.16.0.1/block.html } }
Далее необходимо инициализировать наш блэклист, заданный в squidGuard.conf, а именно, преобразовать список ссылок в соответствующий db файл. Делается это следующей командой:
squidGuard -C all chown -R squid /usr/local/squidGuard/db/*
где squid – это пользователь, от имени которого в системе запускается прокси сервер Squid. При изменении конфиг файла squidGuard.conf, а именно при добавлении новых списков блокировки, каждый раз необходимо повторять вышеуказанную инициализацию. На этом настройка SquidGuard завершена. Перейдем к настройке squid, чтобы он начал использование SquidGuard для блокировки нежелательных URL. Открываем файл squid.conf и вставляем в него следующую строку (для версии squid 2.5.*)
redirect_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf Для версии squid 2.6.* строка будет выглядеть так:
url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf После чего перезапускаем прокси сервер и наслаждаемся полученным эффектом.
|