2005年03月22日

DSBLでアクセス拒否

open proxyらしきものを自前で判定するのも効率が悪いので、DSBL(Distributed Sender Blackhole List)を利用してknown open proxy経由のアクセスを弾く。

My Quiet Life >> referrer-b-goneを参考に設定。
ダウンロードしたmod_access_rbl.tar.gzを展開して
% apxs -c mod_access_rbl.c
% sudo apxs -i -n access_module mod_access_rbl.so
/etc/httpd/httpd.confのmod_access.soに関係する行を変更
#LoadModule access_module libexec/httpd/mod_access.so
LoadModule access_module libexec/httpd/mod_access_rbl.so
#AddModule mod_access.c
AddModule mod_access_rbl.c
そして以下の行をしかるべきところに追加
deny via list.dsbl.org
きびしく設定するといくつかのプロバイダからアクセスできなくなってしまうようだ。mod_access_rblのページも自宅ADSLからはアクセスできない。おそらく同じプロバイダにぶら下がっているspammerか踏み台ホストがordb.orgやspamhaus.org、もしくはdsblのunconfirmedに登録されているのだろう。
なので、とりあえずhttpd.confにはdeny via list.dsbl.orgとだけ記述した。

カスタムログが403エラーで汚れるのが鬱陶しいので、環境変数をセットするようにmod_access_rbl.cをちょっと変更し、

if (ret == FORBIDDEN && (ap_satisfies(r) != SATISFY_ANY || !ap_some_auth_required(r))) { ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r, "client denied by server configuration: %s", r->filename); ap_table_setn(r->subprocess_env, "X_STATUS", "403"); } else { ap_table_setn(r->subprocess_env, "X_STATUS", "200"); }
その環境変数をhttpd.conf内のSetEnvIfから参照して、特定のログに403エラーのアクセスは記録されないようにした。 Posted by jiro at 2005年03月22日 19:19 | トラックバック (0)
コメント
コメントする









名前、アドレスを登録しますか?