Как ограничить количество подключений, которые пользователь может использовать?
У меня есть процесс greedyprocess
который всегда запускается как пользователь greedyuser
который использует слишком много соединений NAT. Они не используют слишком большую полосу пропускания, вместо этого они забивают таблицу NAT маршрутизатора. Можно ли ограничить пользователя, скажем, 1000 открытыми соединениями? Я бы предпочел какое-то ограничение ядра на количество сокетов, которые greedyuser
может быть открытым.
Сервер работает под управлением Debian Jessie (стабильная ветка на момент написания). Нет, я не могу обойти NAT, поскольку я не контролирую маршрутизатор.
Ограничение на количество открытых файлов пользователя составляет 166 384, и я предпочитаю не уменьшать его, если это возможно. Я хочу ограничить количество открытых сокетов, но не все открытые файлы.
1 ответ
iptables
с connlimit
а также owner
расширения могут помочь. Нечто подобное (не проверено):
iptables -A OUTPUT -m owner --uid-owner greedyuser -m connlimit --connlimit-above 1000 -j REJECT