Настройка доступов и скоростей
Теперь мы настроим доступы по группам. Например, у нас есть категории:
«Администрация» — предоставим полный доступ на все сайты, на максимальной для их категории скорости.
«Отдел продаж» — доступ в интернет и на площадки маркетплейсов со средней скоростью, запрет на доступ к социальным сетям.
«Остальные пользователи» — доступ в интернет, с запретом на соц.сети и маркетплейсы, с минимальной скоростью.
Итого у нас будут 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
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
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
Скорости у нас настроены, теперь откроем доступы. Правила выполняются из приоритета сверху вниз.
Удаляем ранее добавленную строку из части 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. и т.д.
Комментарии (8)
Abyss777
00.00.0000 00:00Не очень понятно, что будет с https://vk.com ? тоже отобьётся ?
> Если будет необходимость напишу про настройку черных списков сайтов,
доменов, открытия портов и прямых ip адресов на squid для банков,
программ удаленного доступа, сбора статистики пользователей на примере
sqstat. и т.д.
Пишите, это тоже интересно
mrtippler
Спасибо. Это именно то, что мне было когда-то нужно. Все четко.