Настройка доступов и скоростей

Теперь мы настроим доступы по группам. Например, у нас есть категории:

«Администрация» — предоставим полный доступ на все сайты, на максимальной для их категории скорости.

«Отдел продаж» — доступ в интернет и на площадки маркетплейсов со средней скоростью, запрет на доступ к социальным сетям.

«Остальные пользователи» — доступ в интернет, с запретом на соц.сети и маркетплейсы, с минимальной скоростью.

Итого у нас будут 3 группы скоростей. Maximum, Medium, Minimum

Для каждой категории пользователей в Active Directory созданы группы:

  • administration

  • sales_dep

  • others

Также и для скоростей:

  • maximum

  • medium

  • minimum

Группы с доступами к интернет ресурсам:

  • social_net

  • shops


Правим конфиг.

Пользователи ACL

После Cache в файле /etc/squid/squid.conf добавляем:

external_acl_type class_administration %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g administration@YOURDOMAIN.COM -D YOURDOMAIN.COM

external_acl_type class_sales_dep %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g sales_dep@YOURDOMAIN.COM -D YOURDOMAIN.COM

external_acl_type class_others %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g others@YOURDOMAIN.COM -D YOURDOMAIN.COM

Даём полученным группам псевдонимы для дальнейшей работы:

acl acl_administration external class_administration

acl acl_ sales_dep external class_sales_dep

acl acl_others external class_others

Скорости ACL

Забираем группы, которые мы создали для скоростей из AD:

external_acl_type class_maximum %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g maximum@YOURDOMAIN.COM -D YOURDOMAIN.COM


external_acl_type class_medium %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g medium@YOURDOMAIN.COM -D YOURDOMAIN.COM


external_acl_type class_minimum %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g minimum@YOURDOMAIN.COM -D YOURDOMAIN.COM

Ставим скоростные метки:

acl mark_maximum annotate_transaction maximum=true

acl mark_medium annotate_transaction medium=true

acl mark_minumum annotate_transaction minumum=true

Доступы ACL

Вначале мы уже создали группы доступов к соц.сетям и маркетплейсам в AD. Вытаскиваем их для работы в Squid.

external_acl_type allow_social_net %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g social_net@YOURDOMAIN.COM -D YOURDOMAIN.COM


external_acl_type allow_shops %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g shops@YOURDOMAIN.COM -D YOURDOMAIN.COM

Далее, мы создадим ACL, которые будут использоваться:

acl social_net external allow_social_net

acl shops external allow_shops

Делаем списки, из которых они будут брать сайты, которые нужно фильтровать:

acl white_social_net url_regex -i "/etc/squid/lists/soc.net.list" # Для соц.сетей

acl white_shops_net url_regex -i "/etc/squid/lists/shops.list"    # Для маркетплейсов

Сохраняем конфиг. Идем в /etc/squid создаем папку lists, далее создаем в ней 2 файла soc.net.list, shops.list.

mkdir /etc/squid/lists

cd /etc/squid/lists

touch soc.net.list shops.list

В файле soc.net.list будет храниться список социальных сетей, куда будет предоставляться доступ. В формате:

# " \ " экранирует точку

vk\.com

ok\.ru

И т.д.

Тоже самое в файле со списком онлайн магазинов:

Wildberies\.ru

Ozon\.ru

Aliexpress\.ru

И т.д.

Сохраняем файлы и идем обратно в конфиг.

Сами же мы в отделе будем ходить через прокси, но работать в обход правил и доступов, на максимальной скорости. Указываем свой IP и название acl.

acl admin src 192.168.10.222/32

Настройка скоростей.

Каждый пул — имеет свой размер и свою скорость заполнения. Сайты, на которые обращается клиент сначала попадают в пул, а затем передаются клиенту. Размер буфера и скорость его заполнения в Squid исчисляется в байтах.

Допустим мы хотим, чтобы пользователи из группы «Администрация» выходили в сеть со скоростью 15 Мбит/c, «Отдел продаж» со скоростью 8 Мбит/c, а «Остальные пользователи» со скоростью 4 Мбит/c. Отлично, сказано — сделано.

Задаем acl с примечанием:

acl speed_maximum note maximum

acl speed_medium note medium

acl speed_minimum note minimum

Стоит отметить, что Squid 5 может работать с пулами задержки 4 класса. Расчеты происходят в байтах. Укажем параметры скорости для каждого пользователя, во всех остальных параметрах укажем none.

delay_pools 3                    # Количество пулов

delay_class 1 4

delay_parameters 1 none none none 1875000/1875000               # 15 Mbit/s

delay_access 1 allow speed_maximum

delay_access 1 deny all

Hidden text
Результаты SpeedTest на 15 Mbit/s
Результаты SpeedTest на 15 Mbit/s

delay_class 2 4

delay_parameters 2 none none none 1000000/1000000               # 8 Mbit/s

delay_access 2 allow speed_medium

delay_access 2 deny all

Hidden text
Результаты SpeedTest на 8 Mbit/s
Результаты SpeedTest на 8 Mbit/s

delay_class 3 4

delay_parameters 3 none none none 500000/500000                 # 4 Mbit/s

delay_access 3 allow speed_minimum

delay_access 3 deny all

Hidden text
Результаты SpeedTest на 4 Mbit/s
Результаты SpeedTest на 4 Mbit/s

Скорости у нас настроены, теперь откроем доступы. Правила выполняются из приоритета сверху вниз.

Удаляем ранее добавленную строку из части 2:

http_access allow auth

Добавляем:

http_access allow localhost  # Доступ к прокси серверу всей подсети компании

http_access allow admin       # Доступ нашему IP в обход всех правил

http_access allow administration # Полный доступ администрации

Дальше логические условия. Обратите внимание! Сначала кому, потом куда! Запретить всем пользователям sales_dep кто НЕ в группе white_social_net.

http_access deny !social_net white_social_net

http_access deny !shops white_shops_net

# Speed

http_access allow acl_speed_maximum mark_maximum   # Доступ на максимальной

http_access allow acl_speed_medium mark_medium     # Доступ на средней

http_access allow acl_speed_minimum mark_minimum   # Доступ на минимальной

Кто не состоит ни в одной из описанных нами групп, запретить доступ ко всем веб-сайтам.

http_access deny all

Сохраняем конфиг и выходим.

Делаем squid -k parse

Если нет ошибок, то squid -k reconfigure

Получаем рабочий прокси-сервер на базе Squid 5 с авторизацией по Kerberos.

Что теперь со всем этим делать?

Вам следует теперь управлять только настройками групп в AD.

Пользователи из «Администрации» должны быть членами групп administration и maximum. Тогда они будут ходить по своим правилам, которые мы указали в конфиге.

Пользователи из «Отдела продаж» должны быть членами групп sales_dep, medium и shops. Будут заходить на сайты магазинов со средней скоростью.

Пользователи из «Остальные пользователи» должны быть членами групп others и minimum. Будут заходить на все сайты, кроме тех, которые мы указали в списках (social.net.list, shops.list)

Hidden text

Пример боевого конфига. Работает в компании и отрабатывает все, что от него требуется. Во время настройки и поднятия перечитал кучу мануалов и статей на эту тему. Хотелось собрать рабочую, актуальную, проверенную информацию в одном месте, что собственно и сделано.

Если будет необходимость напишу про настройку черных списков сайтов, доменов, открытия портов и прямых ip адресов на squid для банков, программ удаленного доступа, сбора статистики пользователей на примере sqstat. и т.д.

Sqstat
Sqstat


Часть 1.

Часть 2.

Комментарии (8)


  1. mrtippler
    00.00.0000 00:00
    +1

    Спасибо. Это именно то, что мне было когда-то нужно. Все четко.


  1. Abyss777
    00.00.0000 00:00

    Не очень понятно, что будет с https://vk.com ? тоже отобьётся ?

    > Если будет необходимость напишу про настройку черных списков сайтов,
    доменов, открытия портов и прямых ip адресов на squid для банков,
    программ удаленного доступа, сбора статистики пользователей на примере
    sqstat. и т.д.

    Пишите, это тоже интересно