Установка внешнего редиректора для Squid


# 1..# 2..# 3..#4

Здесь мы рассмотрим установку популярного редиректора для Squid

SquidGuard

Материалы, использованные на данной странице, взяты с этой страницы и лично мной не проверялись, поэтому в случае нахождения ошибки просьба написать

!!Текст написан от имени автора!!

Для работы squidGuard 1.2.0 необходимо иметь Berkeley DB 3.2.9. Многие наступают на грабли с версией базы данных. Судя по разговорам на форумах многие люди как и я лично убедились на собственной шкуре, в том неприятном факте что удачной сборки удалось достигнуть только с версией базы 3.2.9. В свою очередь, Berkeley DB не соберется без libtool. Довольно запутаная получается цепочка. Но бояться не стоит. Берем libtool из коллекции портированных приложений и как обычно, выполняем распаковку, копиляцию, а затем и установку.:

# tar zxvf libtool-1.3.4.tar.gz
# cd libtool-1.3.4

# ./configure
# gmake 
# gmake install

С выполнение этих действий не должно возникнуть никаких сложностей. Скачиваем Berkeley DB 3.2.9. Забираем два патча здесь или здесь. И снова:

# tar zxvf db-3.2.9.tar.gz 

Копируем патч файлы в получившуюся после распаковки дистрибутива директорию db-3.2.9. Затем применяем их для модификации исходного кода.

# cp patch.3.2.9.1 patch.3.2.9.2 ./db-3.2.9 
# cd /usr/local/src/db-3.2.9 
# patch -p0 < patch.3.2.9.1
# patch -p0 < patch.3.2.9.2

А теперь снова компиляция.

# cd build_unix
# ../dist/configure 
# gmake 
# gmake install 

Забираем squidGuard-1.2.0. Распаковываем и компилируем:

# tar zxvf squidGuard-1.2.0.tar.gz
# cd squidGuard-1.2.0 
# ./configure --prefix=/usr/local/squidGuard   --with-db=/usr/local/BerkeleyDB.3.2  \
--with-sg-config=/usr/local/squidGuard/squidGuard.conf \
--with-sg-logdir=/usr/local/squidGuard/log \
--with-sg-dbhome=/usr/local/squidGuard/db

Разберемся с ключами передаваемыми программе configure:

--prefix=/usr/local/squidGuard директория куда будет установлен squidGuard
--with-db=/usr/local/BerkeleyDB.3.2 тут находится используемая при линковке библиотека BerkeleyDB.3.2
--with-sg-config=/usr/local/squidGuard/squidGuard.conf местонахождение файла конфигурации squidGuard
--with-sg-logdir=/usr/local/squidGuard/log директория для файлов протоколов
--with-sg-dbhome=/usr/local/squidGuard/db тут будут находиться списки блокируемых сайтов
# gmake 
# gmake test 
# gmake install 

Cоздаем для хранения файлов протоколирования работы squidGuard директорию /usr/local/squidGuard/log.


# mkdir /usr/local/squidGuard/log

Официальный список блокируемых доменов можно взять на сайте squidGuard. Так же доступен список от MESD. И еще один хороший список от Dansguardian. Кратко сравним их между собой:

База squidGuard Mesd dansguardian Комментарии
ads       реклама
adult нет     сайты для взрослых
aggressive       агрессия
audio-video       музыка и видео
chat нет нет   чаты
forums нет     форумы
drugs       наркотики
gambling       азартные игры
hacking       хакерство
local-block нет   нет сайты заблокированные местным админом
local-ok нет   нет сайты разрешенные местным админом
mail       бесплатные почтовые сервера
porn       порнография
proxy       общедоступные прокси сервера
publicite нет     опять реклама
redirector нет     анонимные прокси сервера
violence       насилие
warez       пиратское програмное обеспечение

Итак, вполне очевидно, что лучше всего взять список MESD или Dansguardian. Какой из них выбрать - оставляю на Ваше личное усмотрение. И тот, и другой обновляются довольно часто. Но, во избежание перегрузки сервиса, не стоит качать списки чаще чем раз в неделю.

Скачав себе один из списком распакуем его в директорию /usr/local/squidGuard/db :

# tar zxvf blacklists.tgz -C /usr/local/squidGuard
# mv /usr/local/squidGuard/blacklists  /usr/local/squidGuard/db 

В директории /usr/local/squidGuard/db появилось несколько поддиректорий. В свою очередь, в каждой из них лежат файлы:

domains список доменов
urls список адресов, используемых что бы заблокировать одельную страницу, а не весь домен.
expression выражения используемые при поиске в url. Например sex, hot, teens, porno и.т.д

Если бы мы взяли официальный список squidGuard, то внутри каждой директории можно было бы увидеть файлы обновлений к базам с такими названиями:

domains.20020825.diff
domains.20020901.diff
domains.20020908.diff
domains.20020915.diff
domains.20020922.diff

Внутри каждого из этих файлов находятся записи вида:

+xratedpornsite.com
+209.51.157.43
-zena.cenhost.com
-scuzz.xtac.com  


Так же в директории находятся файлы:

urls.20020825.diff
urls.20020901.diff
urls.20020908.diff
urls.20020915.diff
urls.20020922.diff 

С записями вроде

-silva.org/look_at_me
+recom.it/fuck/beatrice

Записи, начинающиеся знаком "+", это запрос на добавление строчки в главную базу. Соответственно, строки с минусом имеют обратное назначение. К сожалению применить файлы обновления можно только к базе в формате Berkeley DB. Выполняется это действие командой squidGuard -u. Мне кажется, что такой способ обновления не очень удобен. Поэтому нам следует либо отказаться от списка доменов составленного squidGuard, либо написать конвертор обновлений в нормальный формат.

 

# 1..# 2..# 3..#4


оглавление

Hosted by uCoz