![成功登录后,如何重置 iptable 的错误尝试登录计数器?](https://linux22.com/image/623636/%E6%88%90%E5%8A%9F%E7%99%BB%E5%BD%95%E5%90%8E%EF%BC%8C%E5%A6%82%E4%BD%95%E9%87%8D%E7%BD%AE%20iptable%20%E7%9A%84%E9%94%99%E8%AF%AF%E5%B0%9D%E8%AF%95%E7%99%BB%E5%BD%95%E8%AE%A1%E6%95%B0%E5%99%A8%EF%BC%9F.png)
为了防御 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 次!
答案1
是的,有点。你可以用一些东西喜欢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