Я добавил следующие правила брандмауэра для защиты от атак ssh.
iptables -N LOGNDROP
iptables -A LOGNDROP -j LOG --log-prefix "SSH attack! " --log-level 7
iptables -A LOGNDROP -j DROP
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --set
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 3600 --hitcount 4 -j LOGNDROP
Можно ли сбросить этот счетчик после успешной попытки входа в систему? Хотя это решение работает нормально, я тоже ограничен 3 успешными входами в час!
Да вроде как. Вы можете использовать что-нибудь лайк fail2ban, который обрабатывает журналы и удаляет IP-адреса из /proc/net/xt_recent/DEFAULT
:
Что-то вроде этого (минутного?) Cronjob было бы хорошим первым приближением:
for ip in $(sed -ne 's/^.*sshd.*Accepted.*from \([^ ]*\).*$/\1/p' /var/log/auth.log | sort -u); do echo -$ip > /proc/net/xt_recent/DEFAULT; done