Я использую сервер Linux, доступный широкому кругу пользователей, и (из-за некоторых политик, установленных моим вышестоящим интернет-провайдером) мне нужно ограничить общий объем данных, который пользователь может передать, до некоторого заданного количества. Ящик с Linux - это шлюз к моему провайдеру. Есть ли способ сделать это?
У меня есть рабочий iptables
установка уже установлена на коробке, если это помогает, и у меня есть некоторый опыт настройки таких вещей, как HTB. Проблема с настройками, которые я делал в прошлом, заключается в том, что они ограничивают пользователей определенным битрейтом (например, 20 кбит / с), а не общей суммой передачи за более длительный период времени (например, 100 МБ / день).
@WerkkreW направил меня на верный путь. Решение, которое я выберу, - использовать squid и его функцию delay_pools.
Основная концепция заключается в настройке пулов задержки для каждого хоста (класс 3) в squid.conf
, а затем установите для каждого из них максимальную пропускную способность, которую я хочу разрешить для каждого пользователя в день. Затем установите скорость заполнения, равную максимальной пропускной способности, деленной на один день времени, чтобы каждый пул задержки полностью заполнялся за один день.
Наконец, используя iptables
Я буду прозрачно перенаправлять входящие запросы на порт 80 из моей локальной сети в squid, а не использовать DNAT напрямую, чтобы пользователи внутренней сети подвергались ограничениям пропускной способности.
Еще раз спасибо, WerkkreW, за то, что указали мне правильное направление.
Я считаю, что вы можете делать все, что хотите, используя iptables и, что более уместно, Кальмар (delay-cache?), но это может быть сложно настроить и управлять. Тем не менее, это определенно возможно, с помощью squid ограничить передачу для каждого пользователя. Я никогда не делал этого лично, поэтому я не могу дать никаких советов относительно особенностей его настройки.
Есть и другие инструменты, на которые вы могли бы обратить внимание, но большинство из них выполняют множество других функций фильтрации и очень полнофункциональны, вы можете счесть их немного раздутыми, если все, что вы хотите сделать, это ограничить передачу.