どこで質問しようかとスレ一覧眺めてたら、ちょうどこんなスレが出来てた。
借ります。


swatch + iptables で /var/log/secureを監視して不正(と見える)ログインを遮断するよう設定しました。
不正ログイン感知 → 該当アドレスを iptables で DROP → atで30分後に解除という一連のアクションを設定しています。

リアルタイムでの遮断動作自体はうまく行っているのですが、
なぜか不定期的に /var/log/secure に記録されている不正と見なされたアドレスが全部「再度」遮断されてしまいます。
つまり、「新規に」加わったログだけでなく、ログファイル上に残っている「すべての行」が何度もチェックされてしまい、
既に30分以上経過して遮断解除されていたアドレスが、その度に遮断されてしまうのです。
その結果「設定を間違っていて引っかかったユーザが、設定を修正した後も時々ログインできなくなる」
という困った状況になってしまっています。
(現在は手作業で /var/log/secure から該当する行を削除することで対応してます)

swatchのバージョンは 3.1.1、
起動オプションは --config-file /etc/swatch.conf --tail-file /var/log/secure --use-cpan-file-tail --daemon です。
(実際には他に諸々のディレクトリ指定のオプションもありますが割愛)
/etc/swatch.confには

watchfor    /proftpd.*\[(\d+\.\d+\.\d+\.\d+)\].*Maximum login attempts/
    exec "/sbin/iptables -A INPUT -s $1 -j DROP"
    exec "echo '/sbin/iptables -D INPUT -s $1 -j DROP' | at now+30min"

といった感じで13個程パターンが登録されています。

ぐぐってみましたが、類似した話は見つけられませんでした。
原因 & 対策が分かる方がいらっしゃったら、よろしくご教示ください。