Top | BBSantispam

MiniBBS spam 対策改造

最新版: version 1.0 (2006/12/18) 改定履歴
ネットサーフレスキュー[Web裏技] 様の MiniBBS (簡易BBS) に、自作の 掲示板用アンチスパムライブラリ BBSantispam を組み込みました。
追加機能
フォーム取得時と投稿時のホストの比較 | 英字のみの投稿禁止 | 逆引きできないホストからの投稿禁止 | 逆引きで得たホスト名が正引きできない場合の投稿禁止 | ホスト名・IPアドレスのホワイトリスト | コメント中のURL数の制限 | フォーム表示から投稿までの最少時間・最大時間の設定 | spam 投稿のログ作成 | BBQによる公開プロキシからの投稿拒否 | GeoIPによる国単位でのアクセス拒否
インストール・設定
必要なもの | 手順
うまく動作しない時は
著作権とか
無保証です
ダウンロード

追加機能

フォーム取得時と投稿時のホストの比較

フォーム取得時と投稿時のホストを比較し、異なる場合は投稿を拒否します。

ボットネットを利用していると思われる海外からの spam 投稿で、

という動作をするものがありましたので、これを拒否します。

英字のみの投稿禁止

英字のみの投稿を禁止します。

(主に海外(英語圏)からの)英語の spam 投稿を防ぎます。 日本人を対象とした掲示板を運用するのならば問題ないでしょう。

逆引きできないホストからの投稿禁止

逆引き(IPアドレス→ホスト名への変換)ができないホストからの投稿を禁止します。

海外の ISP には逆引きを設定していない所が多いです。 それを利用し、逆引きできないホストからの投稿を拒否することにより、海外からの spam 投稿を防ぎます。

国内でもたまに逆引きできないホストがあったりしますが、それは後述の「IPアドレスのホワイトリスト」を利用してください。

この機能は「ホスト名やIPアドレスでのアクセス制限」と似ていますが、特に登録しなくても効果がある反面、逆引きできてしまうISPには効果がありません。 組み合わせて使うといいでしょう。

逆引きで得たホスト名が正引きできない場合の投稿禁止

逆引きは設定されているものの、逆引きで得られたホスト名に対する正引きがちゃんと設定されていないホストからの投稿を禁止します。 (ただし逆引きと正引きの一致までは検査しません)

海外の ISP には適当な逆引き情報を設定している所もあったりします。 それを利用し、海外からの spam 投稿を防ぎます。

ホスト名・IPアドレスのホワイトリスト

ここで登録したホストはIPアドレスやホスト名をベースにする制限が緩和されます。 (ワイルドカード対応、半角スペースで区切って複数列挙可能)

例えばある組織 example.jp からのアクセスが gw1.example.jp 〜 gw10.example.jp という複数のゲートウェイに分散されているとします。 また example.com という組織も同じようになっているとします。 これらからの投稿を許可するには

white_host=*.example.jp *.example.com
と指定します。

通常は gw1.example.jp からのアクセスと gw2.example.jp からのアクセスには異なるCGI引数が使用されますが、 上記の設定をすると *.example.jp にマッチするホストからのアクセスには同じCGI引数が使用されるようになります。

この機能は逆引きを詐称されると回避されてしまいますが、そこまでやる spammer はほとんどいないかと思います。

コメント中のURL数の制限

コメント中にURLが大量に記載されている投稿を禁止します。

フォーム表示から投稿までの最少・最大時間の設定

フォームを表示してから一定時間経たないと投稿を受け付けないようにします。 またフォームを表示してから一定時間以上経った場合に投稿を受け付けないようにします。

前者はフォームを取得した直後に投稿を行うタイプの spam 投稿ロボットを、 後者は予めフォームを取得し後で投稿を行うタイプの spam 投稿ロボットからの投稿を防ぎます。

BBQによる公開プロキシからの投稿拒否

2ちゃんねるの BBQ を利用して、公開プロキシとなっているホストから投稿を拒否します。 公開プロキシを利用したspam投稿や荒らし投稿に効果があると思われます。

当サイトにきている不審なアクセスをピックアップしてBBQチェックにかけてみると、 思いのほか高確率でヒットしたので、効果はあると思われます。

GeoIPによる国単位でのアクセス拒否

GeoIP を利用して国単位でアクセスを拒否します。 spamの投稿元が特定の国に集中していることがありますので、この機能で該当国ごと拒否すると効果的です。

この機能は標準でコメントアウトされています。 利用するには必要なものおよび手順を参照してください。

spam 投稿のログ作成

spam と判断した投稿のログを作成します。

spam と判断した投稿を、独立したログファイルに保存することができます。 形式はタブ区切りのテキストファイルで、項目は順番に次の通りです。

このログを使用して、先回りして禁止ワードを設定したりアクセス制限を行ったりという対策が取れるかと思います。
ログファイル閲覧用のサンプルCGIはBBSantispam.pmのアーカイブに含まれていますが、そのCGIはアクセス制限などは一切考慮されていませんので、ご利用の際は などを行ってください。

インストール・設定

必要なもの

オリジナルの MiniBBS が動作する環境に加えて、 perl の Digest::MD5 および Time::Local ライブラリが必要となります。 比較的新しい perl ならどちらも標準で提供されていると思います。

また GeoIP を利用するためには、GeoIP 自身と、perl の Geo::IP ライブラリが必要となります。 これはおそらく標準では提供されていないと思いますので、利用できるかどうかはサーバの管理者にご相談ください。

手順

  1. まずは同じバージョンのオリジナルの MiniBBS (10.31)をインストールし、動作することを確認してください。 インストール方法はMiniBBSのページをご参照ください。

  2. 当サイトからアーカイブをダウンロードし、展開してください。

  3. アンチスパム機能について BBSantispam-config.cgi で設定します。 具体的な設定方法についてはBBSantispam.pmマニュアルのCONFIGURATIONの章をご参照ください。

  4. GeoIPの機能を利用する場合は、BBSantispam.pm 先頭の「use Geo::IP;」の部分と、メソッド is_black_geoip のコメントを外してください。

  5. Webサーバに転送します。
    挿し替える必要があるファイル
    minibbs.cgi (minibbs.cgi 先頭部分での設定は改めて行ってください)
    新規に転送する必要があるファイル
    BBSantispam.pm BBSantispam-config.cgi
    必要に応じて転送するファイル
    spamlog.cgi (spamのログを取る場合)

  6. BBSantispamのログファイル作成のためにロック機能を利用する場合は、 ロック用ディレクトリを作成してください。 BBSantispam-config.cgiの最後の方(spamlog_lockfile)で定義されており、 標準のディレクトリ名はlockです。

  7. 掲示板が正常に動作することと、BBSantispamによる制限が動作していること (英字だけの投稿や、URLをたくさん列挙した投稿などが拒否されること) を確認してみてください。

うまく動作しない時は

オリジナルの MiniBBS で動作確認をしていない。
→まずはオリジナルの MiniBBS (10.31)が動作することを確認してください。
perl のライブラリ(Digest::MD5など)がない。
→ISPやレンタルサーバを利用している場合はそちらに確認してください。 自宅サーバ等の場合は自分が利用しているOSのコミュニティに相談してください。
エラーを確認する。
ISPのレンタルスペースやレンタルサーバの場合はエラーメッセージを確認できなかったり、Webサーバのログを見れない場合があるかと思います。 その場合はこのprinterror.cgiを利用してエラーメッセージを表示させ、解決を図ってください。

著作権とか

BBSantispam.pm その他 BBSantispam 関連ファイル
著作権は主張します。
Copyright 2006, HIRAMOTO Kouji. All Rights Reserved.

コードやアルゴリズムなどの流用は自由に行っていただいて構いませんし、 特に連絡もいりません。 しかし、丸々パクって自分の著作であると主張したりというような 恥ずかしい行為だけはご遠慮ください。

それ以外の MiniBBS オリジナルの部分
MiniBBSに準じます。 MiniBBSの権利などについては「スクリプト利用規定」をご参照ください。

無保証です

ダウンロード

ダウンロードの前に 「スクリプト利用規定」 および 「スクリプトの再配布について」 をご一読、ご理解いただいた上で、ご利用ください。

改定履歴

MiniBBS タイプ1 version 10.31 spam対策改造版 (version 1.0) (2006/12/18)