Squid https фильтрация

Squid https фильтрация

Итак несмотря на наши блокировки Оптимизация squid прогресс не дремлет.
Большинство ресурсов переходит на HTTPS.
И как оказалось для SQID необходимы разные правила для блокировок.

PS:
Блокировка HTTPS работает только для непрозрачного режима SQUID
В прозрачном режиме с использованием ssl_bump не отрабатывают имена и squid видит только IP
При этом работает блокировка HTTP

Начнем.
Конфигурация по прежнему та же Конфигурация Squid3.

Создадим файл с сайтами что будем глобально блокировать.

nano /home/proxy/lists/httpssoc.acl
#################################################
#       Глупые HTTPS развлечения                #
#################################################
(^|\.)vk\.com$
(^|\.)ok\.ru$
(^|\.)facebook\.com$
(^|\.)youtube\.com$
(^|\.)yaplakal\.com$
(^|\.)yapfiles\.ru$
(^|\.)fishki\.net$
(^|\.)vasi\.net$
(^|\.)pikabu\.ru$
(^|\.)joyreactor\.cc$
(^|\.)sasisa\.ru$
(^|\.)zaycev\.net$

#################################################
#       Глупые запросы оффиса                   #
#################################################
(^|\.)microsoft\.com$
(^|\.)office\.com$
(^|\.)office\.net$
(^|\.)microsoftstore\.com$
(^|\.)officeapps\.live\.com$
(^|\.)autodiscover\.fs\.ess$
(^|\.)msecnd\.net$
(^|\.)windowsupdate\.com$
(^|\.)windows\.com$

Затем поправим саму конфигурацию Squid

sudo nano /etc/squid3/squid.conf

Добавим наш список

acl httpssoclist        dstdom_regex -i "/home/proxy/lists/httpssoc.acl"

Запретим доступ простым смертным

http_access             allow   !blacklist      !soclist        !httpssoclist   AD_auth

Применим конфигурацию

sudo squid3 -k parse
sudo squid3 -k reconfigure

22 комментария

  • Полезнейший блог, а спасибо никто не говорит. Спасибо, автор. Очень полезные статьи, а цикл о squid просто спас меня. Удачи в наступившим году.

  • Владимир

    Настроил SQUID по инструкции https://imbicile.pp.ru/ubuntu-16-04-prozrachnyj-squid-https/
    Будут ли работать эти правила в этом случае-ведь в логах сквида почему-то не резолвятся имена сайтов?

  • Владимир

    Ещё раз спасибо автору за простые и полезные советы по настройке Ubuntu. У меня вопрос по фильтрации-настраивал Squid по этой вот статье:https://imbicile.pp.ru/ubuntu-16-04-prozrachnyj-squid-… И у меня там такая же проблема, что и указана в комментариях-в логах acess.log не резовлятся имена, проходящие через https. А в связи с этим вопрос-Будет ли эта инструкция работать?

    • Судя по всему имена он выводить для https не будет. Видать особенности ssl bump. Если не прозрачный и без подмены. То имена отрабатывают как надо

  • Очень благодарен. Сайтов 20 перекопал, только твоё решение заработало))

  • Я не пойму, как он блокирует миме типы у https?)))dstdom_regex за это ни как не отвечает

  • uckuH

    “Джой” то за что?!

  • Андрей

    Здравствуйте.
    А как запретить все, кроме разрешенных HTTP, HTTPS, FTP ?
    Спасибо.

  • Марат

    К сожалению не работает.
    Директива http_access не блокирует https.

    • Здесь логика http_access разрешает ПРАВИЛО !КРОМЕ
      Проверьте последовательность своих правил, возможно дело в этом

      • Марат

        Проверил, вроде заработало squid 3.5.20 :

        https_access allow aclsrc gooddst # работает, пускает только на gooddst
        https_access allow aclsrc !baddst # работает, пускает везде кроме baddst
        https_access deny aclsrc baddst #не работает, блокирует все, не глядя на список dst
        https_access deny aclsrc !gooddst #не работает, блокирует все, не глядя на список dst

        • Не совсем понял что есть aclsrc. Допустим это список разрешенных
          Еще тут важна последовательность правил
          Сверху вниз
          https_access deny baddst !gooddst #Запрещаем ссылки хоя по сути gooddst тут уже вроде не важен. Запретили а остальное разрешено
          https_access allow aclsrc # Разрешаем наш списко пользователей.
          http_access deny all # Рубим все остальное

          Вариаций много

          • marat

            Да, aclsrc – хост(ы) для которых выполняется правило (источник запроса).
            Сквид вроде позволяет настраивать разные правила для разных списков доступа.
            У меня получилось так:

            https_access allow src1 gooddst # пускает src1 только на gooddst
            https_access allow src2 !baddst # пускает src2 везде кроме baddst
            https_access deny src3 baddst #блокирует src3 на все домены, не глядя на список baddst
            https_access deny src4 !gooddst #блокирует src4 на все домены, не глядя на список gooddst

            • Все правильно. Смотрите на логику

              https_access deny src3 baddst #блокирует src3 на все домены, не глядя на список baddst
              Идет пакет по цепочке. И подряд правило. Заблокировать src3. Блокирует. Заблокировать baddst. Блокирует

              https_access deny src4 !gooddst #блокирует src4 на все домены, не глядя на список gooddst
              Заблокировать src4. Блокирует. До правила “Не блокировать gooddst” уже на доходит. Так как уже заблокирован

              Все дело в последовательности

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *