情報化社会が進んできている現在、様々なサービスがWeb上で展開されるようになりました。
しかし、それに伴ってサイバー犯罪も深刻化してきています。ECサイトなどはもちろん、ブログのようなところであってもなるべく対策を行い、被害に合わないようにしたいところです。
そこで今回は、簡単にVPNやtorネットワークからのアクセスを拒否できるWordPress用プラグイン「Proxy & VPN Blocker」をご紹介します。
攻撃をしかけようとしているアクセスは、どこからアクセスしたのかを秘匿するため、VPNやtorネットワークなどをよく利用しています。ログイン画面やお問い合わせフォームなど攻撃対象になりやすい場所は、これらのアクセスを拒否することで一定のセキュリティが確保できます。
Proxy & VPN Blocker の概要
ダウンロードリンク
https://wordpress.org/plugins/proxy-vpn-blocker/
※WordPressの「プラグインを追加」からもインストールできます。
主な機能
- VPN、torネットワーク、プロキシサーバーなどからのアクセスをブロックできます。
- APIキーの登録なしで「毎日100クエリ」、無料のAPIキー(proxycheck.io)を登録すると「毎日1,000クエリ」まで利用できます。
- 指定した「投稿」「固定ページ」を保護対象にできます。全ページを保護対象にすることも可能ですが原則非推奨。
- アクセスが拒否された際、特定のページへ転送するか、メッセージだけを表示するページを表示するか選択できます。
- 国別でアクセスを許可/拒否することができます。
- IPアドレス、IPアドレス範囲でホワイトリスト/ブラックリストを作れます。
VPN や torネットワークとは
今回はプラグインのご紹介なのでここは簡単に。
VPN【Virtual Private Network】は、自身の端末とサーバーの間に仮想的なトンネルを作り、プライベートなネットワークのように扱う技術のことです。今までは拠点間のネットワークを繋ぐ役目としてよく使われていましたが、一緒に強化な暗号化が行われることから、最近はWi-Fiスポットに対してのセキュリティ対策としても注目されています。
このVPNですが、アクセス先のサーバーとの間に「VPNサーバー」を一旦経由することから、相手のサーバーからはアクセスしてきた本人ではなく「VPNサーバー」からのアクセスのように見えます。このため、アクセス元を秘匿できる作用もあります。
torネットワークは、相手のサーバーにアクセスする前に、世界中に存在する「オニオンルーター」をランダムに複数経由することで、徹底的にアクセスしてきた端末を秘匿するためのネットワークです。専用のtorブラウザーを利用することで、相手のサーバーからはどこからアクセスしてきたのか全く分からなくなります。
これらはアクセス元を秘匿する効果が一緒にありますので、どうしても悪用する攻撃がでてきます。これらのアクセスを拒否しても特に事業へ影響がないようであれば、基本的に拒否してしまうことで大幅に不正アクセスを減らすことができます。サーバーの負荷も低く抑えられます。
インストール方法
「WordPress.org」からダウンロードもできますが、WordPressの「プラグインを追加」からインストールした方が楽かと思います。
左のメニューから「プラグイン」→「新規追加」と選択、「Proxy & VPN Blocker」と検索すればヒットします。インストールを開始し、有効化してください。
proxycheck.io の無料APIを取得
このプラグインは「proxycheck.io」というサービスと連携することで、「VPN」や「プロキシ」を経由してきたアクセスなのかを判定しています。
何もしなくとも動作はしてくれますが、APIを取得を取得しないと「毎日100クエリ」までしか利用(拒否)してくれず、あまり実用的ではありません。(ある程度の規模のサイトであれば100クエリ以上は普通にアクセスしてきます。)
このため、通常は「毎日1,000クエリ」まで利用できるようにAPIキーを取得した方がよいでしょう。メールアドレスを持っていれば無料で取得可能です。
APIキーを取得するため、以下のサイトのアクセスします。
https://proxycheck.io/
アクセスできたら、「Enter your email address」というメールアドレスを入力するフィールドがありますので、メールを受信できるアドレスを入力して「SIGN UP」を選択してください。
通れば「Yuor API Key is on its way to your indox!」と表記が変わりますので、受信ボックスを開いてAPIキーを確認してください。
APIキーが確認できたら、WordPressに戻って左のメニューに追加された「PVB Settings」を選択して開いてください。
「Proxy & VPN Blocker」の設定画面が開きますので、「Main」タブ内にある「proxycheck.io API key」の項目に先ほどのAPIキーを入力してください。そして画面一番下までいって「SAVE SETTINGS」ボタンをクリックすれば登録完了です。
APIキーが有効になっているかどうかを確認するには、「API Key Statistics」を開いて左上のプランを確認してください。「Plan: Free | 1,000 Daily Queries」となっていればAPIキーが有効になっています。これで1日1,000クエリまで無料で利用できます。
設定 - PVB Settings
「PVB Settings」に戻って設定を行っていきます。それぞれタブで分かれています。
Main
Enable Querying | 「ON」にするとAPIキーを有効にして「proxycheck.io」と連携し保護します。通常はONのままにしておきます。 |
---|---|
proxycheck.io API key | 取得したAPIキーを入力します。再取得しない限りそのまま。 |
Site uses Cloudflare | CDNである「Cloudflare」を利用している場合は「ON」にします。訪問者のIPを確認できなくなるようです。 |
Also Detect VPN’s | プロキシのほか、VPNからのアクセスも検出したい場合は「ON」にします。 |
Log User IP’s Locally | オンに設定すると、ユーザーの登録と最新のログインIPアドレスがローカルに記録される、となっていますがどれのことかはちょっと不明。一応標準では「ON」です。 |
Restrict Pages/Posts
Restrict on Specific Pages | アクセスを保護したい「固定ページ」を指定します。リスト方式で選択します。複数選択可能です。 |
---|---|
Restrict on Specific Posts | アクセスを保護したい「投稿ページ」を指定します。リスト方式で選択します。複数選択可能です。 |
Block Action
Access Denied Message | アクセスが拒否された場合に表示するメッセージを変更できます。日本語でも可。 |
---|---|
Custom Blocked Page | アクセスを拒否したら特定のページに飛ばすことができます。予め専用ページを作ってなぜ拒否されたかを告知すると親切。 |
Redirect to URL | アクセスを拒否したら指定したURLへリダイレクトするかどうか指定します。ドメインまで異なるページへ飛ばしたい場合などに。上記「Custom Blocked Page」と併用は不可。 |
URL to redirect blocked visitor to. | 「Redirect to URL」が「ON」のときのリダイレクト先を指定します。 |
Risk Scores
Risk Score Checking | 「オン」にすると「proxycheck.io」のリスクスコア機能を利用できます。ただ、詳細な動作はよく分からず。「OFF」のままでも特に問題ないかと。 |
---|---|
Risk Score – Proxies | リスクスコアチェックが有効になっている場合、ここで指定されたリスクスコアを持つプロキシはブロック対象になります。 |
Risk Score – VPN’s | VPNの検出とリスクスコアのチェックが有効になっている場合、ここで設定された値以上のリスクスコアを持つVPNはすべてブロック対象になります。 |
Restrict Country/Continent
Country/Continent | このリストに追加した国/大陸はアクセスを拒否します。 |
---|---|
Treat Country/Continent List as a Whitelist | この機能を「ON」にすると、上記「Country/Continent」で指定した国/大陸 ”以外” のアクセスを拒否します。ホワイトリスト方式に変更されるので、自分がお住まいの国を追加しないと自分もアクセスできなくなります。 |
Advanced
Custom Tag | API Key Statisticsで表示される「Tag」の表記を変えられる模様。標準で問題ないでしょう。 |
---|---|
Known Good IP Cache | 特に問題ないIPアドレスをキャッシュする期間を設定できる?みたい。これも標準のままでよいでしょう。 |
Last Detected Within | 不正アクセスと判定されたIPアドレスを、どれくらいの期間まで記憶しブロック対象にするか決めます。標準は「7日」です。このままでも十分機能します。 |
Protect login authentication | 恐らくProxy/VPNのログイン認証もブロックする設定。標準は「ON」でそのままでよいでしょう。 |
Block on entire site | 非推奨。「ON」にするとサイト全体ですべてのVPN、プロキシのアクセスを拒否します。クエリを大量に消費するほか、ウェブサイト全体の動作にも影響する可能性大。 |
proxycheck.io ‘denied’ status emails | アクセスを拒否した場合にメールで連絡するか指定します。メール連絡多くなりすぎる可能性があるので「OFF」のままでよいかと。 |
Unique Settings Key | 設定項目無し。設定が保存されると「Known Good IP」でキャッシュされた内容はキャッシュ期限に限らず引き続きませんよ、ということかと。 |
Proxy & VPN Blocker Debugging (Experimental) | デバッグ用の試験的機能。プラグインに問題が発生したときの診断用みたいなので通常はオフのままで。 |
Cleanup on Uninstall | プラグインをアンインストールしたときに「Proxy & VPN Blocker」の設定をすべて削除したい場合は「ON」にします。 |
設定 - Blacklist / Whitelist Editor
左のメニューから「Blacklist Editor」「Whitelist Editor」を選択すると、指定した「IPアドレス」「IPアドレス範囲」「ASN」で「ブラックリスト」「ホワイトリスト」を設定できます。
ステータス画面
「API Key Statistics」でブロックした詳細な内容が確認できます。
ブロックしたアクセス元IPアドレス、国、ノード、ブロックした総数などが確認できます。しばらく運用してみて1,000クエリ以内で収まっているようならそのまま利用しても大丈夫です。
まとめ
これで「Proxy & VPN Blocker」について大まかに解説できたかと思います。
「proxycheck.io」と連携することで精度良くVPNやtorなどのプロキシをブロックしてくれますので、不正ログインなどを試みようとするアクセスの多くを排除することができます。
ただ、VPNを使っているからと言って絶対不正アクセスのものかというとそうではなく、最近はWi-Fiスポットから安全にアクセスするためにVPNを利用することも多いので、そういった正規のアクセスまで排除されてしまう懸念はあります。
特にECサイトなどではブロックしてしまうことによる影響を吟味した上で実装してみてください。ログインページやお問い合わせフォームだけを保護するなど、重要なページだけに限定すると運用しやすいかと思います。
▼ 更新履歴
-
:アップデートによって表記が少し変わったので修正 -
:初出
コメント
コメント欄を開く