Устанавливаем SquidGuard. Режем порно и не только его.

Администраторы 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
После чего перезапускаем прокси сервер и наслаждаемся полученным эффектом.

Рейтинг@Mail.ru

9 Comments


  1. > Заходим в консоль сервера как пользователь root и пишем:
    squidGuard есть в большинстве распространённых дистрибутивов, собирать нужно только если нужна самая свежая версия или какие-нибудь специфичные опции сборки. А если gcc и прочий build-essential не установлен? Обычное дело в десктопных дистрибутивах вроде Ubuntu/Mandriva. Новичок может ничего об этом не знать.
    >…
    > устанавливаем Berkeley DB командой: yum install db4*
    selivan@tux:~$ yum install db4*
    bash: yum: command not found
    Далеко не у всех стоит Fedora/RedHat. Меня конечно это не смутит, но статья ведь рассчитана на начинающих! Назови её “Устанавливаем squidGuard в Fedora” или объясни, что yum – менеджер пакетов, назови аналоги в других дистрибутивах. Смотри как это выглядит с точки зрения новичка: “В статье написано какое-то непонятное консольное заклинание. У меня оно не работает, ругается по-страшному! А у них всё работает! Непонятный этот ваш линукс, сложный и глючной. Ухожу :(
    > Приведу один из наиболее простых конфигов
    А объяснять что в этом конфиге написано кто будет?!! Одна из немаловажных граней Unix-way состоит в полном понимании происходящего процесса. Бездумное выставление галочек(или, что одно и то же, бездумное копирование найденного в сети конфига) иногда(только иногда!) работает в Window$, эта система заточена на использование не слишком грамотным пользователем. В *nix такое поведение приведёт к дальнейшим проблемам, даже если поначалу такое решение заработало.
    > Открываем файл squid.conf и вставляем в него следующую строку
    Опять то же самое. Что значит эта строка? Что такое редиректор, как он используется? Не, не будем рассказывать, будем дальше шаманство разводить: эту строчку копипастим сюда, эту – туда…

    Статья ужасна, даёт новичкам список инструкций безо всякого объяснения, да ещё и работающих не во всяком дистрибутиве. В результате множатся толпы людей, уверенных что линукс – сложная, непонятная и глючная фигня. Автору незачёт

    З. Ы. Капча абсолютно непробиваемая

    Quote | Posted September 7, 2009, 8:23 pm

  2. А в репозитариях разве нет готового пакета?

    и ешё, хочешь чтобы люди к тебе тянулись сделай что то с коментами
    капча – просто охуевайтунг, особенно учитывая, что теряется набранный текст
    обязательный верхний регистр – как бы намекает, что автор блондинка

    Quote | Posted September 8, 2009, 6:01 am

  3. Большое спасибо за коментарии. Пусть и нелестные. Для начала попробую ответитиь на ваши вопросы и критику. Во первых: статья ужастной сделана специально. Вы, наверное, не представляете сколько раз эту заметку уже содрали на другие ресурсы. В оригинале я ее поправлю. Во вторых. В начале своих заметок я писал о том, что я работаю в RedHat Based дистрибутивах и писать буду в основном для них. Но название статьи дополню. Насчет капчи – обязательно поправлю, но спам на самом деле уже реально поднадоел. Может быть предложите решение получше? Опять же насчет критики. Уважаемый selivan! Не желаете поучаствовать в написании статей? Только не молчите. Господину ffsdmad. В репозитариях обычно лежат староватые дистрибутивы. В моем случае версия 1.2 А я ставлю 1.4 А она намного лучше. Почитайте список фиксов и Вам многое станет ясно. Насчет капчи. Без мата никак нельзя? Почитал ваш блог. Многое понял.

    Еще раз спасибо за отзывы, хоть через капчу пробиться было сложно. :)

    Quote | Posted September 8, 2009, 9:45 am

  4. Объясните какой спам вас достал?
    с параметрами вашего сайта он далеко не самая интересная добыча
    вот у меня, параметры выше, включая посещаемость
    а ни какой капчи нет и нет ни каких спамеров
    Разумеется есть коменты, но они людьми оставлены
    Людьми выражающими мнение по поводу заметок, это разумеется не является спамом который нужно автоматически отбрасывать
    с марта месяца, я тогда разработал 2 очень простых фильтра, у меня нет ни одной спамины содержащей рекламу или не относящихся по теме к блогу или заметкам
    капчой хозяин блога унижает своих посетителей

    Quote | Posted September 8, 2009, 3:34 pm

  5. зы, по теме
    не считаю ваш подход к установке софта в пакетном дистрибутиве правильным и достойным примера перед другими
    либо ставим делаем это в шлаке
    либо ставим в $HOME
    либо собираем пакет для своего дистра

    Quote | Posted September 8, 2009, 3:36 pm

  6. Во первых: за увеличением параметров моего сайта я не гонюсь, люди сами как-то приходят. Спасибо кстати что поинтересовались ими. Во вторых: хочу поздравляю вас с разработкой таких улетных фильтров как у вас на сайте. Спам не проходит? Супер! Поделиться наработками с общественностью желания нет? А у меня, к сожалению, по 300 с лишним сообщений о продаже виагры и ксанакса, и ролексов, и всякой ерунды приходило в день. После установки капчи ситуация несколько улучшилась. Но, действительно, делать что-то нужно. Один из вариантов: удалить поле URL в форме коментариев. ДУмаю тогда я буду совершенно неинтересен для спамеров и спокойно уберу капчу. Может вместе с критикой дадите совет? Какое решение использовать?

    По теме материала. Каждый решает одни и те же задачи по-своему. Я свое мнение не навязываю никому, а лишь пишу о том, как это возможно сделать. Стараюсь подать материал в максимально универсальном виде. Хотя и затачивается у меня ввсе в основном под CentOS. Для чего ставить системный софт в $HOME мне вообще понятно мало. Хотя, опять же, у каждого свои пути.

    Quote | Posted September 8, 2009, 4:31 pm

  7. предлогаю провести скрытое исследвание, а потом опубликовать результат
    намыльте мне жабир, ffsdmad@jabber.ru

    Quote | Posted September 8, 2009, 5:35 pm

  8. Думаю не стоит специально выкладывать статьи в ужасном виде. Пострадают люди, прочитавшие её до правки, как на этом сайте, так и на копипастах. А после исправления её опять скопируют. Интернет – открытое информационное пространство, со всеми вытекающими плюсами и минусами. Спасибо за предложение, к сожалению сейчас мой уровень загруженности не оставляет время на что-либо другое.

    Quote | Posted September 8, 2009, 11:26 pm

  9. Во времена стихиного бедствия под названием Conficer/Kido, squidGuard очень помог сдержать работу этой заразы и недопустить ее обновления с дальнейшей мутацией.
    Но версия 1.2 доблестного squidGuard просто ложилась под натиском сетевого червя.
    Делал белые списки для подверженных заражению и черные для неподверженных – чтоб не шатались где не надо в рабочее время.

    Кстати, установка пакетом очень облегчит жизнь: можно легко снести и обновить.
    RPM-системы: http://www.squidguard.org/Downloads/Contrib/squidguard-1.4-1_ArcosCom.i386.rpm
    Под debian/ubuntu можно взят пакет отсюда: https://launchpad.net/~grexk/+archive/ppa/+build/999680

    Quote | Posted September 12, 2009, 9:58 pm

Leave a reply