#! /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