Спасибо! Но времени у меня не так уж и много. Это не коммерческая разработка, но она реально работает, и те кто хотят ее использовать, не вникая в тонкости, могут легко это сделать.
Почему-то никто из уважаемых знатоков не выложил даже такого косо-кривой, но реально работающей программы.Что бы не заканчивать на такой минорной ноте, внесу небольшое дополнение.
В цепочку форварда iptables приведенные в статье рекомендации включаются так:
:limiting - [0:0]
:FORWARD_IN - [0:0]
#Личные цепочки
:T10 - [0:0]
:T20 - [0:0]
# и т.д.
# Автоматически уменьшать размер передаваемого пакета для ADSL
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o ppp0 -j FORWARD_IN
-A FORWARD -i ppp0 -j FORWARD_OUT
# Эта цепочка для блокировки пользователей автоматическими скриптами
# Но можно и руками
-A FORWARD_IN -j limiting
# В этих цепочках ограничиваем каждого пользователя отдельно
# Кабинет
-A FORWARD_IN -s 192.168.100.20 -j T20
# Максимум 1 одновременное соединение c одного IP eth0 для smtp
#-A T20 -p tcp -m connlimit -i eth0 --dport smtp -j DROP --syn --connlimit-above 1
# Максимум 105 одновременных соединений c одного IP eth0 (ЛВС)
#-A T20 -p tcp -m connlimit -i eth0 -j DROP --syn --connlimit-above 105
# Защита от пинга смерти
-A T20 -p icmp -m limit --icmp-type echo-request --limit 10/s -j ACCEPT
-A T20 -p icmp --icmp-type echo-request -j DROP
-A T20 -j ACCEPT
# И так далее...