NordBastion のホッキョクグマのマスコットが Nordic の石の鍛冶場で、金床の上の小型サーバータワーに装甲板と真鍮の南京錠を溶接し、シアンの保護グリフがその土台を包み、琥珀色の炉の光と溶接の火花が散っている
方法 · チェックリスト·読了10分 · 実践60分

VPS 堅牢化——最初の1時間の OPSEC チェックリスト。
八つのステップ。すべての新規サーバーでこれを実行します。

新しい VPS にワークロードを乗せる前の普遍的な事前ローンチチェックリスト。 SSH キーのみ、カスタムポート、ファイアウォール、自動更新、fail2ban、スナップショット、文書化された回復。Debian 12 / Ubuntu 22-24 / Alpine でテスト済み。

8つのステップ
  1. 01

    SSH key auth

  2. 02

    Disable root + change port

  3. 03

    Firewall baseline

  4. 04

    Unattended-upgrades

  5. 05

    Fail2ban

  6. 06

    Time + swap

  7. 07

    Baseline snapshot

  8. 08

    Recovery doc

ステップ01-02 · SSH

パスワードではなく鍵。22番ポートではなく、カスタムポート。

ラップトップで ed25519 鍵ペアを生成します(より小さく、高速で、モダン):

ssh-keygen -t ed25519 -C "you@laptop"
ssh-copy-id -p 22 root@<vps-ip>
ssh root@<vps-ip>     # should now work without password

VPS 上で /etc/ssh/sshd_config を編集します:

Port 54871                  # pick a random number 1024-65535
PermitRootLogin no          # use a non-root user with sudo
PasswordAuthentication no   # keys only
PubkeyAuthentication yes

まず非 root の sudo ユーザーを作成します(adduser bear; usermod -aG sudo bear; ssh-copy-id -p 22 bear@vps)。ログインをテストし、その後 sshd を再起動します:systemctl restart sshd。ロックアウトされた場合、パネルコンソールが SSH なしでシェルアクセスを提供します。

ステップ03 · ファイアウォール

デフォルトでインバウンドを拒否。必要なものをアローリストに追加します。

apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 54871/tcp      # custom SSH port
ufw allow 80/tcp         # if running a web service
ufw allow 443/tcp        # if running TLS
ufw enable
ufw status verbose

パネル経由で NordBastion のバスティオンレベルのファイアウォールに同じルールセットを複製します(Networking → Firewall)。バスティオンファイアウォールはパケットが VPS に到達する前にブロックし、ボリューム型スキャンの CPU を節約します。多層防御。

ステップ04-05 · 自動更新 + fail2ban

2つのパッケージ、5分、実際の効果。

apt install -y unattended-upgrades fail2ban
dpkg-reconfigure -plow unattended-upgrades   # accept defaults
systemctl enable --now fail2ban
fail2ban-client status                       # shows sshd jail

unattended-upgrades はセキュリティパッチを自動的に適用し、fail2ban は10分以内に5回の認証失敗を起こした IP を1時間禁止します。どちらもベースラインのユースケースでは追加設定不要——どちらもすべての人に機能する積極的なデフォルト設定です。

ステップ06 · タイム + スワップ

タイムゾーンを UTC に設定します。swapfile を追加します。

timedatectl set-timezone UTC

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile none swap sw 0 0" >> /etc/fstab
free -h                                       # confirm swap is active

サーバーの UTC 設定により、あらゆるタイムゾーンのバスティオンとクライアント間のログの相関が簡素化されます。2-4 GB の swapfile は OOM キルスパイクから保護します。小規模ティアでは重要で、大規模ティアでは安価な保険です。

ステップ07-08 · スナップショット + リカバリードキュメント

クリーンな状態をキャプチャします。回復経路を書き留めます。

スナップショット。 パネルで:サーバー → あなたのサーバー → スナップショット → 作成。baseline-hardened-YYYY-MM-DD という名前をつけます。NordBastion のスナップショットはオフホスト、暗号化されており、数秒で完了します。約90秒で復元できます — アップグレードが失敗した最初の時に、将来の自分が感謝するでしょう。

リカバリードキュメント。 紙またはパスワードマネージャーに書き留めてください:

  • NordBastion アカウントのメール + (パスワードニーモニック、パスワード自体ではない)
  • ラップトップ上の SSH 秘密鍵の場所
  • カスタム SSH ポート番号
  • VPS 上の root 以外の sudo ユーザー名
  • 復元するベースラインスナップショットの名前
  • 注意:「パネルコンソールは SSH なしで動作します — ロックアウト時の回復に使用してください」

OPSEC とは、今日書き留めることで、現在の自分が忘れたときに将来の自分が回復できるようにする規律です。ドキュメントが完成したとき、鍛造は終わります。

FAQ · ハードニング

質問、回答済み。

チェックリストを実行しながら初めての VPS 顧客が尋ねる八つの質問。

SSH キー認証は強いパスワードより実際に安全ですか?

はい、断然そうです。パスワード——16文字のランダムなものでも——は一部の現実的な脅威モデルで総当たり攻撃が可能です。ed25519 SSH キーは256ビットのエントロピーを持ち、不可能です。キーはそれが存在するデバイスにも紐付けられているため、攻撃者はキーファイルとそれを復号するパスフレーズの両方が必要です。sshd_config で PasswordAuthentication を完全に無効にすると、総当たり攻撃の表面積はゼロになります。

SSH ポートを22からランダムなポートに変更することは本当に役立ちますか?

決意した攻撃者を止めることはできません — 65,535 のすべてのポートをスキャンします。ただし、ポート22のみを試すボットからの自動ノイズの量を減らします。これはよりクリーンなログと低ストレスの fail2ban を意味します。1024〜65535 のランダムなポートを選択し、紛失しない場所に書き留め、ファイアウォールを更新して許可します。正味の利点:ログノイズが約90%減少。

UFW か nftables か——どちらですか?

UFW は学習者または単一 VPS を実行する人向け——フレンドリーなラッパーで、構文が人間に読みやすく、内部では iptables または nftables の上に位置します。より厳格なルール構成、匿名セット、または複数のサーバーを実行して一貫性を求める場合は nftables を直接使用します。どちらもカーネルレベルで同じ結果を生みます。

カーネルにも unattended-upgrades を実行すべきか?

セキュリティパッチは適用すべきです——重大な CVE を修正し、しない選択肢はそれらを放置することになります。フルカーネルパッケージのアップグレードは再起動が必要なためリスクが高く、unattended-upgrades はデフォルトで自動再起動しません。/etc/apt/apt.conf.d/50unattended-upgrades を読んで判断してください。ほとんどの NordBastion 顧客は unattended 設定を「セキュリティのみ」に保ち、静かな時間帯に月次で手動再起動しています。

すでにパスワード認証を無効にしている場合、fail2ban は必要ですか?

厳密には必須ではありません——パスワード認証をオフにすれば SSH へのブルートフォースは成功しません。Fail2ban は他のサービス(メール、ウェブアプリのログインページ、認証レイヤーを持つもの)で引き続き有用です。安価な保険として:apt install fail2ban、デフォルトを受け入れ、次へ進みます。インストールに要する30秒は、クリーンなログと追加のサービス保護の価値があります。

完全ディスク暗号化についてはどうですか?

最初の1時間には含まれません——ユーザー保持鍵による完全ディスク暗号化には、カスタム ISO インストール(誰かがパスフレーズを入力して起動時に LUKS をマウントする)または近日公開予定の NordBastion LUKS オンプロビジョニングオプション(パネルロードマップ)が必要です。今のところ、ディスクは NordBastion によって読み取り可能(召喚状の万一の場合)として扱い、NordBastion の管轄上の保護を安全を守る層として扱ってください。脅威モデルが起動前に FDE を必要とする場合は、レスキュー ISO から Debian を LUKS ルートボリュームにインストールし、起動のたびにパネルコンソールでアンロックしてください——実現可能ですが、運用負担に大きな変化が生じます。

スナップショットはどのくらいの頻度で取得すべきですか?

3つの有用なタイミング。(1)意味のある変更(パッケージアップグレード、設定編集、OS アップグレード)の前。(2)スケジュールに従って——週1回がどの本番ワークロードにも合理的なデフォルトです。(3)バックアップ検証訓練の前——復元が機能することを証明するために。NordBastion のスナップショットはオフホストで暗号化されており、VPS ディスクを消費せず約90秒で復元できます。

VPS を監視すべきか、どのように?

最初の1時間では:まだです — ハードニングを完了させ、ワークロードを稼働させてから、監視する価値のあるものができたら監視を追加します。軽量なオプション:二台目の小型 VPS に node_exporter + Prometheus + Grafana、シングルバイナリのセルフホスト型ダッシュボードとして Netdata、またはさらにシンプルに、パブリックポートに ping する無料ティアの外部稼働確認チェッカー(UptimeRobot、BetterStack)。一つを選択して設定し、忘れましょう — 監視は黙っているときが最も有用です。

次へ

サーバーは堅牢化されました。次は何かを構築してください。

最終レビュー · 2026-05-20 · テスト済み · Debian 12 · Ubuntu 22.04 / 24.04 · Alpine 3.19+