Cloudflareからの接続のみ許可する


まずはじめに

自分用の忘却しないためのメモになります

Cloudflareとは?

Cloudflare, Inc.は、コンテンツデリバリーネットワークやインターネットセキュリティサービス、DDoS防御、分散型ドメイン名サーバシステムを提供するアメリカ合衆国の企業で、同社が提供するCDNは閲覧者とホスティングプロバイダー間でリバースプロキシとして動作する。

というものです。
簡単に言うとサーバのデータにリクエストがあった場合Cloudflareのサーバにキャッシュがあればそこから配信してくれる。おまけにDDos攻撃なども防いでくれる。

Cloudflare = 最強

ということです。

転送量を抑えられるが...

Cloudflare側のサーバ(CDN)からデータが配信されるので、転送量を抑えることが可能となっていますが、Cloudflareを経由しないでアクセスしてこられたりということがしばしばあります。
ここではCloudflare以外からのアクセスをすべてブロックする方法を記述します。


IP制限をかける

cloudflareで使われているIPアドレスを調べます
CloudflareのIPアドレス

次に現在サーバで動かしているApacheのバージョンを調べます。

info.php
<?php phpinfo(); ?>

これで現在のApacheのバージョンが表示されます。

Apacheのバージョンが2.2の場合

htaccess.txt
Order allow,deny
Deny from all
deny from 173.245.48.0

Apacheのバージョンが2.4の場合

htaccess.txt
Require all granted
Require not ip 173.245.48.0

コードの意味

  • order allow,deny :allow(許可)、deny(拒否)の順番を記入します。
  • allow from all : 特定のホスト以外のアクセス全てを許可すると言う意味です。
  • deny from : 制限をかけるホスト、IPを指定します。複数指定する場合は、1行ずつ指定します。

上記のようなコードをhtaccess.txtなどのファイル名で作成して保存します。


いざアップロード!

先ほど作成したhtaccess.txtを制限をかけたいディレクトリにアップロードします。
そのあとにhtaccess.txtを.htaccessに名前を変更します。
Wordpressならディレクトリ直下にあるはずです。
このときパーミッションに注意してください。

以上でCloudflareでのみアクセスできるようになるはずです。

動作確認

アップロードしたディレクトリにブラウザでアクセスし、アクセスを許可されたホスト、IPから制限がかかっていないことを確認してください。制限がかかっている場合、403(Forbidden)エラーが表示されます。


おわりに

意外と簡単でした