Bug 11669

Summary: добавить правила для лимитирования количества попыток по ssh в sysconfig/iptables
Product: Sisyphus Reporter: Sergey Y. Afonin <asy>
Component: iptablesAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P2 CC: glebfm, hiddenman, ildar, imz, ldv, mike, placeholder, vvk
Version: unstable   
Hardware: all   
OS: Linux   

Description Sergey Y. Afonin 2007-05-01 16:52:37 MSD
Не плохо было бы иметь вот такие правила в sysconfig/iptables:

-A INPUT -p TCP --syn --dport 22 -m recent --name ssh_rate_limit --set
-A INPUT -p TCP --syn --dport 22 -m recent --name ssh_rate_limit --update
--seconds 60 --hitcount 4 -j LOG
-A INPUT -p TCP --syn --dport 22 -m recent --name ssh_rate_limit --update
--seconds 60 --hitcount 4 -j DROP

чтобы только раскомментировать осталось... А то и сразу. В случае, если ssh
снаружи открыт (а оно бывает, всё-таки), позволяет трафик сэкономить. А если
логин не по ключу, то и вероятность подбора уменьшает.
Comment 1 Dmitry V. Levin 2007-05-02 05:02:49 MSD
Разве что в %doc, поскольку первый же service iptables save
всю эту ручную работу сотрёт.
Comment 2 Sergey Y. Afonin 2007-05-02 09:20:04 MSD
да, что-то я про save не подумал. В угоду читабельности я его не использую 
практически... Тогда, действительно, в %doc. Хотя и в iptables можно тоже - 
сотрёт, так сотрёт...
Comment 3 Vladimir V. Kamarzin 2007-05-02 09:27:53 MSD
hiddenman, предлагаю добавить это в fw etcnet по умолчанию.
Comment 4 Andrew Kornilov 2007-05-02 17:13:33 MSD
Ну я давно подумываю над некими стандартными примерами/профилями или чем-то
подобным. То же самое и для QoS не мешало бы иметь. Осталось только придумать,
как это все реализовать, ну и сами примеры написать.
Comment 5 ildar 2012-09-11 12:21:41 MSK
В связи с насевшим на меня "DNS amplification attack" пришлось добавить и такое:

# before RELATED,ESTABLISHED
$IPTABLES -I INPUT 1 -i wan0 -p udp --dport 53 -m recent --set --name DNSQF --rsource
$IPTABLES -I INPUT 2 -i wan0 -p udp --dport 53 -m recent --update --seconds 1 --hitcount 9 --name DNSQF --rsource -j DROP
$IPTABLES -I INPUT 3 -i wan0 -p udp --dport 53 -m recent --set --name DNSHF --rsource
$IPTABLES -I INPUT 4 -i wan0 -p udp --dport 53 -m recent --update --seconds 7 --hitcount 20 --name DNSHF --rsource -j DROP
# after RELATED,ESTABLISHED
$IPTABLES -I INPUT 6 -i wan0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSHQF --rsource
$IPTABLES -I INPUT 7 -i wan0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1 --hitcount 1 --name SSHQF --rsource -j DROP
$IPTABLES -I INPUT 8 -i wan0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSHHF --rsource
$IPTABLES -I INPUT 9 -i wan0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name SSHHF --rsource -j DROP

В частном порядке готов ответить, если что не понятно.

P.S. в вики прошу не посылать - я сейчас сам пойду, гляну, есть ли это там...