VPSを保護する:最初の10分間のチェックリスト
ApexVPSチーム執筆 • 最終更新:2026年7月 • 9分で読めます
新しいLinux VPSは、オンラインになってから数分以内に自動化されたボットによるプローブ攻撃を受けます。そのため、他の何かをインストールする前に、短く繰り返し可能なVPSセキュリティチェックリストを実行するのが賢明です。このガイドは、そのチェックリストです。新しいUbuntuやDebianサーバーで実行できる実践的な最初の10分間のルーチンであり、非rootユーザーの作成、SSHのロックダウン、ファイアウォールの有効化、ブルートフォースログインの防止を行います。以下のすべてのコマンドは標準的で安全にコピーでき、特別なツールは必要ありません。ターミナルと数分間の時間だけあれば十分です。
手順は順番に実行してください。各ステップが前のステップに基づいて構築されており、最後にはデフォルトのイメージよりもはるかに突破しにくいサーバーが完成します。
なぜ急ぐのか?パブリックIPv4空間は常にスキャンされています。インターネット接続デバイスの検索エンジンや数多くのボットネットは、新しいホストをカタログ化し、デフォルト認証情報を24時間365日試行します。"サーバーが稼働している"と"サーバーが攻撃されている"の間のギャップは、日ではなく分単位で測定されます。これらの基本に10分間集中することで、自動化ツールが狙う容易なターゲットのプールから外れ、注意を払う以外のコストはかかりません。
始める前に
新しいサーバーにSSHでアクセスするには、プロバイダーからメールで送られたIPアドレスが必要です。ApexVPSでは、すべてのプランに完全なrootアクセスが含まれているため、この強化プロセスをすべて自分で完了できます。ターミナルを開き、root(またはイメージが作成したデフォルトユーザー)として接続します:
ssh root@your_server_ip
何よりも重要なルールが1つあります:置き換えが機能することを確認するまで、ログイン方法を無効にしないでください。 最初のSSHセッションを開いたまま、2つ目のセッションをテストしてください。問題が発生した場合、その開いているセッションがセーフティネットになります。
ステップ1 — システムをアップデート
パッチ適用済みソフトウェアは、すべてのVPSセキュリティチェックリストの基盤です。まずパッケージインデックスを更新し、最新のセキュリティ修正をインストールします:
sudo apt update && sudo apt upgrade -y
新しいイメージでは、これによりカーネルやOpenSSHのパッチを含む多数のアップデートが適用されることがよくあります。カーネルがアップグレードされた場合は、チェックリストの残りが完了したらsudo rebootで再起動を計画してください。
ステップ2 — sudo権限を持つ非rootユーザーを作成
rootとして直接ログインするのは危険です:1つの誤ったコマンドが無制限の権限で実行され、rootはすべての攻撃者が最初に試すアカウントです。専用ユーザーを作成し、sudoを通じて管理者権限を付与します:
adduser deploy
usermod -aG sudo deploy
最初のコマンドはアカウントを作成しパスワードを求め、2番目のコマンドはsudoグループに追加します。deployを好きな名前に置き換えてください。今後はこのユーザーとしてログインし、特定のコマンドに必要な場合にのみrootに昇格します。
ステップ3 — SSHキー認証を設定
パスワードは推測される可能性がありますが、SSHキーは事実上不可能です。ローカルマシン(サーバーではない)で最新のEd25519キーペアを生成します:
ssh-keygen -t ed25519 -C "[email protected]"
デフォルトの場所を受け入れ、理想的にはパスフレーズを設定します。次に、公開鍵をサーバー上の新しいユーザーにコピーします:
ssh-copy-id deploy@your_server_ip
ssh-copy-idが利用できない場合は、サーバー上で手動でディレクトリとファイルを作成し、公開鍵を~/.ssh/authorized_keysに貼り付け、パーミッションを修正します:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
新しいターミナルを開き、パスワードなしでログインできることを確認します:ssh deploy@your_server_ip。次のステップがこれに依存するため、動作するまで先に進まないでください。
ステップ4 — SSHをロックダウン:rootログインとパスワードを無効化
キーログインが確認できたら、脆弱なオプションをオフにします。SSHデーモンの設定を編集します:
sudo nano /etc/ssh/sshd_config
次の3つのディレクティブを設定(またはコメント解除して変更)します:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
適用する前にファイルを検証し、サービスを再起動します:
sudo sshd -t
sudo systemctl restart ssh
sshd -tチェックは、ロックアウトを引き起こす可能性のあるタイプミスを検出します。再起動後、別のターミナルで新しい接続をテストします。SSHを介したrootログインとパスワード推測は、これで両方とも無効になりました。
SSHポートを変更(オプション)
SSHをポート22から移動しても、決心した攻撃者を阻止することはできませんが、デフォルトポートのみをスキャンするボットの絶え間ないバックグラウンドノイズから隠すことができます。希望する場合は、Port 2222のような行を/etc/ssh/sshd_configに追加します。重要なのは、SSHを再起動する前にファイアウォールで新しいポートを開くことです。そうしないとロックアウトされます。
ステップ5 — UFWでファイアウォールを有効化
ファイアウォールは、意図的に公開するポートのみが到達可能であることを保証します。UbuntuとDebianにはUFW(Uncomplicated Firewall)が同梱されており、その名前の通りです。適切なデフォルトを設定し、SSHを許可してから有効化します:
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose
OpenSSHプロファイルはポート22を開きます。前のステップでSSHを移動した場合は、代わりにsudo ufw allow 2222/tcpで新しいポートを許可します。ウェブサイトを運営していますか? HTTPとHTTPSを追加します:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
その他はすべてデフォルトで閉じたままです。これは公開サーバーでまさに必要なことです。
ステップ6 — fail2banをインストールしてブルートフォースを防止
キーを強制しても、攻撃者はSSHポートを攻撃し続けます。fail2banはログを監視し、失敗回数が多すぎるIPを一時的に禁止します。インストールして有効化します:
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
ルールをカスタマイズするには、デフォルト設定をローカルの上書きファイルにコピーして、アップグレードで変更が消えないようにしてから編集します:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[sshd] セクションでは、maxretry や bantime のような値を調整できます。 sudo systemctl restart fail2ban で再読み込みし、sudo fail2ban-client status sshd で現在隔離されているユーザーを確認します。
ステップ 7 — 自動セキュリティ更新を有効にする
セキュリティホールは絶えず発見されており、最も痛いのは適用しなかったパッチです。unattended-upgrades パッケージは、重要な更新をスケジュールに従って自動的にインストールします:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
プロンプトが表示されたら「はい」を選択すると、Ubuntu または Debian がバックグラウンドでセキュリティ更新を静かに適用します。この1つのステップで、脆弱性が公開されてからサーバーが保護されるまでのギャップを埋めます。
ステップ 8 — 未使用のサービスを無効にし、基本的なハードニングを行う
ネットワーク上で待ち受けているサービスはすべて潜在的な侵入経路です。不要なものは削除してください。実際に実行されているものと、ポートにバインドされているものを確認します:
sudo systemctl list-units --type=service --state=running
sudo ss -tulpn
使用していないサービスを見つけたら、無効にして停止します:
sudo systemctl disable --now <service-name>
チェックリストを完成させるための、すぐにできる追加の対策をいくつか紹介します:
- 時計を正確に保つ — 信頼できるタイムスタンプはログの信頼性を高めます。
timedatectlで時刻同期がアクティブであることを確認します。 - sudo アクセスを確認する — 本当に root が必要なアカウントだけを
sudoグループに追加します。 - ログを読む —
sudo journalctl -u sshで誰があなたのサーバーにアクセスしようとしたかが正確にわかります。
セキュリティ設定のフレームワークレベルのより深い見解については、OWASP Foundation が広く尊重されているハードニングおよびセキュリティガイダンスを公開しています。セットアップが成長するにつれて、ブックマークする価値があります。
10分で完了するチェックリストの概要
このまとめはすぐに参照できる場所に置いてください。これは VPS を保護するための一連の手順をチェックリスト形式にしたもので、新しいサーバーを立ち上げるたびに数分で繰り返すことができます:
- すべてのパッケージを更新し、カーネルが変更された場合は再起動します。
- 非 root ユーザーを作成し、
sudoグループに追加します。 - Ed25519 SSH キーを生成し、公開鍵をサーバーにコピーします。
- 別のターミナルで鍵ベースのログインが機能することを確認します。
sshd_configで root ログインとパスワード認証を無効にします。- オプションで SSH を非標準ポートに移動します。
- UFW を有効にし、受信をデフォルトで拒否し、使用するポートのみを許可します。
- ブルートフォース攻撃を自動的に禁止する fail2ban をインストールします。
- 無人セキュリティアップグレードを有効にします。
- 未使用のサービスを無効にし、リッスンしているサービスを確認します。
これらの手順はどれも単独では難しくありませんが、どれか1つでも省略すると明らかな隙間が残ります。これらをまとめて実行すると、日和見的な攻撃の大半を防ぐ強固なベースラインが形成されます。ここから、ニーズに応じて追加の対策を重ねることができます — TLS を備えたリバースプロキシ、侵入検知ツール、コンテナによるサービスごとの分離、プロバイダーのスナップショットに加えたサーバー外へのバックアップなどです。
ApexVPS がハードニングを補完する方法
上記のチェックリストはオペレーティングシステムを強化しますが、一部の脅威はその下に存在します。大規模な攻撃やハードウェア障害はインフラストラクチャ層で処理されます。ここでプロバイダーの重要性が高まります。すべての ApexVPS プランには、常時稼働の DDoS 保護 が含まれているため、トラフィックの洪水はファイアウォールに到達する前に吸収されます。さらに自動 バックアップ も含まれています — Starter Pro では毎日、Business および Enterprise では毎時のスナップショット — そのため、ミスや侵害が発生してもゼロから始める必要はありません。24時間体制の監視と、真に専用の CPU および RAM により、騒がしい隣人があなたの速度を低下させたり、問題を引き起こしたりすることはありません。
すべての保護内容はApexVPSの機能概要で確認でき、各プランの比較はVPSプランと料金ページで行えます。独自アプリを動かすためにサーバーを強化したい場合は、セルフホスティングVPSガイドがこのチェックリストとよく合います。サインアップはメールアドレスのみで、支払いはOxaPay経由の暗号通貨のみ対応しています。Bitcoin、Ethereum、USDTなど30以上のコインに対応し、クレジットカードや銀行口座は不要、KYCもありません。
よくある質問
新しいVPSを保護するために最初にすべきことは?
まずsudo apt update && sudo apt upgrade -yを使用してすべてのパッケージを更新し、その後、sudo権限を持つ非rootユーザーを作成してrootでログインするのをやめましょう。この2つの手順で、他の設定を行う前に最も一般的で最も深刻な攻撃経路を塞ぐことができます。
デフォルトのSSHポートを変更すべきですか?
任意です。SSHをポート22から移動すると、ログに記録される自動スキャンの量は減りますが、それだけでは実際のセキュリティにはなりません。鍵ベースの認証、ファイアウォール、fail2banが重要です。ポートを変更する場合は、SSHを再起動する前にUFWで新しいポートを開放して、ロックアウトされないようにしてください。
SSHキーを使用していてもファイアウォールは必要ですか?
はい。SSHキーはSSHサービスのみを保護します。UFWなどのファイアウォールは、マシンの他のすべてのポートを制御します。デフォルトで全ての受信トラフィックを拒否し、実際に使用するポートのみを許可することは、キーの有無に関わらず、VPSのセキュリティチェックリストの重要な部分です。
VPSでfail2banは必要ですか?
強く推奨します。パスワードログインを無効にしても、ボットはSSHポートを調べ続け、ログを散らかします。fail2banは繰り返し攻撃するものを自動的に追放し、ノイズを減らし、成功するブルートフォース攻撃のわずかな可能性を防ぎます。
ApexVPSにはDDoS保護とバックアップは含まれていますか?
はい。すべてのプランに常時DDoS保護と自動バックアップが含まれています。Starter Proでは毎日、BusinessおよびEnterpriseでは毎時間のスナップショットが作成され、24時間365日の監視も行われます。これらは、サーバー内部から保護できないインフラストラクチャ層をカバーすることで、OSの強化を補完します。