どうもー!マミィです!
フリーランスプログラマーをしながら、「スクラッチプログラミング」・「マインクラフト」の真似したいと思う、役に立つ情報を中心に発信しています!

あるサイトが突然403Forbiddenエラーが出て、見れなくなった!
どうしたらいいの?

サーバ側の国外サーバIP制限のせいかもしれません!
解決するのに少し時間がかかったことがあった為、備忘録です。
エラーが発生したのは、さくらサーバです。
サーバにあるプログラムにアクセスすると、はじめは普通に使えており、途中からある特定のPCのみが突然「403 Forbidden」と表示されてそれ以降、全く閲覧できなくなった。
現象が出るのは、お客様のネットワーク環境のみで、別のネットワークからは現象を再現できない。
よく403エラーの原因となる、.htaccessや、ファイル・フォルダ権限などには問題はありませんでした。
さくらサーバのホワイトリストにIPアドレスを追加(CIDR表記で範囲指定)することで、使えるようになった。
- IPアドレスが短時間(1分以内)で変更されることを知らなかった
- 使えている間がある為、IPアドレス制限なら初めから弾かれるはずと考え、別の要因を探していた。
【403 Forbiddenエラー】調査した事、試したこと

- アクセスログ、エラーログを確認して、cgiエラーが出ていないか、影響はないのかを確認→403エラーの原因ではないことを確認。
- アクセス過多なのかと重い、処理の重い操作なども行ってテスト→現象を再現できず
- さくらサーバの国外IPアドレスフィルタのホワイトリストに追加して試す→すぐに403エラー
- 他のブラウザ、PCで確認→お客様のPCのみどのブラウザでも、403エラー。他のネットは見れる
調査を始めた初期にIPアドレス制限の可能性も考えましたが、同じPCで使える時と使えないときがあった為、色々な可能性を考えて調査内容が多岐にわたってしまいました。
【403 Forbiddenエラー】さくらサーバでIP調査をしてもらった結果

状況とIPを伝えて、さくらサーバで調査をしてもらっていました。
サポートからの回答を要約すると・・・
- アクセス元のIPの所在地が海外を所在地とするもので、国外IPフィルタによる制限を受けている
- ホワイトリストによる許可の設定をすること
ということでした。
さくらサーバでは、最近サイバー攻撃によりサーバが一時的に使えないというトラブルが頻発しており、海外IPを強化しているのかもしれません・・・。
【403 Forbiddenエラー】さくらサーバのホワイトリストに記載するCIDR表記の仕方
さくらサーバのホワイトリストに入れるためには、CIDR表記で入れる必要があります。
参考にしたサイト→CIDR表記 (サイダー表記)
CIDR表記については詳細の説明は省きますが、今回は変動するIPだった為、以下の「000」は変更OKな範囲が指定できるようにして設定しました。
198.51.100.000/24
198.51.000.000/16
固定のIPであれば、198.51.100.100/32のように、固定IP+/32を入れればOKです。
【403 Forbiddenエラー】まとめ
突然使えなくなった!という場合は、国外IPフィルタの制限を受けている可能性があります。
そんなときはホワイトリストにIPを入れて、制限を解除しましょう。
調査の際には、短時間でIPが変わることも視野にいれて置くと、余計な時間を使わずにすみます。
今回はホワイトリストに追加はして試すこともしていましたが、IPの範囲指定をせずに入れていたので、ずっと制限を受けることになっていました。
国外IPは無効にすると、セキュリティ的に危険な為、有効のままでホワイトリストに追加するのが良さそうです。