The OpenNET Project / Index page

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



"Интересное поведение IPTables и hashlimit"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (Linux iptables, ipchains / Linux)
Изначальное сообщение [ Отслеживать ]

"Интересное поведение IPTables и hashlimit"  +/
Сообщение от WeSTManemail (ok), 19-Мрт-19, 19:10 
Всем привет, форумчане. Вообщем есть правила:
-P INPUT DROP
-A INPUT -i -lo -j ACCEPT
-A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A INPUT -p udp -m multiport --dports 27015:27020 -m state --state NEW -m hashlimit --hashlimit-upto 104/sec --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-name CSS -j ACCEPT

Использую такой метод защиты от DoS атак UDP протокола.
Приложение передает не более 104 пакета в секунду.
По сути защита не должна пускать тех, кто превышает 104 пакета.
Когда я атакую свой выделенный сервер, оно так и происходит...
Например я посылаю 150 000 пакетов...
Но через некоторое время почему-то я попадаю в состояние ESTABLISHED и большое количество пакетов попадает в приложение. Возможно я что-то напутал в правилах?
И если я попадаю в ESTABLISHED, есть возможность отфильтровать пакеты? Спасибо.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Интересное поведение IPTables и hashlimit"  +/
Сообщение от ыфективный манагер (?), 19-Мрт-19, 19:27 
> И если я попадаю в ESTABLISHED, есть возможность отфильтровать пакеты? Спасибо.

тебе виднее куда ты там попадаешь
советую попасть сначала в гугл и основательно почитать базовую документацию

но если пакет уже попал в ACCEPT/DROP - то остальные правила после него уже необрабатываются,
это основная аксиома работы с iptables , советую отойти от консоли пока его не поймёшь

твои правила в том виде что они есть лишены смысла

> -A INPUT -p udp -m multiport --dports 27015:27020 -m state --state NEW -m hashlimit --hashlimit-upto 104/sec --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-name CSS -j ACCEPT

убери -m state NEW и поставь правило выше -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

так оно будет работать как ты хочешь


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Интересное поведение IPTables и hashlimit"  +/
Сообщение от WeSTMan (ok), 19-Мрт-19, 19:48 
>[оверквотинг удален]
> советую попасть сначала в гугл и основательно почитать базовую документацию
> но если пакет уже попал в ACCEPT/DROP - то остальные правила после
> него уже необрабатываются,
> это основная аксиома работы с iptables , советую отойти от консоли пока
> его не поймёшь
> твои правила в том виде что они есть лишены смысла
>> -A INPUT -p udp -m multiport --dports 27015:27020 -m state --state NEW -m hashlimit --hashlimit-upto 104/sec --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-name CSS -j ACCEPT
> убери -m state NEW и поставь правило выше -A INPUT -m conntrack
> --ctstate ESTABLISHED -j ACCEPT
> так оно будет работать как ты хочешь

К сожалению... нет, опять я попадаю в ESTABLISHED и не отсеиваю пакет, который превысил мои правила
alex@server:~# iptables -L -v -n
Chain INPUT (policy DROP 34506 packets, 1274K bytes)
pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  -lo    *       0.0.0.0/0            0.0.0.0/0
2159 86280 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 27015:27020 limit: up to 104/sec burst 1 mode srcip
203K 7511K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate ESTABLISHED

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 224 packets, 36759 bytes)
pkts bytes target     prot opt in     out     source               destination

Как видно, iptables заблокировал 34506 пакета и пропустил 203000+ пакета

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Интересное поведение IPTables и hashlimit"  +/
Сообщение от WeSTManemail (ok), 19-Мрт-19, 22:11 
Решение:
-A INPUT DROP
-A INPUT -i -lo -j ACCEPT //Разрешаем входящие соединения для локальной сети
-A INPUT -p udp -m multiport --dports 27015:27020 -m hashlimit --hashlimit-upto 104/sec --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-name CSS -j ACCEPT //Если пакетов меньше 104 в секунду, пропускаем их
-A INPUT -p udp -m multiport --dports 27015:27020 -j DROP //Если больше, то дропаем
-A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT //Разрешаем установленные соединения
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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