【PR】本記事はアフィリエイト広告を利用しています。
ConoHa VPSのセキュリティを見直して2週間、届いた攻撃ログと守りの考え方
自作ブログをConoHa VPSの1GBプランで運用しています。
実は稼働させた直後から、かなりの攻撃を受けていました。ただ、当初はIP制限をかけて公開していたので、大きな問題は起きていませんでした。
とはいえ、昨今はセキュリティ攻撃が大きな問題になっています。そこでこのサーバーの運用も強化しようと、10/24からシステム全体のセキュリティを見直しました。今回は、あえてIP制限に頼らず、ログから攻撃を検知して自動でブロックする方法を実装して公開しています。
見直しの公開から2週間で、かなりの攻撃が届きました。守りは入れて終わりではなく、ログを見て直し続けるものだと痛感しました。
この記事では、実際のログの集計と、私が考えている守りの方針、そして失敗して学んだことを書きます。設定値やファイルの中身など、真似すると自分のサーバーを危うくする細部は載せません。方針と結果に絞ります。
運用で重要だと感じていることは、次の3つです。
- VPS上のセキュリティパッチは、こまめに確認して、できるだけ早く当て続けること
- Dockerコンテナのセキュリティパッチも、忘れずに当て続けること
- 多層防御の考えを持つこと
2週間で届いた攻撃の実数
10/24〜11/07の2週間で、ブロックした攻撃は合計8,812件でした。管理画面の「セキュリティ」画面から集計しています。
| 攻撃の種類 | 件数 | 内容 |
|---|---|---|
| 脆弱性の探索 | 1,433件 | 一般的な管理画面や設定ファイルのパスを順番に試すアクセス |
| SSHなどへの総当たり | 7,379件 | ログイン試行の繰り返し |
時間帯は朝6時台に多いという傾向でした。ただ、攻撃のパターンはコサインカーブのように周期的に繰り返していて、24時間、どこからともなく自動ツールによる攻撃を受けている状態です。
これらの件数は、自作の集計の仕組みで出したものです。攻撃かどうかの判定には誤りがありうるので、あくまで目安として見てください。
攻撃元のIPアドレスは載せません。日本を含めて様々な国から攻撃を受けており、驚いたのは、大手クラウド事業者のIPからも届くことです。踏み台にされているサーバーが多いのか、攻撃者が借りたサーバーなのかは、ログだけでは判断できません。
私の守りの考え方: 「見える」「自動で止める」「自動で直す」
守りで大事にしているのは、次の3つです。設定値は載せず、考え方だけ書きます。
- 見える化する: 攻撃を集計して、管理画面と日報で毎日確認できるようにしました。見えないものは直せないからです。
- 自動で止める: 明らかに怪しいアクセスは、手動ではなく仕組みで自動的にブロックします。人が張り付かなくても動く形にしています。
- 自動で直す: OSやコンテナの更新は定期的に自動で行い、失敗したら元に戻る形にしています。更新を放置するのが一番のリスクだからです。
そのほか、管理画面は二段階認証にして、外から入れる範囲を絞り、定期的に点検ツールを走らせています。
重量級の対策ソフトは導入していません。個人で契約しているVPSで、メモリが1GBしかないためです。それでも、必要な対策は軽い仕組みで取れており、実際に機能しているので、必要十分だと考えています。
ただし、これで完璧とは考えていません。毎日ログに攻撃が並ぶ以上、守りは「完成」ではなく「続けるもの」です。
堅くしようとして、3回失敗した
守りを強めるほど、サイトが止まるリスクも上がります。私が実際にやった失敗を3つ書きます。
① 堅牢化の設定を入れたら、アプリが再起動を繰り返した(10/26)。 ローカルの開発環境では問題なかった設定が、VPS側のセキュリティ機構に拒否されました。再起動のタイミングで発覚し、サイトが502になりました。設定を外して復旧しています。
教訓: 堅くする設定は、ローカルで通っても、本番で確認するまで入れない。
② カーネルを更新したら、起動時に止まった(10/26)。 起動用のイメージが大きすぎて、起動直後のメモリを使い切った可能性があります。旧カーネルから起動して復旧し、その後イメージを小さくする恒久対策をしました。
教訓: 自動再起動を入れる前に、起動の安定性を先に確保する。
③ 気づいたらディスクにゴミが約14GB溜まっていた(10/30)。 ビルドのたびに古いDockerイメージが残っていました。不要なものを削除し、以降は自動で片付ける形にしました。
教訓: 作るものは、片付ける仕組みも一緒に作る。
一番焦ったのは、カーネルパニックでサーバーにSSHで接続できなくなったことです。ConoHaの管理コンソールからVPSを強制的に再起動して、解決しました。
ConoHa VPSで必要だった規模
私の構成(Docker・nginx・Pythonの自作ブログ)は、メモリ約1GBのプランで動いています。契約しているのは1GBプラン(2コア・SSD 100GB)で、月額は1,064円(2026年11月時点)です。とても安くて、気に入っています。
Docker CEでDBコンテナとアプリコンテナを同時に動かしても、重くなることはありません。セキュリティ対策の仕組みを裏で動かしていても問題ありません。サーバーの再起動も非常に速く、環境にはとても満足しています。
難点を一つだけ挙げると、私のVPSは、管理画面の旧バージョン(Ver2.0)でないと表示されません。新しいバージョンでも見られるようになると助かります。
これから始める人は、まず小さいプランで動かして、メモリの使用量を見ながら上げるのがおすすめです。最も安いプランは、メモリ512MB・1コア・SSD 30GBで月額750円です。ただ、1GBプラン(1,064円/月)との差額はそれほど大きくありません。私は、2コア・SSD 100GBの1GBプランをおすすめします。
最新の料金とキャンペーンは、公式ページで確認してください。
VPSが向く人、向かない人
向く人
- サーバーの仕組みを自分で触って学びたい人
- ログを見て、問題を自分で直すことを楽しめる人
- 自作のアプリやブログを、自由な構成で動かしたい人
向かない人
- 更新やセキュリティの対応に、時間を割きたくない人
- 何かあったときに、すべてを事業者に任せたい人
- ブログを書くことだけに集中したい人
最後のタイプの人は、運用を事業者に任せられるレンタルサーバーのほうが合います。VPSは自由な分、守りも自分の仕事です。
この作業で役に立った本
価格:3080円 |
nginxの設定などで有益で、かつ分かりやすかったので、おすすめの本です。
まとめ
見直しから2週間で、攻撃は8,812件届きました。守りは完成しませんが、「見える化」「自動で止める」「自動で直す」の3つを回せば、個人のブログでも十分に続けられます。
VPSは自由度が高い分、運用も自分の仕事になります。それを楽しめる人には、ConoHa VPSは小さく始められるよい選択肢です。
私はこのサイトを、技術実験用として、ブログシステムごとフルスクラッチで構築しています。この記事を書いているエディター機能も自作で、Markdown形式でリアルタイムにレンダリング結果を確認しながら書けます。JavaScriptも含めてフルスクラッチなので、かなり特殊かもしれません。技術のデモンストレーションとしても活用できると考えて作りました。
10/24からはClaude Codeを使って全体を刷新しました。静的診断で見つけた問題を修正し、動的診断にはOWASP ZAPを使っています。ローカルPCのDockerコンテナと専用ネットワーク上で実際に攻撃を試し、結果を確認して追加の対策を入れてから公開しました。
セキュリティは本職ではありません。隔離した環境で確認していますが、完璧とは言えないので、日々対策を練って取り組んでいます。
今後ともよろしくお願いします。