Top > Documents > Blocking SPAM

I18N版(rev.923以降)に実装されています。

この機能を有効化する前に、必ず、このドキュメントを一読下さい。この機能を有効化することで、文書などの書き込み時に、秒単位で処理が遅延します。ご注意下さい。

Blocking SPAM

SPAM対策機能について、以下に説明します。 Splog(TrackBack SPAM)の対応や、 Referer SPAM、各種書き込みにおけるSPAM対策ができるようになります。 また、利用するブロックリスト(:config/spam/BlockList)は、各自で変更可能な仕組みとなっています ので、SPAM検知の精度が悪いような場合、簡単に変更することも可能です。 また、管理者が利用する端末が SPAM扱いされて書き込み制限されないような対策 (除外リスト(ホワイトリスト)の登録)も可能となっています。

前提環境

このSPAM対策の仕組みを利用するためには、PukiWiki Plus! が稼動しているサーバから、 DNS(53番ポート)の利用が可能である必要があります。 インターネットへProxyサーバ経由でアクセスしているような環境の場合、考慮が必要です。

今すぐ、SPAM機能を有効にしたい

SPAMに困っているので、難しい解説は後にして、まずは有効にしたい。という場合は、

pukiwiki.ini.php
以下の 0 の箇所を、機能を有効にするために 1 にして下さい。
/////////////////////////////////////////////////
// Blocking SPAM
$use_spam_check = array(
        'page_view'             => 0,
        'page_remote_addr'      => 0,
        'page_contents'         => 0,
        'page_write_proxy'      => 0,
        'trackback'             => 0,
        'referer'               => 0,
);
もし、SPAMだと誤判定されたら
コンテンツ管理者以上の場合は、強制的にSPAM判定が無効になります*1。 それでは困るという場合は、このドキュメントを最後までお読み下さい。

SPAM判定の仕組み

SPAMを判定する仕組みは色々ありますが、PukiWiki Plus! I18N で採用している方法は、 DNSサーバを利用してSPAMの判定をおこなっています。 DNSサーバを提供しているゾーンに、判定したいホスト名をサブドメインとして、 名前解決をさせてIPアドレスが取得できた場合(127.0.0.2などが引けた場合)には、 SPAMと判定する仕組みです。 したがって、とあるゾーンの登録されている情報の内容や精度によって、判定される内容が異なってきます。

また、ブロックリストには、大きく分けて2種類の使い方があります。 1つは、IPアドレスベースのブロックリスト(IPBL)です。 この方法では、IPアドレスを直接指定して名前解決するため、端末単位での判定となります。 もう1つは、ドメインベースのブロックリスト(DNSBL)です。 この方法では、ゾーン単位で正規化(a.b.co.jp と www.b.co.jp は b.co.jpとして1つ)して判定 するため組織単位での判定になります。

日本固有のリスト
  • niku.2ch.net(IPBL)
    2chで利用しているブロックリストです。この場合だと、2chと同じ制限が入ることになります。
  • rbl.bulkfeeds.jp(DNSBL)
    bulkfeeds.jp で試験的にサービスしているブロックリストです。

機能の有効化

プロの手口まで考慮すると、DUL(ダイアルアップユーザリスト)のような対策まで行う必要があります。 とは言え、Referer も Trackback も、送信してきた端末の規制(IPアドレスでのブロック)まで 行うことはせず、送ってきた内容を検査するまでとしています。

pukiwiki.ini.php
以下の 0 の箇所を、有効にする場合には、1 にして下さい。
/////////////////////////////////////////////////
// Blocking SPAM
$use_spam_check = array(
        'page_view'             => 0,
        'page_remote_addr'      => 0,
        'page_contents'         => 0,
        'page_write_proxy'      => 0,
        'trackback'             => 0,
        'referer'               => 0,
);
設定内容BLの種類備考
page_view閲覧規制管理者指定による
page_remote_addr書き込み端末規制IPBL
page_contents書き込み内容規制DNSBL
page_write_proxyProxy経由での書き込み規制rev1608から有効
trackbackTrackBack (splog)DNSBL
refererReferer SPAMDNSBL
役割
コンテンツ管理者以上の場合は、page_remote_addrとpage_contentsの制限が自動で回避されます。 役割についての詳細は、Documents/Roleを参照下さい。
Referer
Refererデータは、そもそも統計的利用のためにあり、信頼できるデータとは限らないという性質上、 検査する意味があるのかということもあります。設定は、各自にお任せします。
TrackBack
昨今の TrackBack Ping を見ると、splog だらけなので、対策する必要があると思いますが、 今回の対応を組み込んでも回避は厳しいと思われます。 つまり、コンテンツとして関連性・派生性がないようなページかどうかという内容による判断が必要 となり、自動では行えません。ただし、SPAM的な用語をスコア式でカウントした場合には、ある程度の splogを除外することができるかもしれませんが、今回の機能には実装されていません。

定義ファイル

定義ファイル用途
:config/spam/BlockListドメインベースおよび、IPアドレスベースのブロックリスト
:config/spam/BlackList管理者が強制的に適用する場合に定義(ホスト、IP、User-Agent)
:config/spam/BANList
:config/spam/WhiteList/skip_domain既知なドメインの登録
:config/spam/WhiteList/praivate_networkドメインベースおよび、IPアドレスベースの除外リスト

各定義ファイルの書式

:config/spam/BlockList

利用するブロックリストを定義します。Use の項目を 1 とした Zone しか利用しません。 IPアドレスベースのブロックリスト(IPBL)と、ドメインベースのブロックリスト(DNSBL)を分けて登録 します。ブロックリスト(BL)を各自で追加できるようにしています。

Use を増やせば増やすほど、処理時間がかかることを理解した上で、利用する Zone を決定して下さい。 秒単位での処理と認識して下さい。

使用項目
  • Zone
  • Use

    のみです。他の Listing と WebSite は参考までの情報に過ぎません。

定義するラベル
  • IP
    IPBL のリストを定義します。
  • HOST
    DNSBL のリストを定義します。
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
*IP
 
|Zone                 |Use|Listing|WebSite|h
|sbl-xbl.spamhaus.org |  1|Spam Source & Open Proxy|http://www.spamhaus.org/|
|bl.spamcop.net       |  1|Content Based|http://www.spamcop.net/|
|opm.blitzed.org      |  1|Open Proxy|http://opm.blitzed.org/|
|list.dsbl.org        |  0|open SMTP relays|http://dsbl.org/usage|
|bsb.empty.us         |  0|Blog Spam|http://bsb.empty.us/|
|bsb.spamlookup.net   |  0|Blog Spam|http://bradchoate.com/projects/spamlookup|
|niku.2ch.net         |  1|BBQ あらしお断りシステム|http://bbq.uso800.net/code.html|
|relays.ordb.org      |  0|Open Relay|http://www.ordb.org/faq/#usage_dns|
 
*HOST
 
|Zone                 |Use|Listing|WebSite|h
|rbl.bulkfeeds.jp     |  1||http://bulkfeeds.net/app/blacklist|
|psbl.surriel.com     |  0|Spamtrap Driven or Automated|http://psbl.surriel.com/|
|spamtrap.surriel.com |  1|Spamtrap Driven or Automated|http://psbl.surriel.com/|
|sbl-xbl.spamhaus.org |  1|Spam Source & Open Proxy|http://www.spamhaus.org/|
|sbl.spamhaus.org     |  0|Spam Source|http://www.spamhaus.org/|
|xbl.spamhaus.org     |  0|Open Proxy|http://www.spamhaus.org/|
|multi.surbl.org      |  1|Content Based|http://www.surbl.org/lists.html|
|bsb.empty.us         |  0|Blog Spam|http://bsb.empty.us/|
|bsb.spamlookup.net   |  0|Blog Spam|http://bradchoate.com/projects/spamlookup|
|cbl.abuseat.org      |  0|Open Proxy|http://cbl.abuseat.org/|
|spam.wytnij.to       |  0|Local and Personal|http://spam.wytnij.to/|
|ppbl.beat.st         |  0|Local and Personal||
|blocked.asgardnet.org|  0|Local and Personal||

:config/spam/BlackList

管理者が強制的に適用したい場合に登録します(rev1456から有効)。 ホスト名、IPアドレス、User-Agentによる定義が可能です。

稼動するタイミング

$use_spam_checkが page_remote_addr の書き込み端末規制の場合に適用されます。
定義するラベル
  • IP
    強制的に、書き込み禁止したい端末のIPアドレスを定義します。 帯域指定または、範囲指定が可能です。 帯域指定の場合は、開始のみ指定して下さい。 サブネットマスク省略時は、32 となります。 範囲指定の場合は、開始IPアドレスおよび終了IPアドレスを指定して下さい。 ex. 192.168.1.0/24
    開始終了備考
    192.168.1.1
    192.168.101.0/24
    192.168.1.0192.168.255.255
  • HOST
    ホスト名で登録します。後方一致となります。
    FQDN(後方一致)
    pukiwiki.example.com
    仕組み的には、IPアドレスからの逆引きしたホスト名でチェックするため、Aリソースレコードが複数登録されているようなFQDNに対してのチェックはできません。逆引きできるホスト名のみでのチェックとなります。
  • UA
    User-Agent(ブラウザの種類)を登録します。
    Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.2) Gecko/20070301 Firefox/2.0.0.0
    詐称できるブラウザもありますが、そうではない機器もありますので、そのような場合のみに効き目があります。

:config/spam/BANList

前述の :config/spam/BlackList と書式は同様です。

稼動するタイミング

$use_spam_checkが page_view が有効の場合、閲覧そのものを規制します。 真っ白な画面を戻すのみとなります。

:config/spam/WhiteList/skip_domain

ここにドメインを登録しておくと、ブロックリストの参照を行うことなく、常にホワイトリストと判断します。 ブロックリストを参照すると、DNSの問い合わせが発生しますので処理時間がかかります。 ここに既知なドメインを追加することで、DNSでの問い合わせを回避します。

登録するドメイン
トップレベルドメイン(TLD) で定義されるドメイン+1レベルとなります。 例えば、www.example.co.jp なら、TLD では、co.jp となりますので、example.co.jp を 登録することになります。
定義するラベル
  • LIST
    問い合わせを回避させたいドメインを定義します。
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
*LIST [#pf70daff]
 
**goo.ne.jp [#b84f4ca4]
--TRUE
**google.com [#k84806e3]
--TRUE
**googlebot.com [#c220a3d1]
--TRUE
**msn.com [#z2969a4c]
--TRUE
**yahoo.co.jp [#g8d97d61]
--TRUE
**yahoo.com [#kfff7206]
--TRUE
TLDのレベル
レベルトップレベルドメイン(TLD)採用されるドメイン(例)備考
1com,net,org,edu,gov,mil,int,biz,info,name,pro,museum,aero,coopX.bizTLD
2arpaX.e164.arpaInfrastructure TLD (e164.arpa, ip6.arpa, in-addr.arpa)
2X.or.jpccTLD(国単位のドメイン)

:config/spam/WhiteList/praivate_network

定義するラベル
  • IP
    グローバルなIPアドレスで、特定のセグメントを常時許可したい場合に定義して下さい。 プライベートアドレスは、全てホワイトリストへ自動で登録されます。 また、Documents/Logging における nolog_ip として、ロギングしないIPアドレスを 登録しているホストも、ホワイトリストへ自動で登録されます。
  • HOST
    常時許可したい特定ホスト名を定義します。 部分一致となります。
  • DYNAMIC_HOST
    IPアドレスベースでのブロックリストのチェックにおいて、動的なIPアドレスなために 登録できないような場合、ここに定義したホスト名(FQDN)からIPアドレスを求めて、 ホワイトリストに追加します。
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
*IP
グローバルIPで、特定のセグメントを常時許可したい場合に、定義して下さい。
プライベートアドレスは、全てホワイトリストに自動で登録されます。
また、[[Documents/Logging]] で、nolog_ip として、ロギングしないIPアドレスを登録している
ホストも自動でホワイトリスト扱いします。
 
|IP/SubNetMask|h
|192.168.16.32/26|
|192.168.0.32|
 
*HOST
常時許可したい特定ホスト名を定義します。
部分一致となります。
 
|Host Name|h
|pukiwiki.cafelounge.net|
 
*DYNAMIC_HOST
IPアドレスベースでのブロックリストのチェックにおいて、動的なIPアドレスなために
登録できないような場合、ここに定義したホスト名(FQDN)からIPアドレスを求めて、
ホワイトリストに追加します。
 
|Dynamic Host Name|h
|example.or.jp|

*1 ただし、:config/spam/BlackList および、:config/spam/BANList が定義されている場合には、コンテンツ管理者であっても規制されます。

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Wed, 12 Dec 2007 02:43:52 JST (1003d)