Я пытался установить квоты трафика для пользователей на общем сервере, и я считаю [с моими ограниченными знаниями], что iptables --quota и порты, выбранные для каждого пользователя [--dport], - это способ сделать это ...
iptables -A OUTPUT --dport 1,2,3,4 ... --quota 123412341234 -j ПРИНЯТЬ
iptables -A OUTPUT --dport 1,2,3,4 ... -j DROP
Я думаю, что что-то подобное сработает, чтобы ограничить трафик [и сбрасывать каждый месяц], но только для выходящего трафика.
ОС - это debian squeeze
Спасибо.
Если вы хотите применить квоту к обе входящие и исходящие, вы бы сделали это так:
-A OUTPUT -p tcp --sport $PORTNUM_1 -g filter_quota_1
-A OUTPUT -p tcp --sport $PORTNUM_2 -g filter_quota_2
<other OUTPUT rules for other users>
-A INPUT -p tcp --dport $PORTNUM_1 -g filter_quota_1
-A INPUT -p tcp --dport $PORTNUM_2 -g filter_quota_2
<other INPUT rules>
-A filter_quota_1 -m quota --quota $QUOTA_1 -g chain_where_quota_not_reached
-A filter_quota_1 -g chain_where_quota_is_reached
-A filter_quota_2 -m quota --quota $QUOTA_2 -g chain_where_quota_not_reached
-A filter_quota_2 -g chain_where_quota_is_reached
<other filter_quota_N chains>
Если вы хотите сбросить квоту №N, сделайте iptables -F filter_quota_N
а затем повторно заполнить filter_quota_N
.
Поскольку правила в основном похожи, вам действительно следует рассмотреть возможность автоматизации с помощью bash (или другого языка сценариев по вашему выбору).