コンテンツへスキップ

referer spamとcountry block

 閲覧者がそのサイトにどのような経由でアクセスしてきたかを知ることはweb siteの構築、運用に様々なヒントを与えてくれます。しかし管理者がリファラを辿るときにスパムを仕込む輩がいます。今のところ実害はないですが、当サイトの/var/log/ngnix/error.logにreferrer: “http://site.ru”が頻回に出現していました。前回のwww.tsuru.netはロシアから攻撃を受けて陥落しましたが、再度ロシアつながりなのでトラブルは回避したいところです。

rewriteモジュールで対応するかcountry blockのプラグインで対応するか検討した結果、プラグインiQ Block Countryをインストールしてみました。やりすぎ感がありますがリファラースパムがまたロシアからだったのでしばらく使ってみることにしました。

なおrewriteモジュールの設定に関してはwordpress.orgのサポートフォーラムで、

<IfModule mod_rewrite.c>
RewriteCond %{HTTP_REFERER} site\.ru [NC]
RewriteRule ^(.*)$ – [L,R=403]
</IfModule>

が紹介されていました。これを.htaccessに追加する方法ですが今回は適応しません。

 まず国別のIPアドレス表を取得します。https://www.maxmind.com/en/account/loginでログインしてdownload databasesへ進みます。バイナリのGeoLite2-Country.mmdbを取得します。次に面倒ですがGeoLite2-Country.mmdbをwp-content/uploadsにアップロードしました。もちろん有料サービスではGeoIP2データベースを自動更新するプログラムを提供してくれますがお試しなのでGeoIP2liteの手動アップロードです。毎日更新されるのでその都度の対応は面倒ですね。アップデートは思いついたときに、、。

 次にプラグインからの新規インストールです。今回はロシア、中国、北朝鮮、韓国を指定しました。しばらく放置しているとiQ Block CountryのLoggingタブに拒否した国別IPアドレスが表示されます。ロシアと中国が多いですね。ボットのようです。ナショナリズムとは全く関連はありません。スパムを避けたいのでしばらく使ってみます。48時間程度経過をみていたらaccess.logとerror.logにsite.ruの痕跡がなくなったので、一応効果ありと判断しました。

 さらに追試として日本以外をすべてブロックしてみるとシンガポール、米国、フランスなどゾロゾロ出てきました。ほとんどが/wp-admin、/wp-loginや/xmlrpc.phpを見に来ていました。99%悪意のあるアクセスといえるでしょう。もちろんIPアドレスからすべての国別判定ができるわけではありません。逆引きできないアドレス、プロクシ経由などありますので断定できませんがどの国であっても見に行く場所、方法で悪意があるかどうか区別できると思います。国別判定よりほかのアルゴリズムで対処できればいいのですが。

 WordPress自体がデフォルトで管理者名を晒す設定になっているので、ブログなど公開した場合はより強固な認証システムが求められるってことでしょう。嫌な世の中になったものです。当初は自動翻訳プラグインを入れて海外の閲覧者と交流できるかなと淡い期待を持ちましたがこれはかなわぬ夢でした。

referer spamから始まったセキュリティー対策でしたが、country blockを導入した結果、予想以上に悪意のあるアクセスが確認されました。しばらくはdomestic onlyで続けてみようと思います。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です