VPS(Ubuntu)を借りたばかりのとき、初期設定をサボると意外と早く不正アクセスに遭います。筆者が実際に Ubuntu 24.04 で確認したところ、デフォルトの sshd_config はパスワード認証が有効で、X11Forwarding yes という状態でした。この記事では、VPS を借りたらすぐ行うべきセキュリティ初期設定を、実際に Ubuntu 24.04 で動かした実コマンドの出力とともに解説します。
対象OS:Ubuntu 24.04.4 LTS(Noble Numbat)。Docker コンテナ(ubuntu:24.04 公式イメージ)で動作確認済み。
この記事のポイント
openssh-server 1:9.6p1-3ubuntu13.16の実sshd_configを確認――デフォルトは131行でコメントだらけ- Ubuntu 24.04 の
ufw 0.36.2-6とfail2ban 1.0.2-3ubuntu0.1のインストール手順を実ログで解説 - SSH鍵を ed25519 で生成し、パスワード認証を無効にするまでの順番が最重要
unattended-upgradesを入れるとセキュリティパッチが自動適用される- fail2ban の ban action が Ubuntu 24.04 から nftables に変更されている点は要注意
前提環境
この記事のコマンドは以下の環境で動作確認しています。
| 項目 | 内容 |
|---|---|
| OS | Ubuntu 24.04.4 LTS(Noble Numbat) |
| 検証環境 | Docker 公式イメージ ubuntu:24.04 |
| 対象 VPS | Vultr / DigitalOcean / ConoHa VPS などの Ubuntu イメージ |
| 確認日 | 2026-06-14 |
注意
本記事のコマンドは Ubuntu 24.04 LTS で検証しています。Ubuntu 22.04 では openssh-server のバージョンや sshd_config の項目が異なる場合があります。
セキュリティ関連パッケージのバージョン確認(実測)
まず、Ubuntu 24.04 でインストールできるセキュリティ関連パッケージのバージョンを apt-cache policy で確認します。Docker コンテナで実際に取得した結果です。

実測結果から、Ubuntu 24.04 LTS では以下のバージョンが利用できます。
ufw:
Installed: (none) Candidate: 0.36.2-6
fail2ban:
Installed: (none) Candidate: 1.0.2-3ubuntu0.1
openssh-server:
Installed: (none) Candidate: 1:9.6p1-3ubuntu13.16
unattended-upgrades:
Installed: (none) Candidate: 2.9.1+nmu4ubuntu1
いずれも VPS の初期イメージには入っていません(Installed: (none))。これから順番に設定していきます。
STEP 1:非rootユーザーを作成する
VPS を借りると最初は root でログインします。root のまま運用するのはリスクが高いため、まず sudo 権限を持つ一般ユーザーを作成し、root での SSH ログインを禁止します。
手順1:新規ユーザーを追加する
Adding user ‘ubuntu’ …
New password: (パスワードを入力)
Retype new password:
passwd: password updated successfully
$ usermod -aG sudo ubuntu
$ id ubuntu
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),27(sudo)
groups=1000(ubuntu),27(sudo) という出力が確認できれば、sudo グループへの追加は成功です。
STEP 2:SSH 鍵認証を設定する
パスワード認証のままだとブルートフォース攻撃にさらされます。ed25519 の鍵ペアを生成してパスワード認証を無効化するのが現代のベストプラクティスです。
手順2:ローカル PC で SSH 鍵ペアを生成する
以下は ローカル PC(Mac/Windows/WSL) で実行します。Ubuntu 24.04 の openssh-client 1:9.6p1-3ubuntu13.16 で動作確認済みです。

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
SHA256:9dZuZPVGUVrDHijR2hjYCnhN/KHyA/MmGXrf3oFRDNI ubuntu@your-vps
$ ssh -V
OpenSSH_9.6p1 Ubuntu-3ubuntu13.16, OpenSSL 3.0.13 30 Jan 2024
手順3:公開鍵をサーバーに転送する
ubuntu@your-server-ip’s password: (サーバーのパスワードを入力)
Number of key(s) added: 1
ssh-copy-id が使えない場合は、cat ~/.ssh/id_ed25519.pub の出力をサーバーの ~/.ssh/authorized_keys にコピーします。
手順4:sshd_config を変更してパスワード認証を無効化する
実際に Ubuntu 24.04 の openssh-server 9.6p1 をインストールして /etc/ssh/sshd_config を確認すると、デフォルトは 131行でほとんどがコメントアウトされた状態でした。

#Port 22
#PermitRootLogin prohibit-password
#MaxAuthTries 6
#PubkeyAuthentication yes
#PasswordAuthentication yes
X11Forwarding yes
$ sudo nano /etc/ssh/sshd_config
(以下の行を変更・追加する)
Port 2222
PermitRootLogin no
MaxAuthTries 3
PubkeyAuthentication yes
PasswordAuthentication no
X11Forwarding no
$ sudo systemctl restart ssh
(成功時は何も表示されない)
⚠️ 重要な順番
必ず SSH 鍵認証で接続できることを確認してから PasswordAuthentication no にしてください。確認前に設定すると締め出されます。ポートを変更した場合は UFW のルール追加も忘れずに。
実測した sshd_config の特記事項:デフォルトで #Port 22(コメント)でも 22番ポートで動作します。また、X11Forwarding yes はデフォルトで有効になっており、サーバー用途では不要なので no に変更することを推奨します。
STEP 3:UFW ファイアウォールを設定する
UFW(Uncomplicated Firewall)は Ubuntu 標準のファイアウォール管理ツールです。Ubuntu 24.04 では ufw 0.36.2-6 が利用できます(2026-06-14 実測)。

手順5:UFW をインストールして基本ルールを設定する
Setting up ufw (0.36.2-6) …
$ sudo ufw default deny incoming
Default incoming policy changed to ‘deny’
$ sudo ufw default allow outgoing
Default outgoing policy changed to ‘allow’
$ sudo ufw allow 2222/tcp comment ‘SSH’
Rules updated
$ sudo ufw allow 80/tcp comment ‘HTTP’
Rules updated
$ sudo ufw allow 443/tcp comment ‘HTTPS’
Rules updated
$ sudo ufw –force enable
Firewall is active and enabled on system startup
$ sudo ufw status verbose
Status: active
2222/tcp ALLOW IN Anywhere # SSH
80/tcp ALLOW IN Anywhere # HTTP
443/tcp ALLOW IN Anywhere # HTTPS
実測した UFW の実態:/etc/default/ufw の DEFAULT_INPUT_POLICY はデフォルトで DROP、DEFAULT_OUTPUT_POLICY は ACCEPT に設定されています。ufw enable する前に SSH ポートを開けておくことが絶対条件です。
注意:SSH ポートを変えた場合
SSH ポートを 2222 などに変更した場合は ufw allow 2222/tcp と設定してください。デフォルトの 22 番を使い続ける場合は ufw allow 22/tcp になります。
STEP 4:fail2ban でブルートフォース対策をする
fail2ban は認証失敗を監視して IP を自動 BAN するツールです。Ubuntu 24.04 では fail2ban 1.0.2-3ubuntu0.1 が利用できます。
Ubuntu 24.04 の fail2ban は nftables を使う
Ubuntu 22.04 以前は iptables でブロックしていましたが、Ubuntu 24.04 の fail2ban はデフォルトで nftables を ban action として使います。VPS プロバイダによっては nftables が使えない場合があるため、動作確認が必要です。
手順6:fail2ban をインストールして SSH 保護を有効にする
Setting up fail2ban (1.0.2-3ubuntu0.1) …
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
$ sudo nano /etc/fail2ban/jail.local
([sshd] セクションに以下を追記)
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
$ sudo systemctl enable –now fail2ban
Created symlink … → /usr/lib/systemd/system/fail2ban.service
$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter: Currently failed: 0 / Total failed: 0
`- Actions: Currently banned: 0 / Total banned: 0
実際のインストールログで確認した fail2ban.service の設定:Restart=on-failure で障害時に自動再起動、WantedBy=multi-user.target で起動時に自動開始されます。
STEP 5:自動セキュリティ更新を有効にする
VPS は常時稼働するため、セキュリティパッチを手動で当て続けるのは大変です。unattended-upgrades 2.9.1+nmu4ubuntu1(Ubuntu 24.04 実測値)を使うと、セキュリティアップデートのみを自動適用できます。
手順7:unattended-upgrades をインストールして有効化する
Setting up unattended-upgrades (2.9.1+nmu4ubuntu1) …
Created symlink … → /usr/lib/systemd/system/unattended-upgrades.service
$ sudo dpkg-reconfigure –priority=low unattended-upgrades
(対話UIで「Yes」を選択)
$ cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists “1”;
APT::Periodic::Unattended-Upgrade “1”;
実測では 20auto-upgrades に "1" が設定されており、毎日自動でパッケージリストを更新してセキュリティアップデートを適用します。また、systemd タイマー(apt-daily.timer / apt-daily-upgrade.timer)が自動更新をスケジュール管理します。
デフォルトの 50unattended-upgrades では、Ubuntu の Security リポジトリ(${distro_id}:${distro_codename}-security)と ESM(Extended Security Maintenance)が自動更新の対象になっています。
初期設定チェックリスト
設定完了後は、以下のチェックリストで確認してください。

| カテゴリ | 確認コマンド | 期待される出力 |
|---|---|---|
| UFW | sudo ufw status |
Status: active |
| fail2ban | sudo systemctl status fail2ban |
Active: active (running) |
| SSH 鍵認証 | sudo grep -i passwordauth /etc/ssh/sshd_config |
PasswordAuthentication no |
| root ログイン禁止 | sudo grep -i permitrootlogin /etc/ssh/sshd_config |
PermitRootLogin no |
| 自動更新 | cat /etc/apt/apt.conf.d/20auto-upgrades |
Unattended-Upgrade "1" |
よくあるエラーと解決策
①UFW enable 後に SSH 接続できなくなった
SSH ポートを UFW で開ける前に ufw enable してしまうと締め出されます。VPS コンソール(Vultr・DigitalOcean のWeb管理画面)から直接ログインして ufw allow <ポート>/tcp を追加してください。
②fail2ban が起動しない(nftables エラー)
Ubuntu 24.04 の fail2ban はデフォルトで nftables を使います。VPS によっては nft コマンドが利用できない場合があります。その際は /etc/fail2ban/jail.local に banaction = iptables-multiport を追加してください。
③ssh-copy-id が使えない(Windows)
Windows の PowerShell では ssh-copy-id が使えません。代わりに以下のコマンドで公開鍵をサーバーに追加できます。
まとめ
Ubuntu 24.04 LTS のVPS初期設定で実施すべきセキュリティ設定は5つです。
- 非rootユーザーの作成と sudo 権限付与(
adduser+usermod -aG sudo) - ed25519 SSH 鍵認証の設定とパスワード認証の無効化(
PasswordAuthentication no) - UFW ファイアウォールの設定(
ufw 0.36.2-6、SSH/HTTP/HTTPS のみ許可) - fail2ban によるブルートフォース対策(
1.0.2-3ubuntu0.1、nftables ベース) - unattended-upgrades による自動セキュリティ更新(
2.9.1+nmu4ubuntu1)
正直、これらを全部やるのは最初は手間に感じますが、一度設定しておくと以後の運用コストが大幅に下がります。特に SSH 鍵認証への移行は最優先で行ってください。
VPS の選び方が分からない場合は、 の「VPS比較ガイド」も参考にしてください。国内での遅延が小さいプロバイダや、初心者向けのサポートが充実したサービスをまとめています。


コメント