ファイアウォールアクセス禁止リスト

ファイアウォールのアクセス禁止リストにipsetを使う方法がある。
公開サーバを立てると、まぁスゴイ量の不正アクセスにさらされる。
色々あるが、こんなのがある。
詐欺メール送信のためのsmtpアカウントログインアタック。
wrbminのためのアカウントログインアタック。
一番マズイのは、webmin。
その次がsmtpアカウントだろうか。
不正アクセスはログに記録されて、logwatchが不正アクセスしてきたipの情報を指定したメールに送ってくれる。
まぁこのメールに書かれた不正アクセスの量がスゴイ。
この内容に従って、ipsetにアクセス禁止のipを登録していけば、少しずつだが、不正アタックに対する耐性が高くなっていく。
だからといって、メールを見ながらチマチマ登録なんてのは現実的な対応ではない。
メールボディを解析して、自動登録した方が入力間違いもないし、時間もかからない。
という訳で、pythonで自動登録プログラムを作成することに。
centos6のサーバの時は、スクリプトでこの処理を実装していたが、logwatchのバージョンが変わって、移行後のubuntuサーバでは役に立たない。
pop受信でのトリガ処理は迷惑メールフィルタの時に作った。
今回のアクセス拒否リスト登録の起動トリガもlogwatchのメール受信とするか、cronで処理するか。
大体のコードは書いたが、実際のメールの中身は同じipからの不正アクセスが多く記録されている。
ipアドレスを切り出したら、すぐに登録実行では無駄な要求が増えてしまう。
不正ipをsetに登録して重複しないようにしてからipsetに登録する方が良いので改造予定。
いずれにせよログ出力が減るのは嬉しい。