Использование файлов с набором правил для ACL
О чем этот текст?
Обычно, чтобы определить ACL тех, кто имеет доступ в Интернет, ты пишешь правило в squid.conf вида acl mynetwork 192.168.1.0/24 и в этот ACL будет входить вся подсеть 192.168.1. Или если ты определяешь конкретных пользователей, кому можно ходить в Интернет, то можно также просто внести два-три правила в squid.conf и считай что задача решена. Но когда ты займешься задачей блокирования сайтов, у тебя возникнет ощущение, что можно решить задачу иным образом, вместо загаживания squid.conf сотней правил. Выход - использование файлов с правилам. И действует это на любой ACL, что позволяет расширить круг решаемых задач.
Примечание
Прежде чем приступать к практике, убедись, что ты знаешь и понимаешь назначение следующих директив Squid:
Основная часть
Создадим обычный текстовый файл в директории со squid.conf. Назовем файл antibanner.txt и внесем в него все необходимые правила для блокировки сайтов. По одному правилу на строку. Например, файл может содержать следующие строки:
http://ad*.
yandex.ru
banner.*
*odnoklassniki*
Ну и дальше у кого как с фантазией и потребностями заполняется.
Теперь поработаем с squid.conf.
# Определяем важный, обязательный ACL с именем all. Он включает в себя все возможные IP адреса протокола IPv4. Потому и его название - all(Все).
acl all src 0.0.0.0/0.0.0.0
#Определим ACL блокирования по регулярным выражениям из файла.
acl banner url_regex "antibanner.txt"
# Определяем ACL для пользователей нашей сети(192.168.1.0).
acl ournet src 192.168.1.0/24
# Закрываем все плохие сайты
http_access deny banner
# Открываем доступ нашей сети.
http_access allow ournet
# Остальной доступ закрываем.
http_access deny all
Примечание: Правила необходимо писать именно в такой последовательности. Мы запрещаем всякие плохие сайты и если сайт оказывается не запрещен, то всем из нашей сети он доступен.
Примечание 2: Такой подход можно использовать с каждым ACL. Например, ведение списка MAC адресов пользователей, которым разрешен вход, используемые браузеры, типы файлов для загрузки и так далее.
Запускай Squid или перезапускай если уже запущен, чтобы правила применились. Готово.