Пример приведен для спутникового канала в 8 мбит/с с провайдерским ограничением 1000 пакетов в секнуду
h4. Задача
Торрент у одного пользователя забивает весь канал, за счет выкачивания лимита, который установил вышестоящий провайдер
h4. Решение
*Внимание\!* Указанные действия необходимо производить когда сервер находится в режиме [удаленного помощника|http://asrdoc.ideco-software.ru/pages/viewpage.action?pageId=2687433].
Сначала нужно разрешить редактирование файла /usr/local/ics/bin/ics_tune.sh
{code}
mount -o rw,remount /mnt/ro_disc
chattr -i /usr/local/ics/bin/ics_tune.sh
{code}
Дальше нужно отредактировать файл /usr/local/ics/bin/ics_tune.sh
и привести его к подобному виду
{code}
#!/bin/bash
if [ "$1" = "firewall.sh" ]; then
#Добавляем новую цепочку
iptables -t mangle -N short_packet
#Ограничиваем трафик по количеству пакетов в секунду
iptables -t mangle -I short_packet -m limit --limit 300/sec -j RETURN
iptables -t mangle -A short_packet -j DROP
#Перенаправляем в нее маленькие пакеты
iptables -t mangle -I PREROUTING 12 -p udp --dport 1024: -m length --length 0:300 -j short_packet
iptables -t mangle -I PREROUTING 12 -p tcp --dport 1024: -m length --length 0:300 -j short_packet
iptables -t mangle -I PREROUTING 12 -p udp --sport 1024: -m length --length 0:300 -j short_packet
iptables -t mangle -I PREROUTING 12 -p tcp --sport 1024: -m length --length 0:300 -j short_packet
fi
true
{code}
*300* \- размер пакета в кбайтах
*300/sec* \- количество пакетов в секунду
Для применения изменений выполните команду (*Перезагрузка не потреуется*):
{code}
/usr/local/ics/bin/ics_tune.sh firewall.sh
{code}
Если файл не пустой, то старое содержимое оставить нетронутым и добавить в любое место файла основной условный блок из примера выше.
h4. Задача
Торрент у одного пользователя забивает весь канал, за счет выкачивания лимита, который установил вышестоящий провайдер
h4. Решение
*Внимание\!* Указанные действия необходимо производить когда сервер находится в режиме [удаленного помощника|http://asrdoc.ideco-software.ru/pages/viewpage.action?pageId=2687433].
Сначала нужно разрешить редактирование файла /usr/local/ics/bin/ics_tune.sh
{code}
mount -o rw,remount /mnt/ro_disc
chattr -i /usr/local/ics/bin/ics_tune.sh
{code}
Дальше нужно отредактировать файл /usr/local/ics/bin/ics_tune.sh
и привести его к подобному виду
{code}
#!/bin/bash
if [ "$1" = "firewall.sh" ]; then
#Добавляем новую цепочку
iptables -t mangle -N short_packet
#Ограничиваем трафик по количеству пакетов в секунду
iptables -t mangle -I short_packet -m limit --limit 300/sec -j RETURN
iptables -t mangle -A short_packet -j DROP
#Перенаправляем в нее маленькие пакеты
iptables -t mangle -I PREROUTING 12 -p udp --dport 1024: -m length --length 0:300 -j short_packet
iptables -t mangle -I PREROUTING 12 -p tcp --dport 1024: -m length --length 0:300 -j short_packet
iptables -t mangle -I PREROUTING 12 -p udp --sport 1024: -m length --length 0:300 -j short_packet
iptables -t mangle -I PREROUTING 12 -p tcp --sport 1024: -m length --length 0:300 -j short_packet
fi
true
{code}
*300* \- размер пакета в кбайтах
*300/sec* \- количество пакетов в секунду
Для применения изменений выполните команду (*Перезагрузка не потреуется*):
{code}
/usr/local/ics/bin/ics_tune.sh firewall.sh
{code}
Если файл не пустой, то старое содержимое оставить нетронутым и добавить в любое место файла основной условный блок из примера выше.