最初に行うセキュリティ設定(Ubuntu・Rocky Linux)

[更新: 2026年11月12日]

さくらのVPSでサーバーを作成した後に、最初に行っておきたいセキュリティ設定を、順に記載します。
各項目は、必要な手順に絞って説明しています。詳しい内容や、ほかのOSの手順は、それぞれの記事へのリンクからご確認ください。
本文書は、標準OSのUbuntu 24.04、Rocky Linux 10を対象としています。

警告

本文書では、多くのサーバーに共通する、基本的なセキュリティ設定のみを扱います。
利用するソフトウェアや用途によって、追加で必要な設定は異なります。VPSは管理者権限をお渡ししているサービスのため、記載内容は、お客様にてご確認のうえご利用ください。弊社でのサポートや保証は、いたしかねます。

事前情報

あらかじめ用意するもの

設定の順番

設定の順番には、意味があります。特に、SSHの設定の変更は、設定を誤ると、サーバーに接続できなくなることがあります。
本文書の順番どおりに、1項目ずつ設定し、そのたびに接続できることを確認してください。

順番

項目

目的

1

OSのアップデート

既知の脆弱性を解消する

2

管理ユーザーとsudo

rootユーザーを直接使わない

3

SSHの設定

不正なログインを防ぐ

4

通信の制限

必要な通信だけを許可する

5

設定の確認

設定が反映されていることを確認する

手順

Step1. OSをアップデートする

標準OSは、サーバーを作成した時点のパッケージバージョンで提供されています。最初に、OSのアップデートを実施してください。
アップデートの対象があるかは、次のコマンドで確認できます(Ubuntuの場合)。
Ubuntuの場合
$ sudo apt update
$ apt list --upgradable

アップデートは、次のコマンドで実施します。

Ubuntuの場合
$ sudo apt update
$ sudo apt upgrade
Rocky Linuxの場合
$ sudo dnf update

アップデートを適用するために、最後に再起動してください。

$ sudo reboot
アップデートは、初回だけでなく、継続して実施する必要があります。定期的に、アップデートがないかを確認してください。
OSの標準の仕組みで、セキュリティアップデートを自動で適用することもできます。Ubuntuでは unattended-upgrades が、Rocky Linuxでは dnf-automatic が、その仕組みです。自動で適用する場合も、適用の結果は、お客様にてご確認ください。

詳しい手順は システムのアップデート方法 をご参照ください。

Step2. 管理ユーザーとsudoを確認する

標準OSでは、rootユーザーでは直接ログインしません。管理目的のユーザー(Ubuntuは ubuntu 、Rocky Linuxは rocky )でログインし、管理者権限が必要な操作には、コマンドの前に sudo を付けて実行します。
日常の作業は、このユーザーなど、一般ユーザーで行い、rootユーザーでの操作は、必要なときだけにしてください。

追加で一般ユーザーを作る場合や、 sudo の設定を変更する場合は、次の記事をご参照ください。

Step3. SSHの設定を行う

SSHの設定では、次の2点を行います。

  • rootユーザーでのSSHログインを禁止する

  • パスワードでのログインを禁止し、公開鍵認証に限定する

警告

設定を誤ると、サーバーに接続できなくなります。次の点を守ってください。
・設定を変更する前に、公開鍵認証で接続できることを、別の端末(ウィンドウ)で確認する
・設定を変更している間は、現在のSSHの接続を、切らずに開いたままにする
・設定を適用した後、新しい接続でログインできることを確認してから、元の接続を閉じる

接続できなくなった場合は、コントロールパネルのVNCコンソールからログインして、設定を元に戻してください( ログインできない・管理者パスワードが分からない場合の対応 )。

公開鍵認証の準備

パスワードのログインを禁止する前に、公開鍵認証でログインできる状態にしておく必要があります。
OSのインストール時に、公開鍵を登録している場合は、すでに公開鍵認証でログインできます。

公開鍵の作成や登録の方法は、次の記事をご参照ください。

設定ファイルを作成する

SSHサーバーの設定は、 /etc/ssh/sshd_config.d/ の下に、設定ファイルを追加して変更します。 /etc/ssh/sshd_config を直接書き換えるより、元の設定を残せるため、設定を元に戻しやすくなります。
ファイル名は、 00-security.conf のように、数字の小さい名前にしてください。

Note

SSHサーバーは、設定ファイルを名前の順(数字・アルファベット順)に読み込み、同じ項目は、最初に読み込んだ指定が有効になります。
ほかの設定ファイルに、同じ項目の指定があった場合、名前の順で後ろになる 99-custom.conf のようなファイル名では、設定が無視されることがあります。
$ sudoedit /etc/ssh/sshd_config.d/00-security.conf

ファイルには、次の内容を記載します。

/etc/ssh/sshd_config.d/00-security.conf
PermitRootLogin no
PasswordAuthentication no

設定

内容

PermitRootLogin no

rootユーザーでのSSHログインを禁止する

PasswordAuthentication no

パスワードでのログインを禁止する(公開鍵認証のみ)

設定を適用する

まず、設定ファイルの文法に誤りがないかを確認します。何も表示されなければ、誤りはありません。

$ sudo sshd -t

次のコマンドで、SSHサーバーを再起動して、設定を適用します。サービス名が、OSによって異なります。

Ubuntuの場合
$ sudo systemctl restart ssh
Rocky Linuxの場合
$ sudo systemctl restart sshd
通常、再起動しても、現在のSSHの接続は切断されません。
別の端末(ウィンドウ)から、新しく接続し、公開鍵認証でログインできることを確認してください。

詳しい内容と、ほかのOSでの手順は、 サーバー作成直後に設定しておくべき初期セキュリティ設定 をご参照ください。

Step4. 通信を制限する

外部から、サーバーに届く通信は、2つの仕組みで制限できます。
公開しないポートは、許可しないことが基本です。

パケットフィルター

OS内のファイアウォール

設定する場所

コントロールパネル

サーバーの中(コマンド)

制限のタイミング

サーバーに届く前

サーバーに届いた後

Ubuntuでの機能

共通

ufw

Rocky Linuxでの機能

共通

firewalld

標準OSでは、OS内のファイアウォールは、初期状態で有効になっていません。まずは、パケットフィルターで、使うポートだけを許可してください。

OS内のファイアウォールも有効にする場合は、有効にする前に、SSH(22番ポート)を許可してください。許可せずに有効にすると、SSHで接続できなくなります。

Step5. 設定を確認する

次のコマンドで、設定が反映されていることを確認します。

SSHの設定
$ sudo sshd -T | grep -E "^(permitrootlogin|passwordauthentication) "
permitrootlogin no
passwordauthentication no
次のとおり表示されれば、設定は反映されています。
yes や without-password と表示された場合は、ほかの設定ファイルの指定が優先されている可能性があります。設定ファイルの名前が、他のファイルより先に読み込まれる名前か、確認してください。
待ち受けているポートの確認
$ sudo ss -tlnp
外部に公開する必要のないサービスが、待ち受けていないかを確認します。
0.0.0.0 や [::] で待ち受けているポートは、外部から接続できる可能性があります。

OS内のファイアウォールを有効にした場合は、設定の状態も確認します。

Ubuntuの場合
$ sudo ufw status
Rocky Linuxの場合
$ sudo firewall-cmd --list-all

チェックリスト

次の項目を確認してください。

  • OSのアップデートを実施した(以降も、定期的に実施する)

  • 日常の作業は、管理ユーザーなど、一般ユーザーで行っている

  • rootユーザーでのSSHログインを禁止した( permitrootlogin no )

  • パスワードでのSSHログインを禁止し、公開鍵認証に限定した( passwordauthentication no )

  • 新しい接続で、公開鍵認証でログインできることを確認した

  • パケットフィルターで、使うポートだけを許可している

  • OS内のファイアウォールを有効にした場合は、SSH(22番ポート)を許可している

  • 秘密鍵を、安全な場所に保管している