SCROLL
Среднее время на прочтение: 2 мин.

Ограничиваем скорость доступа пользователям в интернет с помощью прокси-сервера Squid

Рано или поздно все сталкиваются с задачей ограничения скорости доступа в интернет для пользователей. Рассмотрим решение данной задачи при помощи прокси-сервера Squid (установить его можно по этой статье)

 

За ограничение скорости в Squid отвечает параметр delay_pools. Принцип работы delay_pools каждый запрашиваемый объект сначала попадает в пул, а затем передается клиенту. Каждый пул определяется двумя параметрами: скоростью его заполнения и размером буфера. Прим. размер пула 8000 и размер буфера 8000, означает что скорость заполнения буфера будет 64 кБ/с. Неограниченный размер буфера и скорости задается как -1/-1. Размер буфера и скорость задается в байта.

 

Скорость заполнения пула зависит от класса delay_class. Варианты доступных классов:

  1. Общие ограничения скорости загрузки для всех.
  2. Общие ограничения скорости загрузки и скорость каждого хоста.
  3. Общие ограничения скорости загрузки, скорость сети и скорость каждого хоста.
  4. Все ограничения класса 3 + ограничения на уровне отдельно взятых пользователей (требуется аутентификация пользователей в правилах http_access).
  5. Запросы группируются по тэгам определяемым в external_acl

 

JUQwJTkyJUQwJUI4JUQwJUI0JTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUI1JUQwJUI5JTIwZGVsYXlfcGFyYW1ldGVycyUyQyUyMCVEMCVCMiUyMCVEMCVCNyVEMCVCMCVEMCVCMiVEMCVCOCVEMSU4MSVEMCVCOCVEMCVCQyVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCOCUyMCVEMCVCRSVEMSU4MiUyMCVEMCVCMiVEMSU4QiVEMCVCMSVEMSU4MCVEMCVCMCVEMCVCRCVEMCVCRCVEMCVCRSVEMCVCMyVEMCVCRSUyMCVEMCVCQSVEMCVCQiVEMCVCMCVEMSU4MSVEMSU4MSVEMCVCMCUzQQ==

  1. delay_parameters <номер пула> <общие ограничения для всех>
  2. delay_parameters <номер пула> <общие ограничения для всех> <ограничения для хоста>
  3. delay_parameters <номер пула> <общие ограничения для всех> <ограничения для подсети> <ограничения для хоста>
  4. delay_parameters <номер пула> <общие ограничения для всех> <ограничения для подсети> <ограничения для хоста> <ограничения для пользователя>
  5. delay_parameters <номер пула> <тегированные ограничения>

 

Разграничение скорости по группам пользователей

К примеру мы имеем локальную сеть 172.31.31.0/24, список пользователей без ограничений, список пользователей кому ограничивать скорость до 1024 кБ/с.

JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUI4JTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQwJUI1JUQwJUI5JTIwJUQxJTgxJTIwSVAtJUQwJUIwJUQwJUI0JUQxJTgwJUQwJUI1JUQxJTgxJUQwJUIwJUQwJUJDJUQwJUI4JTNB

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo touch /etc/squid/Admins_Unlim.txt # Администраторы без ограничение скорости
sudo touch /etc/squid/Users_Speed_1M.txt # Пользователи с ограничением скорости 1Mb
sudo touch /etc/squid/Admins_Unlim.txt # Администраторы без ограничение скорости sudo touch /etc/squid/Users_Speed_1M.txt # Пользователи с ограничением скорости 1Mb
sudo touch /etc/squid/Admins_Unlim.txt # Администраторы без ограничение скорости
sudo touch /etc/squid/Users_Speed_1M.txt # Пользователи с ограничением скорости 1Mb

 

SVAtJUQwJUIwJUQwJUI0JUQxJTgwJUQwJUI1JUQxJTgxJUQwJUIwJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQwJUI1JUQwJUI5JTIwJUQwJUIyJTIwJUQxJTgyJUQwJUI1JUQwJUJBJUQxJTgxJUQxJTgyJUQwJUJFJUQwJUIyJUQxJThCJUQwJUI1JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQxJThCJTIwJUQwJUI3JUQwJUIwJUQwJUJEJUQwJUJFJUQxJTgxJUQwJUI4JUQwJUJDJTIwJUQwJUIyJTIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQxJTg3JUQwJUJEJUQwJUJFJUQwJUJDJTIwJUQwJUJGJUQwJUJFJUQxJTgwJUQxJThGJUQwJUI0JUQwJUJBJUQwJUI1JTNB

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
172.31.31.10
172.31.31.13
172.31.31.15
и т.д.
172.31.31.10 172.31.31.13 172.31.31.15 и т.д.
172.31.31.10
172.31.31.13
172.31.31.15
и т.д.

 

Переходим к редактированию конфигурации Squid

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano /etc/squid/squid.conf
sudo nano /etc/squid/squid.conf
sudo nano /etc/squid/squid.conf

 

Указываем списки доступа (acl):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Локальная сеть
acl localnet src 172.31.31.0/24
# Путь к списку IP-адресов пользователей, без ограничения скорости
acl Admins_Unlim src "/etc/squid/Admins_Unlim.txt"
# Путь к списку IP-адресов пользователей, с ограничением скорости 1Mb
acl Users_Speed_1M src "/etc/squid/Users_Speed_1M.txt"
# Локальная сеть acl localnet src 172.31.31.0/24 # Путь к списку IP-адресов пользователей, без ограничения скорости acl Admins_Unlim src "/etc/squid/Admins_Unlim.txt" # Путь к списку IP-адресов пользователей, с ограничением скорости 1Mb acl Users_Speed_1M src "/etc/squid/Users_Speed_1M.txt"
# Локальная сеть
acl localnet src 172.31.31.0/24
# Путь к списку IP-адресов пользователей, без ограничения скорости
acl Admins_Unlim src "/etc/squid/Admins_Unlim.txt"
# Путь к списку IP-адресов пользователей, с ограничением скорости 1Mb
acl Users_Speed_1M src "/etc/squid/Users_Speed_1M.txt"

 

Указываем права доступа:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Разрешаем только локальную сеть
http_access allow localnet
# Блокирует все остальное
http_access deny all
# Разрешаем только локальную сеть http_access allow localnet # Блокирует все остальное http_access deny all
# Разрешаем только локальную сеть
http_access allow localnet
# Блокирует все остальное
http_access deny all

 

JUQwJTk3JUQwJUIwJUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQxJTgzJUQwJUJCJUQxJThCJTIwJUQwJUJGJUQwJUJFJTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQwJUJDJTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQxJTgzJUQxJTgyJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQxJTgyJUQxJThDJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQwJUI4JTNB

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Кол-во пулов
delay_pools 2
# Первый пул и его класс
delay_class 1 1
# Второй пул и его класс
delay_class 2 1
# Кол-во пулов delay_pools 2 # Первый пул и его класс delay_class 1 1 # Второй пул и его класс delay_class 2 1
# Кол-во пулов
delay_pools 2
# Первый пул и его класс
delay_class 1 1
# Второй пул и его класс
delay_class 2 1

 

JUQwJTk3JUQwJUIwJUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUJGJUQwJUJGJUQxJThCJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUIwJTIwJUQwJUJBJTIwJUQwJUJGJUQxJTgzJUQwJUJCJUQwJUIwJUQwJUJDJTNB

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Доступ к пулу 1 пользователей из списка Admins_Unlim
delay_access 1 allow Admins_Unlim
# Остальных не пропускаем в этот пул
delay_access 1 deny all
# Доступ к пулу 2 пользователей из списка Users_Speed_1M
delay_access 2 allow Users_Speed_1M
# Остальных не пропускаем в этот пул
delay_access 2 deny all
# Доступ к пулу 1 пользователей из списка Admins_Unlim delay_access 1 allow Admins_Unlim # Остальных не пропускаем в этот пул delay_access 1 deny all # Доступ к пулу 2 пользователей из списка Users_Speed_1M delay_access 2 allow Users_Speed_1M # Остальных не пропускаем в этот пул delay_access 2 deny all
# Доступ к пулу 1 пользователей из списка Admins_Unlim
delay_access 1 allow Admins_Unlim
# Остальных не пропускаем в этот пул
delay_access 1 deny all
# Доступ к пулу 2 пользователей из списка Users_Speed_1M
delay_access 2 allow Users_Speed_1M
# Остальных не пропускаем в этот пул
delay_access 2 deny all

 

Задаем параметры пулов:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Первому пулу без ограничения размера буфера и скорости
delay_parameters 1 -1/-1
# Второму пулу ограничиваем размер буфера и скорость в 1024 кБ/с
delay_parameters 2 128000/128000
# Первому пулу без ограничения размера буфера и скорости delay_parameters 1 -1/-1 # Второму пулу ограничиваем размер буфера и скорость в 1024 кБ/с delay_parameters 2 128000/128000
# Первому пулу без ограничения размера буфера и скорости
delay_parameters 1 -1/-1
# Второму пулу ограничиваем размер буфера и скорость в 1024 кБ/с
delay_parameters 2 128000/128000

[stextbox id=’info’]Параметры пулов указываются по порядку: общие — подсеть — хост и в том же порядке они перекрывают друг друга. Если, например, на общем уровне действуют ограничения на размер файла, то они автоматически распространяются на подсеть и хост.[/stextbox]

Сохраняем конфиг. и перезапускаем Squid. Проверяем работу.

 

Разграничение скорости по группам пользователей Active Directory

JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUJFJUQwJUIzJUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI4JUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJTgxJUQwJUJBJUQwJUJFJUQxJTgwJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI4JTIwJUQwJUI4JUQwJUJEJUQxJTgyJUQwJUI1JUQxJTgwJUQwJUJEJUQwJUI1JUQxJTgyJUQwJUIwJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUJFJUQxJTgxJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUI1JTIwQWN0aXZlJTIwRGlyZWN0b3J5JTIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUJGJUQwJUJGJTJDJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQxJThGJUQxJThFJUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUJBJUQxJTgyJUQwJUI4JUQxJTg3JUQwJUI1JUQxJTgxJUQwJUJBJUQwJUI4JTIwJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUJCJUQwJUJFJUQwJUIzJUQwJUI4JUQxJTg3JUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI5JUQwJUJBJUQwJUI4JTIwJUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQwJUJFJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQxJThCJTIwJUQwJUIyJUQxJThCJUQxJTg4JUQwJUI1JTJDJTIwJUQwJUI3JUQwJUIwJTIwJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUIwJUQxJTgwJUQwJUIwJUQwJUJDJUQwJUI1JUQxJTgyJUQxJTgwJUQwJUJFJUQwJUIyJTIwJUQwJUJFJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJThEJUQxJTgyJUQwJUI4JUQxJTg1JTIwJUQxJTgxJUQwJUIwJUQwJUJDJUQxJThCJUQxJTg1JTIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUJGJUQwJUJGJTIwQUQuJTIwJUQwJTlEJUQwJUI4JUQwJUI2JUQwJUI1JTIwJUQwJUJFJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJFJUQwJUIxJTIwJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUJGJUQwJUJFJUQwJUJCJUQwJUIwJUQwJUIzJUQwJUIwJUQwJUI1JUQxJTgyJTIwJUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQxJTgzJTIwJUQwJUIyJUQwJUIwJUQxJTgxJTIwJUQxJTgzJUQwJUI2JUQwJUI1JTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI1JUQwJUJEJUQwJUIwJTIwJUQxJTgxJUQwJUIyJUQxJThGJUQwJUI3JUQwJUJBJUQwJUIwJTIwU3F1aWQlMjAlMkIlMjBBY3RpdmUlMjBEaXJlY3RvcnklMjAoJUQwJUJBJUQwJUIwJUQwJUJBJTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQxJTgxJUQwJUIyJUQxJThGJUQwJUI3JUQwJUJBJUQxJTgzJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQxJTgwJUQwJUJFJUQwJUIxJUQwJUJEJUQwJUJFJTIwJUQwJUJFJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQwJUJFJTIwJUQwJUI3JUQwJUI0JUQwJUI1JUQxJTgxJUQxJThDKS4lMjAlRDAlQTAlRDAlQjAlRDElODElRDElODElRDAlQkMlRDAlQkUlRDElODIlRDElODAlRDAlQjglRDAlQkMlMjAlRDAlQkQlRDAlQjUlRDElODElRDAlQkElRDAlQkUlRDAlQkIlRDElOEMlRDAlQkElRDAlQkUlMjAlRDAlQjglRDAlQkQlRDElODMlRDElOEUlMjAlRDElODElRDAlQjglRDElODIlRDElODMlRDAlQjAlRDElODYlRDAlQjglRDElOEUlMjAlRDAlQkUlRDAlQjMlRDElODAlRDAlQjAlRDAlQkQlRDAlQjglRDElODclRDAlQjUlRDAlQkQlRDAlQjglRDElOEYlMjAlRDElODElRDAlQkElRDAlQkUlRDElODAlRDAlQkUlRDElODElRDElODIlRDAlQjglMkMlMjAlRDAlQjQlRDAlQjAlRDAlQjElRDElOEIlMjAlRDElODAlRDAlQjAlRDAlQjclRDAlQkQlRDAlQkUlRDAlQkUlRDAlQjElRDElODAlRDAlQjAlRDAlQjclRDAlQjglRDElODIlRDElOEMlMjAlRDAlQkUlRDAlQkYlRDAlQjglRDElODElRDAlQjAlRDAlQkQlRDAlQjglRDAlQjUu

JUQwJTk4JUQwJUJDJUQwJUI1JUQwJUI1JUQwJUJDJTIwJUQwJUIyJUQxJTg1JUQwJUJFJUQwJUI0JUQxJThGJUQxJTg5JUQwJUI4JUQwJUI5JTIwJUQwJUJBJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUJCJTIwJUQwJUI4JUQwJUJEJUQxJTgyJUQwJUI1JUQxJTgwJUQwJUJEJUQwJUI1JUQxJTgyJUQwJUIwJTIwMTBNYiUyQyUyMCVEMCVCNCVEMCVCMiVEMCVCNSUyMCVEMCVCQiVEMCVCRSVEMCVCQSVEMCVCMCVEMCVCQiVEMSU4QyVEMCVCRCVEMSU4QiVEMCVCNSUyMCVEMSU4MSVEMCVCNSVEMSU4MiVEMCVCOCVDMiVBMDE3Mi4zMS4zMS4wJTJGMjQlMjAlRDAlQjglQzIlQTAxNzIuMzEuMzIuMCUyRjI0JTJDJTIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUJGJUQwJUJGJUQxJThCJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQwJUI1JUQwJUI5JTIwJUQwJUIyJTIwQUQlQzIlQTAlRTIlODAlOTQlQzIlQTBBZG1pbnNfVW5saW0lMjAoJUQwJUIwJUQwJUI0JUQwJUJDJUQwJUI4JUQwJUJEJUQwJUI4JUQxJTgxJUQxJTgyJUQxJTgwJUQwJUIwJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJTIwJUUyJTgwJTk0JTIwJUQwJUIxJUQwJUI1JUQwJUI3JTIwJUQwJUJFJUQwJUIzJUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI4JUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI5KSUyQyUyMFVzZXJzX1NwZWVkXzEyOCVDMiVBMCglRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDAlQjUlRDAlQkIlRDAlQjglMjAlRDElODElMjAlRDAlQkUlRDAlQjMlRDElODAlRDAlQjAlRDAlQkQlRDAlQjglRDElODclRDAlQjUlRDAlQkQlRDAlQjglRDElOEYlRDAlQkMlRDAlQjgpLiUyMCVEMCU5NyVEMCVCMCVEMCVCNCVEMCVCMCVEMSU4NyVEMCVCMCUyMCVEMCVCRiVEMCVCRSVEMCVCNCVEMCVCNSVEMCVCQiVEMCVCOCVEMSU4MiVEMSU4QyUyMCVEMCVCQSVEMCVCMCVEMCVCRCVEMCVCMCVEMCVCQiUyMCVEMCVCOCVEMCVCRCVEMSU4MiVEMCVCNSVEMSU4MCVEMCVCRCVEMCVCNSVEMSU4MiVEMCVCMCUyMCVEMCVCRiVEMCVCRSVEMSU4MCVEMCVCRSVEMCVCMiVEMCVCRCVEMSU4MyUyMCVEMCVCRCVEMCVCMCUyMCVEMCVCNCVEMCVCMiVEMCVCNSUyMCVEMSU4MSVEMCVCNSVEMSU4MiVEMCVCOCUyQyUyMCVEMCVCMyVEMSU4MCVEMSU4MyVEMCVCRiVEMCVCRiVEMCVCNSUyMCVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCQiVEMCVCNSVEMCVCOSUyMEFkbWluc19VbmxpbSUyMCVEMCVCRiVEMSU4MCVEMCVCNSVEMCVCNCVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCMCVEMCVCMiVEMCVCQiVEMSU4RiVEMSU4MiVEMSU4QyUyMCVEMSU4MSVEMCVCQSVEMCVCRSVEMSU4MCVEMCVCRSVEMSU4MSVEMSU4MiVEMSU4QyUyMCVEMCVCMSVEMCVCNSVEMCVCNyUyMCVEMCVCRSVEMCVCMyVEMSU4MCVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4NyVEMCVCNSVEMCVCRCVEMCVCOCVEMSU4RiUyQyUyMCVEMCVCMyVEMSU4MCVEMSU4MyVEMCVCRiVEMCVCRiVEMCVCNSUyMFVzZXJzX1NwZWVkXzY0JUMyJUEwJUQwJUI2JUQwJUI1JUQxJTgxJUQxJTgyJUQwJUJBJUQwJUJFJTIwJUQwJUJFJUQwJUIzJUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI4JUQxJTg3JUQwJUI4JUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQxJTgxJUQwJUJBJUQwJUJFJUQxJTgwJUQwJUJFJUQxJTgxJUQxJTgyJUQxJThDJTIwJUQwJUI0JUQwJUJFJTIwNjQlQzIlQTAlRDAlQkElRDAlOTElMkYlRDElODElMkMlMjAlRDAlQjIlRDElODElRDAlQjUlRDAlQkMlMjAlRDAlQkUlRDElODElRDElODIlRDAlQjAlRDAlQkIlRDElOEMlRDAlQkQlRDElOEIlRDAlQkMlMjAlRDAlQjAlRDAlQjIlRDElODIlRDAlQkUlRDElODAlRDAlQjglRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDAlQkQlRDAlQkQlRDElOEIlRDAlQkMlMjAlRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDAlQjUlRDAlQkIlRDElOEYlRDAlQkMlMjBBRCUyMCVEMCVCRSVEMCVCMyVEMSU4MCVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4NyVEMCVCOCVEMCVCMiVEMCVCMCVEMSU4MiVEMSU4QyUyMCVEMSU4MSVEMCVCQSVEMCVCRSVEMSU4MCVEMCVCRSVEMSU4MSVEMSU4MiVEMSU4QyUyMDUxMiUyMCVEMCVCQSVEMCVCMSUyRiVEMSU4MS4=

JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQwJUJBJTIwJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUIwJUQwJUJBJUQxJTgyJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQxJThFJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwU3F1aWQ=

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano /etc/squid/squid.conf
sudo nano /etc/squid/squid.conf
sudo nano /etc/squid/squid.conf

 

Указываем какие группы в AD мы будем использовать в Squid:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Указываем какие группы в AD будут использоваться в Squid
external_acl_type Admins_Unlim ttl=5 negative_ttl=5 %LOGIN/usr/lib/squid3/ext_kerberos_ldap_group_acl -a -g Admin_Unlim -D TESTZONE.LOCAL
external_acl_type Users_Speed_64 ttl=5 negative_ttl=5 %LOGIN/usr/lib/squid3/ext_kerberos_ldap_group_acl -a -g Users_Speed_64 -D TESTZONE.LOCAL
# Указываем какие группы в AD будут использоваться в Squid external_acl_type Admins_Unlim ttl=5 negative_ttl=5 %LOGIN/usr/lib/squid3/ext_kerberos_ldap_group_acl -a -g Admin_Unlim -D TESTZONE.LOCAL external_acl_type Users_Speed_64 ttl=5 negative_ttl=5 %LOGIN/usr/lib/squid3/ext_kerberos_ldap_group_acl -a -g Users_Speed_64 -D TESTZONE.LOCAL
# Указываем какие группы в AD будут использоваться в Squid
external_acl_type Admins_Unlim ttl=5 negative_ttl=5 %LOGIN/usr/lib/squid3/ext_kerberos_ldap_group_acl -a -g Admin_Unlim -D TESTZONE.LOCAL
external_acl_type Users_Speed_64 ttl=5 negative_ttl=5 %LOGIN/usr/lib/squid3/ext_kerberos_ldap_group_acl -a -g Users_Speed_64 -D TESTZONE.LOCAL

 

Указываем разрешенные локальные сети (acl):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Локальная сеть 1
acl localnet1 src 172.31.31.0/24
# Локальная сеть 2
acl localnet1 src 172.31.32.0/24
# Группа в AD без ограничений скорости
acl Admins_Unlim external Admins_Unlim
# Группа в AD с жесткими ограничениями скорости
acl Users_Speed_64 external Users_Speed_64
# Локальная сеть 1 acl localnet1 src 172.31.31.0/24 # Локальная сеть 2 acl localnet1 src 172.31.32.0/24 # Группа в AD без ограничений скорости acl Admins_Unlim external Admins_Unlim # Группа в AD с жесткими ограничениями скорости acl Users_Speed_64 external Users_Speed_64
# Локальная сеть 1
acl localnet1 src 172.31.31.0/24
# Локальная сеть 2
acl localnet1 src 172.31.32.0/24
# Группа в AD без ограничений скорости
acl Admins_Unlim external Admins_Unlim
# Группа в AD с жесткими ограничениями скорости
acl Users_Speed_64 external Users_Speed_64

 

JUQwJUEzJUQwJUJBJUQwJUIwJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUIwJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUIwJTNB

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Разрешаем доступ только авторизованным пользователям AD.
http_access allow auth
# Разрешаем доступ из Локальной сети 1
http_access allow localnet1
# Разрешаем доступ из Локальной сети 2
http_access allow localnet2
# Остальным доступ блокируем
http_access deny all
# Разрешаем доступ только авторизованным пользователям AD. http_access allow auth # Разрешаем доступ из Локальной сети 1 http_access allow localnet1 # Разрешаем доступ из Локальной сети 2 http_access allow localnet2 # Остальным доступ блокируем http_access deny all
# Разрешаем доступ только авторизованным пользователям AD. 
http_access allow auth
# Разрешаем доступ из Локальной сети 1
http_access allow localnet1
# Разрешаем доступ из Локальной сети 2
http_access allow localnet2
# Остальным доступ блокируем
http_access deny all

 

Задаем пулы по которым будут проходить пользователи:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Кол-во пулов
delay_pools 2
# Первый пул и его класс
delay_class 1 1
# Второй пул и его класс
delay_class 2 1
# Третий пул и его класс
delay_class 3 3
# Кол-во пулов delay_pools 2 # Первый пул и его класс delay_class 1 1 # Второй пул и его класс delay_class 2 1 # Третий пул и его класс delay_class 3 3
# Кол-во пулов
delay_pools 2
# Первый пул и его класс
delay_class 1 1
# Второй пул и его класс
delay_class 2 1
# Третий пул и его класс
delay_class 3 3

 

JUQwJTk3JUQwJUIwJUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUJGJUQwJUJGJUQxJThCJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUIwJTIwJUQwJUJBJTIwJUQwJUJGJUQxJTgzJUQwJUJCJUQwJUIwJUQwJUJDJTNB

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Доступ к пулу 1 пользователей из списка Admins_Unlim
delay_access 1 allow Admins_Unlim
# Остальных не пропускаем в этот пул
delay_access 1 deny all
# Доступ к пулу 2 пользователей из списка User_Speed_64
delay_access 2 allow User_Speed_64
# Остальных не пропускаем в этот пул
delay_access 2 deny all
# Доступ к пулу 3 Локальной сети 1
delay_access 3 allow localnet1
# Доступ к пулу 3 Локальной сети 2
delay_access 3 allow localnet2
# Остальных не пропускаем в этот пул
delay_access 3 deny all
# Доступ к пулу 1 пользователей из списка Admins_Unlim delay_access 1 allow Admins_Unlim # Остальных не пропускаем в этот пул delay_access 1 deny all # Доступ к пулу 2 пользователей из списка User_Speed_64 delay_access 2 allow User_Speed_64 # Остальных не пропускаем в этот пул delay_access 2 deny all # Доступ к пулу 3 Локальной сети 1 delay_access 3 allow localnet1 # Доступ к пулу 3 Локальной сети 2 delay_access 3 allow localnet2 # Остальных не пропускаем в этот пул delay_access 3 deny all
# Доступ к пулу 1 пользователей из списка Admins_Unlim
delay_access 1 allow Admins_Unlim
# Остальных не пропускаем в этот пул
delay_access 1 deny all
# Доступ к пулу 2 пользователей из списка User_Speed_64
delay_access 2 allow User_Speed_64
# Остальных не пропускаем в этот пул
delay_access 2 deny all
# Доступ к пулу 3 Локальной сети 1
delay_access 3 allow localnet1
# Доступ к пулу 3 Локальной сети 2
delay_access 3 allow localnet2
# Остальных не пропускаем в этот пул
delay_access 3 deny all

 

JUQwJTk3JUQwJUIwJUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUIwJUQxJTgwJUQwJUIwJUQwJUJDJUQwJUI1JUQxJTgyJUQxJTgwJUQxJThCJTIwJUQwJUJGJUQxJTgzJUQwJUJCJUQwJUJFJUQwJUIyJTNB

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Первому пулу без ограничения размера буфера и скорости
delay_parameters 1 -1/-1
# Второму пулу ограничиваем размер буфера и скорость на пользователя 64 кБ/с
delay_parameters 2 8000/8000
# Третьему пулу ограничиваем размер буфера и скорость на локальную сеть 5Mb и на хост 512 кБ/с
delay_parameters 3 -1/-1 640000/640000 64000/64000
# Первому пулу без ограничения размера буфера и скорости delay_parameters 1 -1/-1 # Второму пулу ограничиваем размер буфера и скорость на пользователя 64 кБ/с delay_parameters 2 8000/8000 # Третьему пулу ограничиваем размер буфера и скорость на локальную сеть 5Mb и на хост 512 кБ/с delay_parameters 3 -1/-1 640000/640000 64000/64000
# Первому пулу без ограничения размера буфера и скорости
delay_parameters 1 -1/-1
# Второму пулу ограничиваем размер буфера и скорость на пользователя 64 кБ/с
delay_parameters 2 8000/8000
# Третьему пулу ограничиваем размер буфера и скорость на локальную сеть 5Mb и на хост 512 кБ/с
delay_parameters 3 -1/-1 640000/640000 64000/64000

 

JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUIyJTIwQWN0aXZlJTIwRGlyZWN0b3J5JTIwJUQwJUI0JUQwJUIyJUQwJUI1JTIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUJGJUQwJUJGJUQxJThCJTJDJTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQwJUI1JTIwJUQwJUJDJUQxJThCJTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUIwJUQwJUJCJUQwJUI4JTIwJUQwJUIyJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQwJUI1JTIwKEFkbWluc19VbmxpbSUyQyUyMFVzZXJzX1NwZWVkXzY0KSUyMCVEMCVCOCUyMCVEMCVCMiVEMCVCQSVEMCVCQiVEMSU4RSVEMSU4NyVEMCVCMCVEMCVCNSVEMCVCQyUyMCVEMCVCMiUyMCVEMCVCRCVEMCVCOCVEMSU4NSUyMCVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCQiVEMCVCNSVEMCVCOS4lMjAlRDAlQTElRDAlQkUlRDElODUlRDElODAlRDAlQjAlRDAlQkQlRDElOEYlRDAlQjUlRDAlQkMlMjAlRDAlQkElRDAlQkUlRDAlQkQlRDElODQlRDAlQjglRDAlQjMuJTIwJUQwJUI4JUMyJUEwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQwJUI1JUQwJUJDJTIwU3F1aWQuJTIwJUQwJTlGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQxJTgzLg==

Мы рассмотрели основные варианты ограничения скорости интернета с использованием delay_class 1,2 и 3 класса. Их вполне достаточно чтобы реализовывать различные задачи по ограничению скорости.

Обзор использования 4 и 5 delay_class классов.

JUQwJTlEJUQwJUI1JUQwJUJDJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUJCJUQwJUJFJUQwJUIyJTIwJUQwJUJFJUQwJUIxJTIwJUQxJThEJUQxJTgyJUQwJUI4JUQxJTg1JTIwJUQwJUI0JUQwJUIyJUQxJTgzJUQxJTg1JTIwJUQwJUJBJUQwJUJCJUQwJUIwJUQxJTgxJUQxJTgxJUQwJUIwJUQxJTg1Lg==

4 класс идентичный классу 3, только в нем есть возможность задавать размер буфера и скорости не только по хосту, но и по пользователю (если используется NCSA-авторизация. Как настроить ее описано здесь). Хочу заметить что если пользователь авторизуется на нескольких ПК под одним логином, то скорость ему поделится на равные части от выделенной на каждого пользователя (прим. на пользователя выделено 16000/16000, пользователь заходит в интернет под своим логином на двух разных ПК, то скорость будет у него на каждом из ПК равна 8000/8000).

Использование пула выглядит так:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Кол-во пулов
delay_pools 1
# Первый пул и его класс
delay_class 1 4
# Доступ к пулу 1 пользователей из списка прокси-авторизации internet_users
delay_access 1 allow internet_users
# Остальных не пропускаем в этот пул
delay_access 1 deny all
# Не ограничиваем размер буфера и скорость на локальную сеть и на хост, а пользователю ограничиваем на 512 кБ/с
delay_parameters 1 -1/-1 -1/-1 -1/-1 64000/64000
# Кол-во пулов delay_pools 1 # Первый пул и его класс delay_class 1 4 # Доступ к пулу 1 пользователей из списка прокси-авторизации internet_users delay_access 1 allow internet_users # Остальных не пропускаем в этот пул delay_access 1 deny all # Не ограничиваем размер буфера и скорость на локальную сеть и на хост, а пользователю ограничиваем на 512 кБ/с delay_parameters 1 -1/-1 -1/-1 -1/-1 64000/64000
# Кол-во пулов
delay_pools 1
# Первый пул и его класс
delay_class 1 4
# Доступ к пулу 1 пользователей из списка прокси-авторизации internet_users
delay_access 1 allow internet_users
# Остальных не пропускаем в этот пул
delay_access 1 deny all
# Не ограничиваем размер буфера и скорость на локальную сеть и на хост, а пользователю ограничиваем на 512 кБ/с
delay_parameters 1 -1/-1 -1/-1 -1/-1 64000/64000

Сохраняем конфиг. и перезапускаем Squid. Проверяем работу.

NSUyMCVEMCVCQSVEMCVCQiVEMCVCMCVEMSU4MSVEMSU4MSVDMiVBMCVEMCVCRiVEMCVCRSVEMCVCQSVEMCVCMCUyMCVEMSU4NyVEMSU4MiVEMCVCRSUyMCVEMCVCRCVEMCVCNSUyMCVEMCVCNCVEMCVCRSVEMSU4OCVEMCVCQiVEMCVCOCUyMCVEMSU4MCVEMCVCMCVEMCVCNyVEMCVCRSVEMCVCMSVEMSU4MCVEMCVCMCVEMSU4MiVEMSU4QyVEMSU4MSVEMSU4RiUyMCVEMCVCMiUyMCVEMCVCRCVEMCVCNSVEMCVCQyVFMiU4MCVBNiUyMCVGMCU5RiU5OSU4MQ==

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

1 комментариев
  • будет ли корректно работать такая конструкция ?)

    http_access allow localnet
    http_access allow localhost
    http_access deny all

    acl shef src «/etc/squid/user»
    acl dostupurl url_regex «/etc/squid/dostup_url»
    acl bad_url url_regex «/etc/squid/bad_url»
    acl bad_slovo url_regex «/etc/squid/bad_slovo»
    acl multimedia url_regex -i «/etc/squid/ban_suite»
    #acl multimedia2 rep_mime_type -i ^video
    acl media1 urlpath_regex -i mp3$ flv$ avi$ mp4$ swf$
    acl rabota url_regex -i .permstat.gks.ru* .consultant.ru*

    http_access deny media1 !shef
    http_access deny bad_slovo
    http_access deny bad_url !shef

    delay_pools 1
    delay_class 1 2
    delay_parameters 1 20000/12000 9000/9000

    #delay_access 1 allow multimedia2 !shef !dostupurl

    delay_access 1 allow multimedia !shef
    delay_access 1 allow multimedia !rabota
    delay_access 1 allow multimedia !dostupurl

    delay_access 1 deny all

    желание порезать скорость не по хостам а по контенту)
    и как squid отработает логику если писать так #delay_access 1 allow multimedia2 !shef !dostupurl