概要
ここで作ったwordpressに設定する。wordpressはhttp://~~~/wp-admin/が、管理者の画面になるが、ここへのアクセスを制限するための方法として、.htaccessなどの編集などで対応をすることがある。
今回はcloudflareのトンネルでwebサイトを公開しているので、せっかくならcloudflareの機能を利用して実現させる。
cloudfraleのfirewallは、2022年にゼロトラストというものに統一され、UIなど利用方法がめっきり変わった。記事を検索しても古いものがでてきたりする事が多い。
実現方法
今回は、特定のIP以外はwp-admin以外はログインできないようにするという設計をとる。
アプリケーションにポリシーを当てはめ、そのアプリケーションが適応されるドメインを指定する事で再現することができる。
Cloudflare Zero Trust ダッシュボードにログインする
まず、Cloudflare Zero Trust ダッシュボードにログイン。ダッシュボードからなら、Accessの部分から入れる。
Accessポリシーを作成
アプリケーションを作成するときに、ポリシーができていないと適応できないので、まず先にポリシーを作成する。
まず、ポリシーの名前を決め、アクションにAllow
を入れる。セッション時間は一旦デフォルトにする。
*ポリシーに該当する機器がアクセスしようとすると、認証を求められるようになる。認証時のセッションの保有時間がここになる。
その後、特定のIPアドレスからのアクセスを許可するルールを設定する
ここでは特定のIPからのアクセスを許可するので、
- ルールを追加するの部分でセレクターを、
IPrange
にする。 - 値の部分で、許可をするIPアドレスを入力する。
下部のポリシーテスターという所をクリックすると、ポリシーが構文として間違っていないかを確認できる。
終わったら保存を行う。
アプリケーションを作成する。
アプリケーションから、セルフホストを選択する。
その後、アプリケーション名(例: WordPress Admin)と、対象となるドメイン(アクセスの制限を行う予定のURL)を設定する。Cloudflare Tunnelを使用している場合、ドメインの部分は選択できるようになるはず。
今回は、管理者画面を制限したいため、
wp-admin/*
-
wp-login.php*
を指定する。*
を指定してやる事で、ワイルドカードとして指定する事が可能である。
Access ポリシーを選択する箇所で、先ほど作成したポリシーを追加してあげる。
*なぜか、編集画面でポリシーを追加する画面が見当たらなかった。
また、ログイン方法を指定する事もできる。
該当のパスに対して、指定したIPからアクセスしようとした際、素通りでアクセスできるようになるのではなく、認証を一度求められる。
その際の認証方法をここでは指定している。
他の設定はほぼ必要ない。
アプリケーションの外観の部分で、アプリランチャーについて何か問われたりするが、特に必要はないと思う。
アプリケーションを保存すると、その瞬間に、該当のパスに対してのアクセスにポリシーが適応されるようになる。
参考サイト