VPNやtorからのアクセスをブロックする「Proxy & VPN Blocker」

情報化社会が進んできている現在、様々なサービスがWeb上で展開されるようになりました。

しかし、それに伴ってサイバー犯罪も深刻化してきています。ECサイトなどはもちろん、ブログのようなところであってもなるべく対策を行い、被害に合わないようにしたいところです。

そこで今回は、簡単にVPNやtorネットワークからのアクセスを拒否できるWordPress用プラグイン「Proxy & VPN Blocker」をご紹介します。

攻撃をしかけようとしているアクセスは、どこからアクセスしたのかを秘匿するため、VPNやtorネットワークなどをよく利用しています。ログイン画面やお問い合わせフォームなど攻撃対象になりやすい場所は、これらのアクセスを拒否することで一定のセキュリティが確保できます。

広告

Proxy & VPN Blocker の概要

「WordPress.org」からダウンロードできる「Proxy & VPN Blocker」

ダウンロードリンク

※WordPressの「プラグインを追加」からもインストールできます。

主な機能

  • VPN、torネットワーク、プロキシサーバーなどからのアクセスをブロックできます。
  • APIキーの登録なしで「毎日100クエリ」、無料のAPIキー(proxycheck.io)を登録すると「毎日1,000クエリ」まで利用できます。
  • 指定した「投稿」「固定ページ」を保護対象にできます。全ページを保護対象にすることも可能ですが原則非推奨。
  • アクセスが拒否された際、特定のページへ転送するか、メッセージだけを表示するページを表示するか選択できます。
  • 国別でアクセスを許可/拒否することができます。
  • IPアドレス、IPアドレス範囲でホワイトリスト/ブラックリストを作れます。
Proxy & VPN Blocker の設定画面(一部)

VPN や torネットワークとは

今回はプラグインのご紹介なのでここは簡単に。

VPN【Virtual Private Network】は、自身の端末とサーバーの間に仮想的なトンネルを作り、プライベートなネットワークのように扱う技術のことです。今までは拠点間のネットワークを繋ぐ役目としてよく使われていましたが、一緒に強化な暗号化が行われることから、最近はWi-Fiスポットに対してのセキュリティ対策としても注目されています。

このVPNですが、アクセス先のサーバーとの間に「VPNサーバー」を一旦経由することから、相手のサーバーからはアクセスしてきた本人ではなく「VPNサーバー」からのアクセスのように見えます。このため、アクセス元を秘匿できる作用もあります。

torネットワークは、相手のサーバーにアクセスする前に、世界中に存在する「オニオンルーター」をランダムに複数経由することで、徹底的にアクセスしてきた端末を秘匿するためのネットワークです。専用のtorブラウザーを利用することで、相手のサーバーからはどこからアクセスしてきたのか全く分からなくなります。

これらはアクセス元を秘匿する効果が一緒にありますので、どうしても悪用する攻撃がでてきます。これらのアクセスを拒否しても特に事業へ影響がないようであれば、基本的に拒否してしまうことで大幅に不正アクセスを減らすことができます。サーバーの負荷も低く抑えられます。

インストール方法

「WordPress.org」からダウンロードもできますが、WordPressの「プラグインを追加」からインストールした方が楽かと思います。

「プラグインを追加」で「Proxy & VPN Blocker」と検索すればヒットします。

左のメニューから「プラグイン」→「新規追加」と選択、「Proxy & VPN Blocker」と検索すればヒットします。インストールを開始し、有効化してください。

proxycheck.io の無料APIを取得

このプラグインは「proxycheck.io」というサービスと連携することで、「VPN」や「プロキシ」を経由してきたアクセスなのかを判定しています。

何もしなくとも動作はしてくれますが、APIを取得を取得しないと「毎日100クエリ」までしか利用(拒否)してくれず、あまり実用的ではありません。(ある程度の規模のサイトであれば100クエリ以上は普通にアクセスしてきます。)

このため、通常は「毎日1,000クエリ」まで利用できるようにAPIキーを取得した方がよいでしょう。メールアドレスを持っていれば無料で取得可能です。

APIキーを取得するため、以下のサイトのアクセスします。

「Enter your email address」にメールアドレスを入力して「SIGN UP」を選択します。

アクセスできたら、「Enter your email address」というメールアドレスを入力するフィールドがありますので、メールを受信できるアドレスを入力して「SIGN UP」を選択してください。

通れば「Yuor API Key is on its way to your indox!」と表記が変わりますので、受信ボックスを開いてAPIキーを確認してください。

「Yuor API Key is on its way to your indox!」となればOKです。メールボックスを開いて自動返信メールを確認します。
受信ボックスのメールを開き、「Your API Key」を確認しましょう。ここにAPIキーが記されています。

APIキーが確認できたら、WordPressに戻って左のメニューに追加された「PVB Settings」を選択して開いてください。

「Proxy & VPN Blocker」の設定画面が開きますので、「proxycheck.io API key」の項目に先ほどのAPIキーを入力してください。そして画面一番下までいって「SAVE SETTINGS」ボタンをクリックすれば登録完了です。

「proxycheck.io API key」にAPIキーを入力して設定を保存すれば登録完了です。

APIキーが有効になっているかどうかを確認するには、「API Key Statistics」を開いて左上のプランを確認してください。「Plan: Free | 1,000 Daily Queries」となっていればAPIキーが有効になっています。これで1日1,000クエリまで無料で利用できます。

「API Key Statistics」でプランが「Plan: Free | 1,000 Daily Queries」となっていればAPIキーが有効になっています。

設定 - PVB Settings

「PVB Settings」に戻って設定を行っていきます。

Important Settings

Enable Querying「ON」にするとAPIキーを有効にして「proxycheck.io」と連携し保護します。通常はONのままにしておきます。
proxycheck.io API key取得したAPIキーを入力します。再取得しない限りそのまま。
Site uses CloudflareCDNである「Cloudflare」を利用している場合は「ON」にします。訪問者のIPを確認できなくなるようです。
Use TLSproxycheck.io APIに対して行われる通信もTLS暗号で保護します。「ON」にするとAPI応答が少し遅くなる可能性があるとしていますが、私は特に影響を感じたことはないので基本推奨。
Also Detect VPN'sプロキシのほか、VPNからのアクセスも検出したい場合は「ON」にします。

Restrict on specific Pages & Posts

Restrict on Specific Pagesアクセスを保護したい「固定ページ」を指定します。リスト方式で選択します。複数選択可能です。
Restrict on Specific Postsアクセスを保護したい「投稿ページ」を指定します。リスト方式で選択します。複数選択可能です。

Blocked Visitor Action

Access Denied Messageアクセスが拒否された場合に表示するメッセージを変更できます。日本語でも可。
Custom Blocked Pageアクセスを拒否したら特定のページに飛ばすことができます。予め専用ページを作ってなぜ拒否されたかを告知すると親切。
Redirect to URLアクセスを拒否したら指定したURLへリダイレクトするかどうか指定します。ドメインまで異なるページへ飛ばしたい場合などに。上記「Custom Blocked Page」と併用は不可。
URL to redirect blocked visitor to.「Redirect to URL」が「ON」のときのリダイレクト先を指定します。

Proxy/VPN Activity - Last Detected

Access Denied Message不正アクセスと判定されたIPアドレスを、どれくらいの期間まで記憶しブロック対象にするか決めます。標準は「7日」です。このままでも十分機能します。

IP Risk Score Checking

Risk Score Checking「オン」にすると「proxycheck.io」のリスクスコア機能を利用できます。ただ、詳細な動作はよく分からず。「OFF」のままでも特に問題ないかと。
Risk Score - Proxiesリスクスコアチェックが有効になっている場合、ここで指定されたリスクスコアを持つプロキシはブロック対象になります。
Risk Score - VPN'sVPNの検出とリスクスコアのチェックが有効になっている場合、ここで設定された値以上のリスクスコアを持つVPNはすべてブロック対象になります。

Blacklist or Whitelist Countries/Continents

Country/Continentこのリストに追加した国/大陸はアクセスを拒否します。
Treat Country/Continent List as a Whitelistこの機能を「ON」にすると、上記「Country/Continent」で指定した国/大陸 ”以外” のアクセスを拒否します。ホワイトリスト方式に変更されるので、自分がお住まいの国を追加しないと自分もアクセスできなくなります。

Advanced Settings

Custom Tag用途不明。空のままでよいでしょう。
Known Good IP Cache特に問題ないIPアドレスをキャッシュする期間を設定できる?みたい。これも標準のままよいでしょう。
Block on entire site非推奨。「ON」にするとサイト全体ですべてのVPN、プロキシのアクセスを拒否します。クエリを大量に消費するほか、ウェブサイト全体の動作にも影響する可能性大。
proxycheck.io 'denied' status emailsアクセスを拒否した場合にメールで連絡するか指定します。メール連絡多くなりすぎる可能性があるので「OFF」のままでよいかと。

設定 - Blacklist / Whitelist Editor

左のメニューから「Blacklist Editor」「Whitelist Editor」を選択すると、指定した「IPアドレス」「IPアドレス範囲」「ASN」で「ブラックリスト」「ホワイトリスト」を設定できます。

指定したアドレスをブラックリスト、ホワイトリストとしてルール化できます。

ステータス画面

「API Key Statistics」でブロックした詳細な内容が確認できます。

ブロックしたアクセス元IPアドレス、国、ノード、ブロックした総数などが確認できます。しばらく運用してみて1,000クエリ以内で収まっているようならそのまま利用しても大丈夫です。

ブロックしたステータス。ブロックしたクエリ、ページ、アクセス元IP、国などが表示されます。

まとめ

これで「Proxy & VPN Blocker」について大まかに解説できたかと思います。

「proxycheck.io」と連携することで精度良くVPNやtorなどのプロキシをブロックしてくれますので、不正ログインなどを試みようとするアクセスの多くを排除することができます。

ただ、VPNを使っているからと言って絶対不正アクセスのものかというとそうではなく、最近はWi-Fiスポットから安全にアクセスするためにVPNを利用することも多いので、そういった正規のアクセスまで排除されてしまう懸念はあります。

特にECサイトなどではブロックしてしまうことによる影響を吟味した上で実装してみてください。ログインページやお問い合わせフォームだけを保護するなど、重要なページだけに限定すると運用しやすいかと思います。

広告