2026年7月26日
2026年7月26日
さくらのVPS(Ubuntu 24.04)の初期設定:更新・鍵認証・パケットフィルター・UFW
さくらのVPSで標準OSの Ubuntu を入れた直後に、最低限やっておきたい設定を順に説明します。内容は2026年11月時点のさくらのVPSマニュアルと Ubuntu 24.04 で確認しています。標準OSでは Ubuntu 22.04 / 24.04 / 26.04 が選べ、手順は 22.04 以降でほぼ共通です。
最初に知っておくこと(さくらのVPSの Ubuntu の仕様)
さくらのVPSマニュアルの「Ubuntu 24.04」のページによると、標準OSの Ubuntu は次のようになっています。
| 項目 | 内容 |
|---|---|
| ログインユーザー | ubuntu(root では SSH ログインできない) |
| パスワード | 申し込み時・OS再インストール時に自分で設定したもの |
| タイムゾーン | Asia/Tokyo |
| ロケール | C.UTF-8 |
| スワップ | なし |
| SSH | systemd のソケット起動(ssh.socket)で待ち受け |
root の作業は、ubuntu ユーザーでログインして sudo を付けて行います。
手順1:SSHでログインする
コントロールパネルに表示される IPアドレス(またはサーバーのホスト名)に、ubuntu ユーザーで接続します。
ssh ubuntu@203.0.113.10
Windows 10/11 でも、PowerShell やターミナルから同じコマンドで接続できます。
手順2:パッケージを最新にする
sudo apt update
sudo apt upgrade -y
カーネルなどが更新されて再起動が必要な場合は、/var/run/reboot-required というファイルが作られます。あれば再起動します。
ls /var/run/reboot-required && sudo reboot
更新は最初の1回だけでなく、定期的に行ってください。
手順3:作業用のユーザーを作る(任意)
ubuntu ユーザーをそのまま使ってもかまいません。自分の名前のユーザーで作業したい場合は、作成して sudo グループに入れます。
sudo adduser taro
sudo usermod -aG sudo taro
adduser の途中でパスワードを聞かれるので、ここで設定します(別途 passwd を実行する必要はありません)。ホームディレクトリの所有者も自動で設定されます。
新しいユーザーで SSH ログインし、sudo whoami が root を返すことを確認してから次へ進みます。
手順4:SSHを鍵認証だけにする
パスワードでのログインを許したままだと、総当たり攻撃の対象になります。鍵認証に切り替えます。
鍵を作って登録する
手元のPCで鍵を作り、サーバーに登録します(Windows で ssh-copy-id が無い場合の方法は SSHキーの安全な管理方法 を参照してください)。
ssh-keygen -t ed25519
ssh-copy-id ubuntu@203.0.113.10
ssh ubuntu@203.0.113.10 # パスワードを聞かれずに入れれば登録できている
パスワード認証を止める
今の SSH 接続は切らずに残して作業します。設定を誤っても、残した接続から直せます。さくらのVPSではコントロールパネルのコンソールからも操作できます。
Ubuntu の sshd は、/etc/ssh/sshd_config の先頭で /etc/ssh/sshd_config.d/*.conf を読み込み、同じ項目は最初に読まれた値が有効になります。そのため、sshd_config の末尾に追記しても効かないことがあります。設定は sshd_config.d に、既存のファイルより名前順で前に来るファイル名で書きます。
ls /etc/ssh/sshd_config.d/
sudoedit /etc/ssh/sshd_config.d/01-hardening.conf
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
文法と、実際に有効になる値を確認してから再起動します。Ubuntu のサービス名は ssh です(sshd ではありません)。
sudo sshd -t
sudo sshd -T | grep -Ei 'passwordauthentication|kbdinteractive|permitrootlogin'
sudo systemctl restart ssh
別のターミナルから、鍵を使わない接続が拒否されることを確かめます。
ssh -o PubkeyAuthentication=no ubuntu@203.0.113.10
# Permission denied (publickey). と表示されれば成功
SSH のポート番号の変更は、Ubuntu 24.04 ではソケット起動のため ssh.socket 側の設定が必要になり、さくらのVPSのパケットフィルターでも新しいポートを許可し直す必要があります。マニュアルでも、ポート変更はスキャンで見つかるため本質的な対策ではないとしています。まずは鍵認証だけにすることを優先してください。
手順5:ファイアウォールを決める(パケットフィルターかUFWか)
さくらのVPSには、サーバーの外側で通信を絞る「パケットフィルター」(コントロールパネルで設定)があります。サーバーの中では UFW(Ubuntu のファイアウォール)も使えます。
| 方法 | 設定場所 | 特徴 |
|---|---|---|
| パケットフィルター | コントロールパネル | サーバーに届く前に遮断。新規作成時は SSH だけ許可された状態。IPv4 のみが対象 |
| UFW | サーバー内(コマンド) | ポートや接続元を細かく指定できる。設定ファイルで管理できる |
両方で絞ると、つながらないときにどちらで止まっているかを調べる手間が増えます。マニュアルでも、OS 側のファイアウォールを使う場合はパケットフィルターを使わない設定にする案内があります。どちらか一方を主に使うと決めておくと管理が楽です。
パケットフィルターで管理する場合
Webサイトを公開するなら、コントロールパネルでそのサーバーのパケットフィルター設定を開き、SSH に加えて「Web」(TCP 80/443)を追加します。追加しないと、サーバー内で Web サーバーを動かしても外から表示できません。
UFW で管理する場合
SSH を許可してから有効化します。順番を逆にすると、その場で接続が切れます。
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
ufw enable で「既存の SSH 接続が切れる可能性がある」と確認されたら y を入力します。OpenSSH を許可済みなら接続は維持されます。
UFW の設定の詳細は UFWでファイアウォールを設定する方法 を参照してください。
手順6:fail2ban を入れる(任意)
fail2ban は、ログイン失敗を繰り返す接続元を一定時間遮断するソフトです。鍵認証だけにしていれば侵入の危険は大きく下がりますが、ログの量や不要な接続を減らせます。
sudo apt install -y fail2ban
sudo fail2ban-client status sshd
Ubuntu 24.04 のパッケージは、/etc/fail2ban/jail.d/defaults-debian.conf で SSH の監視([sshd] の jail)が有効になった状態で入ります。上のコマンドで Currently banned などの状態が表示されれば動いています。遮断回数や時間を変えたいときは、/etc/fail2ban/jail.local を作って上書きします(jail.conf は直接編集しない)。
手順7:必要に応じて行う設定
- 日本語表示: 初期は C.UTF-8 のため、メッセージは英語です。日本語にしたい場合は
language-pack-jaを入れてlocalectl set-localeでロケールを変えます。 - スワップ: 初期状態ではスワップがありません。メモリの小さいプランで WordPress や MySQL を動かすなら、スワップファイルの作成を検討してください。
- 自動更新: Ubuntu の
unattended-upgradesパッケージを使うと、セキュリティ更新を自動で適用できます。入っているかはsystemctl status unattended-upgradesで確認し、無ければsudo apt install unattended-upgradesで入れます。
初期設定のチェックリスト
sudo apt update && sudo apt upgradeを実行し、必要なら再起動した- 鍵でログインでき、
ssh -o PubkeyAuthentication=noでは拒否される sshd -Tでpasswordauthentication noを確認した- パケットフィルターか UFW のどちらで管理するか決め、SSH と(公開するなら)80/443 を許可した
- fail2ban を使う場合は
fail2ban-client status sshdで動作を確認した
この状態にしてから、Web サーバーや WordPress のインストールに進みます。SSH の設定全般は SSHのセキュリティ設定 も参考にしてください。