WordPressのwp-login.phpなどへのアクセスを制限する(GAE+Serverless NEG+ロードバランサ+Cloud Armor)

この記事は約4分で読めます。

当ブログの管理系機能(WordPressの管理系機能)への不正アクセス対策として、GAEの制約上の問題から、

  • プラグインの利用
  • 複雑なパスワードを設定

という脆弱な対策しか実は取れませんでした。

しかし、GAEとServerless NEGを連携をしたので、ロードバランサが使えるようになりCloud Armorが晴れて利用可能となりました。

早速設定し、不正アクセスそのものを遮断することにします。

※Wordpressがいかに攻撃対象となっているか?について、こちらの記事をご覧下さい。

スポンサーリンク

What is Cloud Armor??

  • GCPのWAF(Web Application Firewall)サービス
  • GCPロードバランサとの連携で利用可能

私見ですが、GCPはグローバルレベルでの高性能・高可用性の実現を追求した設計思想のサービスだなと使っていて感じています。

なので、ロードバランサを中核に据える傾向があり、Cloud Armorもロードバランサ連携を前提に作ったんじゃないかな?と思っています。

スポンサーリンク

料金

ポリシーの料金1ポリシーあたり$5/月
ルールの料金1ルールあたり$1/月
※日割り計算ありとのこと
着信リクエスト料金$0.75$/HTTP(S) リクエスト 100 万件
スポンサーリンク

設定における前提条件

  • ロードバランサと、ロードバランサのバックエンドで動くサービスが既に構築済である必要があります。
  • Serverless NEGは当記事執筆時点ではbeta版なので、GCPのSLA保証対象外となりますご注意下さい。→GAになりました。

※GAEとServerless NEGを連携させる方法については、下記記事をご覧頂けると幸いです。

スポンサーリンク

設定

[Cloud Consoleメニュー]->[ネットワークセキュリティ]->[Cloud Armor]を選択し、設定画面に進みます。

ポリシー作成

[ポリシーを作成]をクリックします。

  • 名前の入力
  • 説明の入力(任意)
  • デフォルトルールのアクション:許可を選択

を行い、[次のステップ]をクリックします。

ルールの追加

[ルールを追加]をクリックします。

今回作成するルールはwp-login.php,wp-aemin/*へのアクセスに対し、

  • 自宅のグローバルIPアドレスは接続許可
  • 自宅以外のグローバルIPアドレスは接続拒否

となります。

※ロードバランサのログを事前にみてみましたが、ロードバランサに通知されるグローバルIPアドレスはIPv4でした。

ルール設定画面の、

  • 条件:詳細モード
  • アクション:拒否
  • 優先度:任意の値(今回は最優先ルールにするため、小さい数字を設定)

を入力、選択した上で一致に下記条件式を入力後、[完了]をクリックします。

wp-login.phpのアクセス拒否ルールが出来ました。

同様の手順でwp-admin/*のアクセス拒否ルールを追加し、[次のステップ]をクリックします。

条件式:wp-login.phpアクセス拒否

request.path.matches('/wp-login.php') && !inIpRange(origin.ip, '【自宅のグローバルIPアドレス/32】')

条件式:wp-admin/*アクセス拒否

request.path.matches('/wp-admin/*') && !inIpRange(origin.ip, '【自宅のグローバルIPアドレス/32】')

ダーゲットポリシーへの適用

[ターゲットの追加]をクリックし、

  • タイプ:ロードバランサバックエンドサービス
  • ターゲット:対象となるバックエンドサービス

を選択し、[完了]->[ポリシーを作成]の順でクリックします。

設定が上手くいけば、こんな感じで詳細画面が表示されると思います。

スポンサーリンク

動作確認

スマートフォンで動作確認

スマートフォンのWifiを切って、サイトに通常接続出来る事を確認します。

次にサイトURLの末尾に[/wp-login.php][/wp-admin]でアクセスしてみます。

ブロックされていますね。

ロードバランサのログ確認

ログビューアでロードバランサのアクセスログをみてみます。

スマートフォンアクセスのブロックログが出力されています。

スポンサーリンク

まとめ

  • ¥1,000/月ほどコスト増にはなりますが、GAEで安心してWordpressを運用できるようになりました。
  • 今回は簡単な例ですが、他にも高度なことができるサービスなので、エンタープライズユースでも十分ご利用頂けると思います。
スポンサーリンク

参考情報

Google Cloud Armor カスタムルール言語リファレンス

Google Cloud Armor セキュリティ ポリシーの構成

スポンサーリンク
GCP
ヤマログ
タイトルとURLをコピーしました