選ぶ知識を、あなたの力に。
当サイトはプロモーションを含みます
記事一覧へVPS

VPSのセキュリティ初期設定|公開前チェックリスト

公開 2026.09.11 約10分
VPSを盾と鍵で保護するセキュリティ初期設定のイメージ

VPS公開前に必要なOS更新、SSH鍵、UFW、自動更新、権限、ログ、バックアップを安全な順に解説します。

VPSは作成直後からインターネット上で探索される可能性があります。難しい製品を大量に導入する前に、更新、最小権限、鍵認証、必要ポートだけの許可、バックアップという基本を確実に行うことが重要です。

この記事はUbuntu Serverを例にします。コマンドを実行する前に、VPS管理画面のコンソールとスナップショットを準備し、現在のSSH接続を閉じないでください。

最初に守るべき7項目

  1. OSとパッケージを更新する
  2. rootではなく一般ユーザーで作業する
  3. SSH鍵認証を利用する
  4. 必要なポートだけ開く
  5. 自動セキュリティ更新を確認する
  6. ログとリソースを監視する
  7. VPS外へバックアップする

ポート番号変更だけで安全になるわけではありません。認証、更新、権限、監視を組み合わせます。

OSを最新状態にする

sudo apt update
sudo apt upgrade -y

サポート切れのOSは、更新だけで安全に保てません。サポート中のUbuntu LTSへ移行する計画を立てます。再起動が必要な更新では、サービスが自動復旧することも確認してください。

一般ユーザーと最小権限

sudo adduser adminuser
sudo usermod -aG sudo adminuser

日常作業は一般ユーザーで行い、管理操作のときだけsudoを使います。アプリも可能な限り専用ユーザーで実行し、Webサーバーからシステム全体へ書き込めない権限にします。

SSH鍵認証を設定する

秘密鍵は手元に保管し、公開鍵をサーバーへ登録します。新しいユーザーで鍵認証できることを別セッションで確認した後、パスワード認証とrootログインの無効化を検討します。

OpenSSHの設定はディストリビューションやバージョンで読み込み順が異なるため、編集後に必ず検証します。

sudo sshd -t
sudo systemctl reload ssh

接続できなくなった場合に備え、ブラウザコンソールの使い方を先に確認しておきます。

UFWでポートを制限する

SSHを許可してからUFWを有効にします。

sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Nginxを公開する場合だけHTTP/HTTPSを追加します。

sudo ufw allow 'Nginx Full'

データベースのポートを全世界へ公開せず、同一VPS内または信頼するネットワークからだけ接続させます。事業者側のファイアウォールも併用し、設定の差を台帳へ記録します。

自動セキュリティ更新を使う

Ubuntuではunattended-upgradesがセキュリティ更新を自動適用できます。

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

本番では自動再起動やサービス再起動が影響するため、バックアップ、監視、メンテナンス時間と組み合わせます。適用ログは/var/log/unattended-upgrades/で確認できます。

不要なサービスと公開ポートを確認する

sudo ss -tulpn
systemctl --type=service --state=running

想定外のポートがあれば、どのプロセスが使っているかを確認します。用途不明のサービスをすぐ削除するのではなく、依存関係と停止影響を調べてから無効化します。

Web公開ではTLSとアプリ更新も必要

80番から443番へ誘導し、信頼できる認証局のTLS証明書を設定します。WordPressでは本体、テーマ、プラグインを更新し、未使用プラグインを削除します。管理画面には強い固有パスワードと多要素認証を使います。

OSが安全でも、古いWebアプリや公開された秘密情報から侵害されることがあります。.env、APIキー、秘密鍵をGitHubの公開リポジトリやWeb公開ディレクトリへ置かないでください。

ログと監視を準備する

sudo journalctl -p err -b
sudo journalctl -u ssh --since today
df -h
free -h
systemctl --failed

ログイン失敗、ディスク逼迫、メモリ不足、サービス停止、証明書期限を監視します。通知が多すぎると見落とすため、対応が必要な条件と担当を決めます。

バックアップはVPSの外へ保存する

同じVPS内のコピーは、ディスク障害や誤削除に弱い方法です。設定、アプリ、データベースを別ストレージへ暗号化して保存し、世代管理します。スナップショットとファイルバックアップを併用し、復元テストを行います。

公開前チェックリスト

  • [ ] サポート中のOSで更新済み
  • [ ] 一般ユーザーとsudoを使用
  • [ ] SSH鍵で再接続できる
  • [ ] 不要なポートを公開していない
  • [ ] 自動更新の設定とログを確認した
  • [ ] APIキーや秘密鍵を公開していない
  • [ ] 外部バックアップから復元できる
  • [ ] 障害通知を受け取れる
  • [ ] 緊急時にブラウザコンソールへ入れる

よくある誤解

SSHポート変更は自動スキャンのノイズを減らすことはありますが、脆弱性修正や鍵認証の代わりにはなりません。Fail2banなどの追加対策も、基本設定を終えた後にログを見ながら導入します。セキュリティソフトを入れるだけで運用責任がなくなるわけでもありません。

まとめ

VPSの初期防御は、更新、最小権限、SSH鍵、ポート制限、自動更新、監視、外部バックアップが中心です。一度設定して終わりにせず、毎月の更新確認と復元テストを予定に入れましょう。SSHで詰まった場合はSSH接続とエラー解決を参照してください。

本記事は情報提供を目的としたもので、契約・投資判断はご自身の責任で行ってください。