![ログインが成功した後に、iptable の誤ったログイン試行カウンターをリセットするにはどうすればよいですか?](https://rvso.com/image/623636/%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%8C%E6%88%90%E5%8A%9F%E3%81%97%E3%81%9F%E5%BE%8C%E3%81%AB%E3%80%81iptable%20%E3%81%AE%E8%AA%A4%E3%81%A3%E3%81%9F%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E8%A9%A6%E8%A1%8C%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%83%BC%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.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
ログイン試行が成功した後にそのカウンターをリセットすることは可能ですか? この解決策は問題なく機能しますが、1 時間あたりのログイン成功回数も 3 回に制限されています。
答え1
はい、そうですね。のようにログを処理し、IP アドレスを削除する fail2ban /proc/net/xt_recent/DEFAULT
:
次のような(分単位の?)cron ジョブが最初の近似値として適しています。
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