The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Защита от DoS атак в Linux

09.04.2003 13:38

Иван Песин перевел статью, которая повествует о том как минимизировать причиненные убытки и оперативно отреагировать на DoS атаки (отказ в обслуживании, Denial of Service) в Linux.

Кратко:


"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
Ограничение скорость исходящих 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 1000 tc 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:100


  1. Главная ссылка к новости (http://gazette.linux.ru.net/ru...)
Лицензия: CC-BY
Короткая ссылка: https://opennet.ru/2321-dos
Ключевые слова: dos, leased_line, icmp, ethernet, ipchains, pri, qos, proccess, blocking, bandwidth, speed, load_average, mtu, locale, queue, linux, limit, flood, interface, subnet, ip, filter, tcp
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (3) RSS
  • 1, Аноним (1), 14:16, 10/02/2007 [ответить]  
  • +/
    как делать в линуксе os fingerprint? например что-бы добавлять очки при анализе спама в exim?
     
  • 2, lamer (??), 01:20, 11/02/2007 [ответить]  
  • +/
    Комментариев мало, особенно в вызовах tc - чего-то делаем, а нафига - понятно только в первом конфиге.В случае с icmp - просто набор не особо прокомментированных команд.Незачот.Хотелось бы видеть внятное описание "почему параметры - такие-то" а не просто какую-то черную магию с tc - типа смотрите дети, если закуачить вот такую длинную волшебную строчку все будет заи**сь :).Желающим отослать к RTFM намекаю что там не описан процесс выбора параметров и принятия решений - вот это и хотелось бы видеть.В первом конфиге это худо-бежно откоменчено но во втором - темный лес и черная магия.
     
     
  • 3, God (?), 15:47, 11/02/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен. Посты для чайников нужно подробно комментировать. А знатоки и по man'ам разберутся :)

    Кстати, это решение основано на rate-limit входящего трафика. Зачем использовать iproute2, если rate-limit есть и в iptables?

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру