さくらインターネットで「503 Service Temporarily Unavailable」が出て解決した方法とその原因を究明。WordPress使ってます。
はじめに
ちょっと前の話になりますが、私が管理しているWordPressの管理画面に入ろうとしたら503エラー連発でなかなか管理画面に入ることができない事象が頻発していました。
朝イチのルーチンワークで複数のサイトの管理画面に入り、アクセス解析を見たりする必要がありますがそれもままならない、非常に状態が悪い瞬間がありました。
気になって管理画面にログインしてみると以下の画像のような状態になっており、連発する原因がわかりました。
はい、高負荷です。
503 Service Temporarily Unavailableの原因
簡易アクセスログやアクセス解析を確認してみると、WordPressやMovableType等の有名CMSへの管理アドレスへのダイレクトアタックや、1秒間に100回とか1000回特定のアドレスへのアクセスなど、どれをどうとっても「攻撃」としか理解できない内容ばかりでした。というかこれが「攻撃」ですよね。
で、更に詳しく見るとそれの殆どは海外からのアクセスでした。その中でも「中国」や「ロシア」、「ドイツ」で9割を構成。
ウチのサイトの内容的に(他のサイトも運営して同居してるのでなんとも言えないですけど)、海外のお客様は不要と感じたので、海外からのアクセスをお断りすることにしました。(「海外から」と書いてますけど、正確には上記3国を弾いてます)
というわけで原因は、海外からの攻撃でした。
503 Service Temporarily Unavailableの対策について
さくらインターネットは、「国外IPアドレスフィルタ」といって、とても良いサービスを無料で付けてくれています。
日本国外IPアドレスからのアクセスを制限することで、海外からの不正なアクセスに対するセキュリティを強化することができます。制限が適用される対象は以下の通りです。
メール送信 (SMTP)
ファイル転送 (FTP/sftp)
シェルログイン (SSH)
ウェブアクセス (HTTP/HTTPS 特定ファイルのみ)
ということで、さくらインターネット側でも防御策を提供していますが、これでは不十分なので徹底的にやりました。
503 Service Temporarily Unavailableの対策
.htaccess に「来るなやボケ!」と書きます^^
で、最初に国別トップレベルドメイン(.cnやら.krやら.ruやら.deなど)を記述していましたがそれでは間に合わなかったようで・・・
下記を参考に結局IPアドレスいっぱい書きました。
今日も俺は空・寝・遊
《簡単》.htaccessで海外のある国ごとIPを弾く方法!
503 Service Temporarily Unavailableの対策の結果
サムネイル画像にあるように、ピタっと収まりましたw
アクセス解析見ると今でも様々なログがありますが、問題は解決できたような内容のログなので大丈夫そうです。
ブルートフォースアタックでサイトアドレスに機械的にアクセスしているので、あなたのサイトも安全ではありません。一度アクセスログを確認されたほうが良いかと思います。