sshguard, fail2ban, bruteblock и другие подобные утилиты не подходят, слишком долго работают.
Скрипт лучше, но правило работает быстрее.
Защиты портов уже используется.
Код: Выделить всё
#!/bin/bash
IPT=/sbin/iptables
# Max connection in seconds
SECONDS=100
# Max connections per IP
BLOCKCOUNT=10
# ....
# ..
# default action can be DROP or REJECT
DACTION="DROP"
$IPT -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
$IPT -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds ${SECONDS} --hitcount ${BLOCKCOUNT} -j ${DACTION}
ТУТ РАЗРЕШИТЬ ПРОХОЖДЕНИЕ ПО 80 ПОРТУ!!!
Нет, просто везде есть свои + и минусы. Что касаемо вашей памятки - количество соединений с адреса на единицу времени устанавливать можно и в IPFW как 2 пальца. Просто он не будет дропать полностью если кто-то это значение превысил, он просто подрежет лишнее. А по поводу убогости - холивар батенька! Попробуйте-ка в iptables зарезать скорость без использования внешнего шейпера.Phantom писал(а):Неужели ipfw настолько убогий?
Код: Выделить всё
/sbin/iptables -N bad_adress
/sbin/iptables -A bad_adress -p TCP -i $INET_IFACE -s 192.168.2.43 --dport 80 -m limit --limit 2/second --limit-burst 2 -j ACCEPT
/sbin/iptables -A bad_adress -p TCP -i $INET_IFACE -s 192.168.2.43 --dport 80 -j DROP
Хорошо гуглим, да? Я поэкспериментировал:В общем и целом у человека работает.