FreeBSD+Apache+Squid+SquidGuard

Теперь создаем директорию, в которой у нас будет храниться кэш squid. # mkdir /usr/local/squid/cache

А тут у нас будут лежать логи.

# mkdir /usr/local/squid/logs

Нужно позаботиться, чтобы директории /usr/local/squid/cache и /usr/local/squid/logs были доступны пользователю, от имени которого работает squid. Узнать имя этого пользователя можно так:

# cat /usr/local/squid/etc/squid.conf | grep cache_effectiv cache_effective_user nobody сache_effective_group nogroup

Получается, что пользователя зовут nobody, и группа у него nogroup.

# chown -R nobody /usr/local/squid/cache /usr/local/squid/logs # /usr/local/squid/sbin/squid -z

Внутри директории /usr/local/squid/cache создаем иерархию директорий для хранения файлов.
Заглянув в /usr/local/squid/cache, вы сразу поймете, что имелось в виду под словом иерархия.

Запускаем squid

# /usr/local/squid/sbin/squid -D

А на другой консоли смотрим, какие ошибки появляются

# tail -f /var/log/messages

Если все сделали правильно, то должны увидеть что-то подобное.

Oct 3 12:15:05 dns squid[139]: Squid Parent: child process 141 started

Итак, squid у нас заработал. Теперь примемся за установку Russian Apache 1.3.27 PL30.16. Берем дистрибутив.

Распаковываем его и ставим в комплекте по умолчанию.

# tar zxvf apache_1.3.27rusPL30.16.tar.gz # ./configure # gmake # gmake instal

Запускаем apache:

/usr/local/apache/bin/apachectl start

Создаем директорию, где будут лежать пустой баннер и файл mp3 с каким-либо забавным звуком.

# mkdir /usr/local/apache/htdocs/replace

Кладем туда 1x1.gif и my.mp3. Берем модифицированный block.cgi и копируем его в /usr/local/apache/cgi-bin Выставляем ему нужные права:

# chown nobody:wheel /usr/local/apache/cgi-bin/block.cgi # chmod 500 /usr/local/apache/cgi-bin/block.cgi

Этот perl скрипт будет вызываться каждый раз, когда пользователь попытается посетить запрещенную страницу. Взять его можно из архива с дистрибутивом squidGuard. В первоначальном варианте этот скрипт назывался /squidGuard-1.2.0/samples/squidGuard.cgi.in. Можно использовать его, а можно и слегка модифицированный мною вариант. Мой, наверно, лучше, потому что руссифицированный.

Все подготовительные работы окончены, и можно взяться за установку squidGuard 1.2.0. Для его работы необходимо иметь Berkeley DB 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/squi dGuard/squidGuard.conf \ --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. Какой из них выбрать - оставляю на Ваше личное усмотрение. И тот, и другой обновляются довольно часто. Но, во избежание перегрузки сервиса, не стоит качать списки чаще чем раз в неделю.

Скачав себе один из списком распакуем его:

# 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 urls.20020825.diff urls.20020901.diff urls.20020908.diff urls.20020915.diff urls.20020922.diff

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

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

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


страницы: 1, 2, 3, 4
следующая