Иван Песин перевел статью, которая повествует о том как минимизировать причиненные убытки и оперативно отреагировать на DoS атаки (отказ в обслуживании, Denial of Service) в Linux.
Кратко:<hr>
"SYN-flood" - ограничение скорости поступающих пакетов с установленным флагом syn.
Организовывается очередь с ограниченной скоростью:#!/bin/sh
# Входящий интерфейс
DEV=eth2# маркируем все входящие SYN-пакеты
# на интерфейсе $DEV значением 1
ipchains -A input -i $DEV -p tcp -y -j MARK --set-mark 1# устанавливаем дисциплину обработки очереди входящих пакетов
tc qdisc add dev $DEV handle ffff: ingress# Длина пакетов с установленным флагом SYN
# равна 40 байтам (320 бит)
# потому три SYN-пакета равны 960 битам (или скорости 1кбит)
# Теперь ограничим скорость до 3 пакетов в секундуtc filter add dev $DEV parent ffff: protocol ip \
prio 50 handle 1 fw police rate 1kbit burst 40 \
mtu 9k drop flowid :1<hr>
Ограничение скорость исходящих ICMP пакетов до приемлемой для нормальной работы и неприемлемой для атак:
# Внешний интерфейс
EXT_IF=eth2# Локальный интерфейс
INT_IF=eth0
# Наша локальная сетьLAN="10.1.1.0/24"
# блокируем все входящие пакеты на локальном интерфейсе
# с адресом источника не из локальной сетиipchains -A input -i $INT_IF -s $LAN -j ACCEPT
ipchains -A input -i $INT_IF -j DENY -l
# назначаем дисциплину обработки очереди
tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt 1000tc class add dev eth0 parent 1:0 classid 1:10 cbq \
bandwidth 10Mbit rate 10Mbit allot 1514 prio 5 \
maxburst 20 avpkt 1000# выделяем класс для ICMP пакетов
tc class add dev eth0 parent 1:10 classid 10:100 \
cbq bandwidth 10Mbit rate 100Kbit allot 1514 \
weight 5 prio 5 maxburst 20 avpkt 250 bounded# заворачиваем все ICMP пакеты в выделенный класс
tc filter add dev eth0 parent 10:0 protocol ip \
prio 100 u32 match ip protocol 1 0xFF flowid 10:100URL: http://gazette.linux.ru.net/rus/articles/lnx_dos.html
Новость: http://www.opennet.me/opennews/art.shtml?num=2321
как делать в линуксе os fingerprint? например что-бы добавлять очки при анализе спама в exim?
Комментариев мало, особенно в вызовах tc - чего-то делаем, а нафига - понятно только в первом конфиге.В случае с icmp - просто набор не особо прокомментированных команд.Незачот.Хотелось бы видеть внятное описание "почему параметры - такие-то" а не просто какую-то черную магию с tc - типа смотрите дети, если закуачить вот такую длинную волшебную строчку все будет заи**сь :).Желающим отослать к RTFM намекаю что там не описан процесс выбора параметров и принятия решений - вот это и хотелось бы видеть.В первом конфиге это худо-бежно откоменчено но во втором - темный лес и черная магия.
Согласен. Посты для чайников нужно подробно комментировать. А знатоки и по man'ам разберутся :)Кстати, это решение основано на rate-limit входящего трафика. Зачем использовать iproute2, если rate-limit есть и в iptables?