Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
SquidGuard может работать с текстовыми базами
данных, но в таком случае при каждом запуске ему приходится создавать в
оперативной памяти бинарное дерево всех загружаемых баз в формате Berkeley DB.
Этот процесс занимает длительное время. Подобных задержек можно избежать, если
заранее самому создать базы в нужном формате. На моей машине после создания баз
время загрузки сократилось почти в 10 раз. Поэтому мы напишем скрипт (
# cat > /usr/local/squidGuard/bin/rebuid_base.sh
#!/bin/sh
/usr/local/squidGuard/bin/squidGuard -C all
chown -R nobody /usr/local/squidGuard/db
killall -HUP squid
^D
Устанавливаем нужные права доступа на файл rebuid_base.sh. Убедимся, что этот скрипт имеет право запускать только пользовать root.
# chmod 100 /usr/local/squidGuard/bin/rebuid_base.sh
# /usr/local/squidGuard/bin/rebuid_base.sh
Запустив rebuid_base.sh, необходимо дождаться нормального завершения задачи. Теперь во всех директориях, упомянутых в разделах dest конфигурационного файла, появились файлы баз данных domains.db и urls.db.
Перед тем как подключать squidGuard к squid, необходимо протестировать его локально. Для начала немного теории. Squid передает данные на стандартный ввод редиректора. Редиректор, в свою очередь, обрабатывает запрос и выдает на стандарный вывод результаты своей работы. Затем squid забирает эти данные. Редиректор отвечает на запрос от squid либо пустой строкой, если перенаправление не требуется, либо измененным URL. Формат запроса от squid к редиректору выглядит так:
URL |
Адрес клиента |
Разделитель |
Метод запроса |
http://test.ru/win2000/setup.exe |
127.0.0.1/ |
– |
GET |
Для того чтобы проверить, как squidGuard будет
реагировать на запросы пользователей, скачиваем написанную мною тестовую
программу test.tar.gz (
# если ни один из экземпляров squidGuard не отвечает, то работать напрямую
redirector_bypass on
# где находится squidGuard
redirect_program /usr/local/squidGuard/bin/squidGuard
# сколько экземрляров squidGuard запускать
redirect_children 1
Перезапускаем 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)