Использование файлов с набором правил для 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 или перезапускай если уже запущен, чтобы правила применились. Готово.