Top.Mail.Ru
Ответы

Помошь в защите некоторых портов в CentOS с помошью iptables

Кто сидит на линуксе, помогите. Мне нужно на сервере открытый порт 2201 например, защитить от DoS атак с помошью iptables. К примеру досер начинает коннект с программы и когда к примеру за 2-5 секунд с одного айпи приходит более 30 -40 пакетов то нужно заблокировать этот айпи адрес на 10 минут. Как написать такое правило? Iptables версии 1.3.5

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
11лет

ipset create rate_exceed hash:ip timeout 600 # 10min

iptables -N rate_check
iptables -A rate_check -m hashlimit --hashlimit 15/s --hashlimit-burst 30 --hashlimit-mode srcip --hashlimit-name rate_check --hashlimit-htable-expire 360000 -j ACCEPT # 15 пакетов в сек, макс 30 за первую секунду, подстраивается эмпирически.
iptables -A rate_check -j SET --exist --add-set rate_exceed src
iptables -A rate_check -j DROP
iptables -A INPUT -m set --match-set rate_exceed src -j DROP
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i wan -p tcp --dport 2201 -j rate_check

как то так, возможно где то ошибся, лень проверять, подрихтуешь под себя.
Ну и разумеется модули ядра соотв должны присутствовать - ipset, conntrack, hashlimit - в каком модуле - не помню.