トップに戻る(ホームページに移動)


NAME

BlockCIDR - アドレス範囲に対してパケットフィルタを行うライブラリ


SYNOPSIS

 use BlockCIDR;
 $block_cidr = BlockCIDR->new($config_file);
 $block_cidr->check($remote_addr);


DESCRIPTION

BlockCIDR は、指定されたIPアドレスを含むアドレス範囲を whois で調べ、そのアドレス範囲からの接続を拒否するようパケットフィルタ(Linuxのiptablesなど)にルールを追加します。 また後日そのルールを再利用できるよう、ファイルへもルールを書き出します。

Webサイト(掲示板など)へのspam投稿目的のアクセスや、spam送信目的のSMTP接続を検出した場合、それ以降の接続をTCPレベルで拒否することを目的としています。


CONSTRUCTOR

new ( config_file )

新しい BlockCIDR オブジェクトを作成します。 config_file は設定ファイルを指定します。


METHODS

check ( IP-ADDRESS )

IPアドレス IP-ADDRESS が設定による判断の結果制限対象であった場合、パケットフィルタのルール挿入および書き出しを行います。


CONFIGURATION

設定は設定ファイルで行います。 設定ファイルの書式は「keyword = value」という形式です。 value 内では $keyword という形式で他の設定値を利用することも可能です。

whois = ( module | /path/to/whois )

perl モジュール Net::Whois::Raw を使用する場合は「module」とします。 外部の whois プログラムを使用する場合は、whois プログラムのフルパスを指定します。

script = /path/to/script

パケットフィルタに拒否ルールを追加するスクリプトのフルパスを指定します。

file = /path/to/file

拒否ルールを記録するファイルのフルパスを指定します。

lock = /path/to/lock

ロックファイルのフルパスを指定します。

protocol = ( tcp | udp )

拒否するプロトコルのタイプをtcpかudpで指定します。

port = port-number

拒否する送信先ポート番号を指定します。

script_format = format of script executing

script で指定したスクリプトを実行する書式を指定します。 ここに _IPADDRESS_ という文字列を書くと接続元の IPアドレスに置換されます。

file_format = format of firewall rule

file で指定したファイルに書き出されるルールの書式を指定します。 ここに _IPADDRESS_ という文字列を書くと接続元の IPアドレスに置換されます。

white_country = [ Country [ Country ... ] ]

制限の対象外にする国コードを空白区切りで列挙します。 (例: JP US) なお接続元がプライベートIPアドレスなどで国コードが取得できない場合は、制限の対象にはしません。

white_domain = [ Domain [ Domain ... ] ]

制限の対象外にするドメインを空白区切りで列挙します。 (例: google.com googlebot.com yahoo.com yahoo.co.jp)

default_netmask = number-of-netmask

ブロックするアドレス範囲の上限を設定します。 whois の情報から得たアドレス範囲が広すぎて不必要にブロックしてしまうのを防ぐために設定します。 24ぐらいが適当だと思われます。

country_netmask = [ Country/netmask [ Country/netmask ... ] ]

ブロックするアドレス範囲の上限を国単位で設定します。 書式は「国コード/ネットマスク」を空白区切りで列挙します。 (例: JP/32 US/24) この設定は default_netmask よりも優先されます。

/32を指定すると、そのアドレスのみが制限対象になります。 国内からのアクセスに対しては JP/32 と指定してそのアドレスのみを制限した方が無難かと思われます。

black_country = [ Country [ Country ... ] ]

default_netmask による制限を適用しない国コードを空白区切りで列挙します。 (例: CN KR RU)

spam目的のアクセスしかこないと判断した国を列挙してください。


DEPENDENCIES

以下のモジュールが必要です。 OS のパッケージがある場合はそれを利用しても構いません。 パッケージがない場合は CPAN からインストールしてください。


AUTHOR

HIRAMOTO Kouji (http://flatray.com/)


BUGS

あったら報告していただけると嬉しいです。


SEE ALSO

http://flatray.com/


COPYRIGHT

著作権は主張します。

Copyright 2007, HIRAMOTO Kouji. All Rights Reserved.

などは自由に行っていただいて構いませんし、特に連絡もいりません。 (でも連絡をいただけると多分喜びます :-)

しかし、丸々パクって自分の著作であると主張したりというような 恥ずかしい行為だけはご遠慮ください。


NO WARRANTY

このプログラムは無保証です。 これを使用した如何なる結果についても当方では保証しませんし、責任を持ちません。