Настройка URL-фильтраций на локальном компьютере (Squid+SquidGuard)

URL-фильтрация на локальном компьютере с помощью связки Squid+SquidGuard на основе блэклистов Digincore под Ubuntu

В статье описываются шаги по установке прокси сервера squid3 и блокирующей программы SquidGuard на отдельной клиентской машине. Также мы рассмотрим минимальную конфигурацию этих сервисов для подключения наших блэклистов и перенаправим запросы браузеров (firefox, chrome, opera) на установленный прокси squid3.

Описание системы:

 

1. Если squid3 и squidguard у вас еще не установлены, тогда открываете консоль и набираете строчку (не забываем, что вы должны работать как пользователь root):

apt-get install squid squidguard

После установки необходимо настроить файлы конфигурации, которые расположены по следующим путям: /etc/squid3/squid.conf и /etc/squid/squidguard.conf

2. Для этого открываем конфигурационный файл squid3 (/etc/squid3/squid.conf) и находим там раздел “OPTIONS FOR URL REWRITING”, в котором надо указать программу, с помощью которой будем проверять запрашиваемые url-и. Для этого прописываем следующий параметр:

url_rewrite_program /urs/bin/squid/squidguard -c /etc/squid/squidguard.conf

3. Открываем настройки squidguard (/etc/squid/squidguard.conf) и создаем там минимальную конфигурацию, например:

#
# CONFIG FILE FOR SQUIDGUARD
#
# Caution: do NOT use comments inside { }
#
dbhome /var/lib/squidguard/db
logdir /var/log/squid
#
# DESTINATION CLASSES:

dest digincore_general {
     domainlist digincore/general 

#
# ACL RULES:
#
acl { 
       default { 
             pass !digincore_general !in-addr all 
             redirect http://localhost/blocked 
                  }
     }

Рассмотрим блок “DESTINATION CLASSES”

Мы создали одну группу запрашиваемых url-адресов: dest digincore_general, в которой указали, что список доменов для блокирования расположен в папке /var/lib/squidguard/db/digincore (в параметрах класса указывается путь относительно глобальной переменной dbhome)

Далее мы описываем acl-правила (“ACL RULES”). В нашем случае это правило одно, и оно предписывает пропускать запросы ко всем url-ям кроме тех, которые попали в запрещенный список, а директива !in-addr предотвращает обход системы введением напрямую ip-адреса вместо url-я. 

Параметр redirect указывает куда будут перенаправляться запросы, идущие на блокируемые сайты. Здесь можно указать любой адрес (например http://google.com, или, как в нашем примере, путь до локального файла blocked, расположенного в папке /var/www/ - не забудьте его создать!)

Хинт: один способов организации редиректа описан в нашем блоге.

Это минимальная конфигурация, которая проверяет все http-запросы от всех пользователей данного компьютера. Подобным образом можно определять классы и правила и для других блокируемых списков, групп, пользователей и т.д., подробнее смотрите на http://www.squidguard.org/Doc/examples.html

4. Переходим по ссылке http://digincore.org/index.php/zagruzit-bleklisty/category/1-bleklisty, скачиваем блэклист и распаковываем его в папку /var/lib/squidguard/db/digincore командой 

unzip ./porn.zip -d /var/lib/squidguard/db/digincore/

Подготовка завершена.

5. Далее необходимо установить соответствующие права на файлы и папки, с которыми работает squidguard. В консоли набираем команду:

chown proxy:proxy -R /var/lib/squidguard/*

6. Запускаем команду компиляции блэклистов (это необходимо для того, чтобы SquidGuard загрузил в свою базу данных URL-и из загруженного вами файла):

/usr/bin/squidGuard -C all 

 Внимание: Эта команда выполняется каждый раз, когда вы обновляете блэклисты. 

7. Рестартуем прокси-сервер squid3:

service squid3 restart

Настройка фильтрующего прокси завершена.

8. Для того, чтобы браузеры использовали установленный нами прокси, необходимо явным образом указать это в их настройках. Например, в Mozilla Firefox это делается так:

Выбираем пункты меню Preferences → Advanced → Network → пункт “Connections” кнопка “Settings” → Manual proxy configuration  и в поле HTTP Proxy вписываем localhost, а также указываем порт 3128. 

Mozilla FireFox Squid settings

Настройки для Chrome browser:

Settings → Show advanced settings... → Change proxy settings

браузер вызывает настройки сети операционной системы, далее кликаем на пункт Network proxy и в выпадающем списке, выбираем Manual и выставляем localhost и порт 3128 (необходим пароль суперпользователя)

Chrome Squid proxy settings

Настройки для Opera browser:

Settings → Preferences (Ctrl-F12) → Advanced → Network → Proxy settings и выставляем localhost и порт 3128

Opera Squid settings

С этого момента ваши браузеры начинают совершать http-запросы через прокси сервер squid3, который, в свою очередь, с помощью squidguard, проверяет, не находится ли запрашиваемый url в списке блокируемых.