Cloudflare で 接続元IPアドレス や 接続先ホスト(サブドメイン)でアクセスを制限する

Cloudflare を用いる場合に、アクセス元(接続元)のIPアドレスや、接続先のホスト(サブドメイン)で判別してアクセス制限をかけたい場合の方法です。

1. メニューから Firewall を選択する

ログインしてホストを選択し、Firewall のメニューを選びます。

f:id:gregminster:20190111111140p:plain

2. Firewall Rules で Create a Firewall rule をクリック

画面最上部の Firewall Rules のメニューの右に Create a Firewall rule というボタンがあるのでそれをクリックすると新しい Rule を作る画面に遷移します。

f:id:gregminster:20190111111749p:plain

3. Rule をガリガリ書く

Rule の書式はオフィシャルページにあります。

https://developers.cloudflare.com/firewall/cf-firewall-rules/fields-and-expressions/

以下の画像の例*1では、次のような条件と振る舞いになります。

  • ルールの名前は foobar
  • 以下の (a) かつ (b) を満たす条件が判定条件として用いられる
    • (a) 接続元のIPアドレスが 123.123.123.123 に等しい
    • (b) 接続先のアドレスが hoge.exmple.com に等しいか、または fuga.example.com に等しい
  • 上記の条件を満たすとき、アクセスはブロックされる

f:id:gregminster:20190111111156p:plain

注意点など

  • DNS メニューの Status での DNS and HTTP proxy (CDN) が、有効であるか無効であるかには注意する必要があります

f:id:gregminster:20190111111706p:plain

  • Firewall Rule は複数作ることができ*2、優先度をつけることができます
  • 実際は画面でポチポチ設定するよりかは API 経由で設定した方がバージョン管理などができて良いかと思います
  • 個別の Firewall Rule は有効無効をすぐに切り替えられます

*1:画像ですいません……

*2:上限数はプランにより異なり、Freeプランだと5つまで

Powered by はてなブログ