Підрахунок з'єднань за допомогою Squid maxconn
Застосовуйте maxconn як умову кількості з'єднань на джерело, а не як кількість пристроїв чи автентифікованих користувачів.
maxconn 5 — це не ліцензія на п'ять пристроїв для вашого проксі. Це умова кількості з'єднань, прив'язана до адреси джерела клієнта.
Невеликий фрагмент правила виглядає так:
acl over_connection_limit maxconn 5
http_access deny over_connection_limit
Документований збіг у Squid — «більше» за задане значення. Правило відмови використовує цю умову; саме лише оголошення ACL нічого не відхиляє. Поставте його перед ширшими правилами, які вже дозволяли б запити, які воно має обмежувати.
Збережіть звичайну політику авторизації навколо цього фрагмента. Це не повна конфігурація доступу. ACL також залежить від увімкненої клієнтської бази даних Squid; перевірте client_db, перш ніж чекати, що це працюватиме.
Один пристрій може відкрити багато з'єднань. Кілька пристроїв за NAT можуть виглядати як одна адреса джерела. Одна спільна машина може обслуговувати кількох користувачів, а тихий пристрій може не мати жодного з'єднання в момент підрахунку. Жодне з цих співвідношень не є один-до-одного.
Якщо справжня вимога — це обмеження на іменовані облікові записи, зареєстровані пристрої або активні сеанси, явно визначте цю ідентичність та її життєвий цикл. Поріг сокетів на джерело може захистити ємність, але його число слід описувати як з'єднання, а не як людей чи пристрої.