diary/Kojima

・wiki spam check

Pythonの練習がてら、httpdのaccess_logから短時間にPOSTを繰り返すIPアドレスを抽出するような スクリプトを書いてみた。

check_spam.py という名前でこのページに添付しておくので、興味ある人はご覧ください。

やってることは単純で、前にチェックした時間(last_checked)を手元に記録しておいて、 access_logに記録されたその時間以後の履歴について、 1)4回以上POSTして、 2)POST間の平均間隔が45秒以下 のアドレスをspam元と判断している。

一応、ログファイルの位置等はPlamo-4.73に合わせているけど、 それらは先頭部分で定義しているので、Plamo以外の環境でも使えるのではないかと。

# httpdのログ形式はcombined format決め打ちだが

一応、添付のスクリプトではコメントアウトしているけど、 spam元のアドレスをconfファイルに書き出して、自動的にbanリストを更新するような機能も付けてみた。

手元では、このスクリプトをcrontabで6時間ごとに実行しているけど、毎回3〜4個ずつbanされるアドレスが増えていく。。



添付ファイル: filecheck_spam.py 87件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:42