我添加了以下防火墙规则,以防御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
login尝试成功后是否可以重置计数器? 尽pipe这个解决scheme工作正常,我也被限制为每小时3次成功login!
是的,有点。 您可以使用类似 fail2ban的处理日志并从/proc/net/xt_recent/DEFAULT删除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