Просмотр Исходного

Пример приведен для спутникового канала в 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}

Если файл не пустой, то старое содержимое оставить нетронутым и добавить в любое место файла основной условный блок из примера выше.