Пример взят из документации к iproute, написанной Алексеем и адаптирован для совместной работы с netfilter. Если этот пример заинтересует вас, измените числовые значения на наиболее подходящие для вашей системы.
Этот сценарий был написан для защиты отдельного хоста, а не сети. Учитывайте это обстоятельство.
Для его работы желательно иметь самую последнюю версию iproute2.
#! /bin/sh -x # # демонстрация возможностей по управлению входящим (ingress) трафиком # здесь приводится пример ограничения пропускной способности для входящих SYN-пакетов # Может оказаться полезным для защиты от TCP-SYN атак. # #пути к различным утилитам; #укажите правильные значения. # TC=/sbin/tc IP=/sbin/ip IPTABLES=/sbin/iptables INDEV=eth2 # # пометить все SYN-пакеты, пришедшие через $INDEV, числом 1 ############################################################ $iptables -A PREROUTING -i $INDEV -t mangle -p tcp --syn \ -j MARK --set-mark 1 ############################################################ # # установить ingress qdisc на входящий интерфейс ############################################################ $TC qdisc add dev $INDEV handle ffff: ingress ############################################################ # # # SYN-пакет имеет размер 40 байт (320 бит), отсюда -- три пакета # имеют размер 960 бит (примерно 1 Кбит); ограничим скорость поступления # 3-мя пакетами в секунду ( точнее -- 1 Кбит/сек ) ############################################################ $TC filter add dev $INDEV parent ffff: protocol ip prio 50 handle 1 fw \ police rate 1kbit burst 40 mtu 9k drop flowid :1 ############################################################ # echo "---- qdisc parameters Ingress ----------" $TC qdisc ls dev $INDEV echo "---- Class parameters Ingress ----------" $TC class ls dev $INDEV echo "---- filter parameters Ingress ----------" $TC filter ls dev $INDEV parent ffff: #Удаление ingress qdisc #$TC qdisc del $INDEV ingress
Назад | В начало документа | Вперед |
Решебник. | К началу раздела | Ограничение пропускной способности для ICMP-пакетов, с целью предотвращения dDoS атак. |