▼ [Apache] Apache 1.3 + mod_access_rbl
2007/07/16 23:17
メールサーバでは接続元のIPアドレスを元に接続を拒否するため、DNSBL (またはRBL) と呼ばれるブラックリストの仕組みが利用されている。
あるIPアドレスがDNSBLに載っているかどうかの調査は、以下の文字列を連結したホスト名の存在をチェックすることで可能となる。
- DNSの逆引きの場合と同様にIPアドレスの順番を入れ替えたもの
- DNSBL のドメイン名
たとえば dnsbl.example.com でサービスする DNSBL でIPアドレス 192.168.1.2 がリストされているかを調べるには、 2.1.168.192.dnsbl.example.com というホスト名の存在を確認すればよい。
なお、このホストに対応するIPアドレスはループバックアドレスである 127.0.0.1 が利用されることが多いが、各ビットの on/off によって意味を持たせているDNSBLも存在する。また、TXT RR には接続拒否時に出力するためのメッセージ (たとえば、"South Korea rejected" など) が設定されていることも多い。
これらのDNSBLをHTTPでも利用するための Apache 1.3 用モジュールが mod_access_rbl として存在したが、現在配布サイトが消滅しているため、入手不可となっている。(Apache 2.x 用は同様のものが複数存在するようだ。)
幸いにも 2.x 用のモジュールを 1.3 へ移植したものを発見したので、今回はこれを利用することにする: Peak Xoops - mod_access_rbl
# cd /usr/ports/www/apache13-modssl/work/apache_1.3.37/src/modules/standard # patch < /path/to/mod_access.patch # make mod_access.so # cp mod_access.so /usr/local/libexec/apache/ # /usr/local/etc/rc.d/apache.sh restart
まだ試してはいないが、httpd.conf に以下の設定をすればこれを活用することが出来るはず。(dnsbl.example.com は実在しないので適当なものに置き換える必要がある。)
<Files *.cgi>
<Limit POST>
Order allow,deny
Allow from all
Deny via dnsbl.example.com
</Limit>
</Files>
▼ コメント(0件)
- TB-URL(確認後に公開) http://diary.asuka.net/03/tb/
