FreeBSD+Apache+Squid+SquidGuard

Перед тем как подключать squidGuard к squid, необходимо протестировать его локально. Для начала немного теории. Squid передает данные на стандартный ввод редиректора. Редиректор, в свою очередь, обрабатывает запрос и выдает на стандарный вывод результаты. Это либо пустая строка, если перенаправление не требуется, либо измененный URL. Формат запроса от squid к редиректору выглядит так:

URL   адрес клиента разделитель метод запроса
http://test.ru/win2000/setup.exe 127.0.0.1/ - GET

Для того чтобы протестировать как squidGuard будет реагировать на запросы от пользователей, скачиваем test.tar.gz. Распаковываем его и кладем полученный файл test.pl в /usr/local/squidGuard/bin/. Запускаем test.pl и вводим тестируемый адрес. Затем в файле result.txt смотрим результаты работы squidGuard. Набор тестируемых сайтов можно изменять прямо в файле test.pl.

Теперь самое время объединить squidGuard и Squid. В файл /usr/local/squid/etc/squid.conf добавляем строки:

redirector_bypass on # если не один из экземпляров squidGuard не
# отвечает, то работать напрямую
redirect_program /usr/local/squidGuard/bin/squidGuard # где находится squidGuard
redirect_children 1 # сколько копий squidGuard запускать

Перезапускаем squid. В свою очередь, squid самостоятельно выполнит перезапуск всех запущенных редиректоров.

# killall -HUP squid

В конце файла /usr/local/squidGuard/log/squidGuard.log ищем такие строки:

2002-10-15 16:11:04 [10653] squidGuard 1.2.0 started (1034683864.337) 2002-10-15 16:11:04 [10653] squidGuard ready for requests (1034683864.353)

Если они есть, значит все работает как положено. Теперь сделаем так, что бы Squid и Apache запускались автоматически при каждой загрузке машины.

# cat > /usr/local/etc/rc.d/apache.sh #!/bin/sh /usr/local/apache/bin/apachectl start ^D # cat > /usr/local/etc/rc.d/squid.sh #!/bin/sh /usr/local/squid/bin/squid -D ^D # chmod 100 /usr/local/etc/rc.d/apache.sh /usr/local/etc/rc.d/squid.sh

Настало время перезапустить компьютер и наслаждаться тем, как все гладко работает. В качестве маленького бонуса можно наладить автоматическое обновление базы доменов. Для скачивания файла базы доменов нам понядобится wget. Распаковываем и ставим как обычно.

# tar zxvf wget-1.8.2.tar.gz # cd wget-1.8.2 # ./configure # gmake # gmake install

Смотрим, куда он у нас установился.

# where wget /usr/local/bin/wget

Пишем скрипт, который будет выкачивать обновления с сайта MESD и класть их в директорию /usr/local/squidGuard/update. Затем архив с обновлениями будет распакован и скопирован в директорию /usr/local/squidGuard/bd. После этого будет произведена перестройка баз и перезапуск squid.

#cat > /usr/local/squidGuard/bin/update_blacklist.sh #!/bin/sh /usr/local/bin/wget -q --cache=off 'http://blacklist.dansguardian.org/cgi-bin/download.pl?type=download&file=bigblacklist' -O /usr/local/squidGuard/update/blacklist.tar.gz tar zxvf /usr/local/squidGuard/update/blacklist.tar.gz -C /usr/local/squidGuard/update/ cp -R -f /usr/local/squidGuard/update/blacklists/* /usr/local/squidGuard/bd rm -R /usr/local/squidGuard/update/blacklists /usr/local/squidGuard/rebuid_base.sh ^D # chmod 100 /usr/local/squidGuard/bin/update_blacklist.sh # mkdir /usr/local/squidGuard/update # crontab -e -u root MAILTO="admin@test.ru" 1 0 * * 7 /usr/local/squidGuard/bin/update_blacklist.sh

Назначаем выполнение обновления на 0 часов 1 минуту каждого воскресенья. Уведомление о выполнении этого задания приказываем слать по адресу admin@test.ru.

Последнее изменение внесено 12.11.2002


страницы: 1, 2, 3, 4