Bug 11669

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

Description From 2007-05-01 16:52:37
Не плохо было бы иметь вот такие правила в 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 From 2007-05-02 05:02:49 -------
Разве что в %doc, поскольку первый же service iptables save
всю эту ручную работу сотрёт.
------- Comment #2 From 2007-05-02 09:20:04 -------
да, что-то я про save не подумал. В угоду читабельности я его не использую 
практически... Тогда, действительно, в %doc. Хотя и в iptables можно тоже - 
сотрёт, так сотрёт...
------- Comment #3 From 2007-05-02 09:27:53 -------
hiddenman, предлагаю добавить это в fw etcnet по умолчанию.
------- Comment #4 From 2007-05-02 17:13:33 -------
Ну я давно подумываю над некими стандартными примерами/профилями или чем-то
подобным. То же самое и для QoS не мешало бы иметь. Осталось только придумать,
как это все реализовать, ну и сами примеры написать.
------- Comment #5 From 2012-09-11 12:21:41 -------
В связи с насевшим на меня "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. в вики прошу не посылать - я сейчас сам пойду, гляну, есть ли это там...