ようこそゲストさん

Magical Diary, beta version

[Apache] Apache 1.3 + mod_access_rbl

2007/07/16 23:17 HIRATA Yasuyuki

メールサーバでは接続元の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>


#  非公開コメント   

  • TB-URL(確認後に公開)  http://diary.asuka.net/03/tb/
© 2007 HIRATA Yasuyuki <yasu@asuka.net>, all rights reserved