VPSのセキュリティ設定をしようとしても「肝心のコマンドがわからない」という方は多いですよね。
別記事「VPSの初期設定でやるべきセキュリティ対策17選」では、何をなぜやるかを解説しました。この記事はその実行編です。Ubuntu・Debian・CentOS系(Rocky Linux / AlmaLinux含む)の3つのOSに対応した、コピペで使えるコマンドを17項目すべて掲載しています。
- VPSセキュリティ設定17項目の実行コマンド(OS別)
- Ubuntu / Debian / CentOS系に対応したコマンド比較
- 最短1時間で終わる「最低限4項目」の具体手順
- 初心者がはまりやすいコマンドミスと注意点
対象OSは以下の3系統です。この記事全体を通じて、各コマンドをOS別に整理しています。
| OS系統 | 代表的なOS | パッケージ管理 |
|---|---|---|
| Ubuntu系 | Ubuntu 22.04 / 24.04 | apt |
| Debian系 | Debian 11 / 12 | apt |
| CentOS系 | Rocky Linux / AlmaLinux / CentOS | dnf |

【結論】最短1時間でやるなら「この5項目」だけ
すべてを一度に実施する必要はありません。時間がない場合は、まずこの5項目を優先してください。これだけで実用レベルのセキュリティを確保できます。
- ① rootログイン禁止(乗っ取りリスクを即排除)
- ④ SSH鍵認証の設定(総当たり攻撃を無力化)
- ⑤ パスワード認証の無効化(鍵認証と必ずセットで)
- ⑥ ファイアウォール設定(不要な通信を全遮断)
- ⑧ OS・パッケージの定期更新(脆弱性のある古いソフトを排除)
目次|17項目コマンド一覧
【SSH・ログイン系】超重要5項目
①〜⑤はVPS運用の大前提です。この5項目だけでパスワード総当たり攻撃・root直接乗っ取りの大部分を防げます。必ず最初に実施してください。
① rootログイン禁止
rootへの直接ログインを禁止します。1回突破されただけでサーバーが完全に制御されるため、最優先で設定してください。
手順1:設定ファイルを開く
| OS | コマンド |
|---|---|
| Ubuntu / Debian | sudo nano /etc/ssh/sshd_config |
| CentOS系 | sudo vi /etc/ssh/sshd_config |
手順2:以下の設定を追記・変更する(OS共通)
PermitRootLogin no
手順3:SSHサービスを再起動する
| OS | コマンド |
|---|---|
| Ubuntu / Debian | sudo systemctl restart ssh |
| CentOS系 | sudo systemctl restart sshd |
② 一般ユーザー作成 + sudo権限付与
①とセットで実施します。一般ユーザーを作成し、必要なときだけsudoで管理操作を行う運用に切り替えます。
| OS | ユーザー作成 | sudo権限付与 |
|---|---|---|
| Ubuntu / Debian | adduser username | usermod -aG sudo username |
| CentOS系 | adduser usernamepasswd username | usermod -aG wheel username |
③ SSHポート変更(22番 → 任意の番号)
SSHのデフォルトポートは22番です。自動スキャンボットのほとんどが22番を狙うため、変更するだけで不正ログイン試行数が大幅に減ります。
sshd_configを開き(①と同じファイル)、以下を設定します。
Port 2222
その後、SSHサービスを再起動します(①の再起動コマンドと同じ)。
ファイアウォール設定(⑥)の前にポート変更すると、自分がサーバーにアクセスできなくなります。ポート変更後は、必ずファイアウォールで変更後のポートを開放してから古い22番を閉じてください。
④ SSH鍵認証の設定
パスワード認証は辞書攻撃・総当たり攻撃で突破されるリスクがあります。SSH鍵認証に切り替えることで、セキュリティ強度が桁違いに上がります。
手順1:ローカル端末で鍵ペアを生成する(OS共通)
ssh-keygen -t ed25519
手順2:公開鍵をVPSにコピーする(OS共通)
ssh-copy-id -p 2222 username@サーバーのIPアドレス
⑤ パスワード認証の無効化
④SSH鍵認証の設定完了後、必ずセットで実施します。鍵認証だけ設定してパスワード認証を残していると、パスワードへの攻撃経路が残り続けます。
sshd_configを開き(①と同じファイル)、以下を設定します。
PasswordAuthentication no
その後、SSHサービスを再起動します(①の再起動コマンドと同じ)。
④の鍵認証が正常に動作していることを確認してから実施してください。確認前にパスワード認証を無効化すると、SSH接続が完全にできなくなる可能性があります。設定後は別のターミナルウィンドウで接続テストを行い、既存の接続を切る前に動作確認するのが鉄則です。
【ネットワーク・基本防御】重要5項目
⑥〜⑩はネットワーク層での防御です。特にファイアウォール(⑥)はSSH設定と同じくらい重要です。
⑥ ファイアウォール設定
Ubuntu / DebianはUFW、CentOS系はfirewalldを使います。SSH・HTTP・HTTPSの3ポートを開放し、それ以外を原則遮断します。
Ubuntu / Debian
sudo apt install ufw -y
sudo ufw allow 2222
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
CentOS系
sudo dnf install firewalld -y
sudo systemctl enable –now firewalld
sudo firewall-cmd –permanent –add-port=2222/tcp
sudo firewall-cmd –permanent –add-service=http
sudo firewall-cmd –permanent –add-service=https
sudo firewall-cmd –reload
⑦ 不要ポートの閉鎖
FTP(21番)・SMTP(25番)など、使用しないポートは明示的に閉じておきます。
Ubuntu / Debian
sudo ufw deny 21
sudo ufw deny 25
CentOS系
sudo firewall-cmd –permanent –remove-service=ftp
sudo firewall-cmd –reload
⑧ OSアップデート
既知の脆弱性を修正する最もシンプルで効果的な対策です。VPS起動後に必ず実施し、その後も定期的に行います。
| OS | コマンド |
|---|---|
| Ubuntu / Debian | sudo apt update && sudo apt upgrade -y |
| CentOS系 | sudo dnf update -y |
⑨ 不要サービスの停止
使っていないサービスが動いていると、それ自体が攻撃対象になります。稼働中のサービスを確認し、不要なものは停止・無効化します。
稼働中のサービスを一覧表示する(OS共通)
systemctl list-unit-files –type=service –state=enabled
不要なサービスを停止・無効化する(OS共通)
sudo systemctl stop サービス名
sudo systemctl disable サービス名
⑩ パスワードポリシーの設定
SSH鍵認証を設定していても、sudoパスワードなど残るパスワードは強力にしておく必要があります。
| OS | コマンド |
|---|---|
| Ubuntu / Debian | sudo nano /etc/login.defs |
| CentOS系 | sudo vi /etc/login.defs |
以下の設定を追記・変更します(OS共通)。
PASS_MIN_LEN 12
【攻撃対策】強化4項目
⑪ fail2ban の導入
一定回数ログインに失敗したIPアドレスを自動でブロックするツールです。導入後、攻撃ログが激減します。
インストール
| OS | コマンド |
|---|---|
| Ubuntu / Debian | sudo apt install fail2ban -y |
| CentOS系 | sudo dnf install fail2ban -y |
設定ファイルを作成する(OS共通)
sudo nano /etc/fail2ban/jail.local
以下の内容を記述する(OS共通)
[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600
fail2banを再起動する(OS共通)
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
⑫ ログイン試行回数の制限
SSHへの1セッションあたりの認証試行回数を制限します。③と同じsshd_configに追記します。
MaxAuthTries 3
変更後は①と同じ手順でSSHサービスを再起動します。
⑬ 認証ログの監視
ログをリアルタイムで確認することで、不正アクセスの兆候を早期に発見できます。
| OS | ログ確認コマンド |
|---|---|
| Ubuntu / Debian | sudo tail -f /var/log/auth.log |
| CentOS系 | sudo tail -f /var/log/secure |
fail2banによるBANの状況を確認したい場合は以下を使います(OS共通)。
sudo fail2ban-client status sshd
⑭ セキュリティアップデートの自動化
セキュリティパッチを自動的に適用する設定です。複数台のVPSを管理している場合や手動更新を忘れがちな方に特に有効です。
Ubuntu / Debian
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure unattended-upgrades
CentOS系
sudo dnf install dnf-automatic -y
sudo systemctl enable –now dnf-automatic.timer
【運用・保守】継続対策3項目
⑮ バックアップ
バックアップはコマンドではなく、各VPSサービスの管理画面から設定するのが最も確実です。
| サービス | バックアップ方法 | 費用目安 |
|---|---|---|
| ConoHa VPS
| 管理画面からスナップショット設定 | 数百円/月〜 |
| Xserver VPS | 自動バックアップ機能あり | 無料 |
| さくらのVPS | バックアップオプション | 月額2,420円〜 |
VPSは「壊れる前提」で運用するのが鉄則です。スナップショットは不要になったものをこまめに削除しないと課金が増え続けます。定期的に整理する習慣をつけましょう。
⑯ HTTPS(SSL)設定
Webサーバーを公開する場合は、Let’s Encryptを使った無料SSL証明書を必ず設定します。HTTP(非暗号化)のまま公開するのはセキュリティ上問題があるだけでなく、SEOにも悪影響を与えます。
| OS | インストールコマンド |
|---|---|
| Ubuntu / Debian | sudo apt install certbot python3-certbot-nginx -y |
| CentOS系 | sudo dnf install certbot python3-certbot-nginx -y |
証明書の取得・自動設定(OS共通)
sudo certbot –nginx
⑰ 2段階認証(TOTP)の導入
SSH鍵認証に加えてTOTP(時間ベースのワンタイムパスワード)を組み合わせる設定です。鍵が万が一漏洩しても第2の認証が壁になり、乗っ取りリスクを大幅に低減できます。
インストール
| OS | コマンド |
|---|---|
| Ubuntu / Debian | sudo apt install libpam-google-authenticator -y |
| CentOS系 | sudo dnf install google-authenticator -y |
初期設定・PAM連携(OS共通)
google-authenticator
sudo nano /etc/pam.d/sshd
開いたファイルに以下を追記します。
auth required pam_google_authenticator.so
17項目のコマンド早見表|OS別まとめ
全17項目をOS別に一覧化しました。設定作業の際の確認用にお使いください。
| # | 項目 | Ubuntu / Debian | CentOS系 | 優先度 |
|---|---|---|---|---|
| ① | rootログイン禁止 | nano /etc/ssh/sshd_config | vi /etc/ssh/sshd_config | 最高 |
| ② | 一般ユーザー作成 | adduser / usermod -aG sudo | adduser / usermod -aG wheel | 最高 |
| ③ | SSHポート変更 | sshd_config → Port 2222 | 高 | |
| ④ | SSH鍵認証 | ssh-keygen -t ed25519 / ssh-copy-id | 最高 | |
| ⑤ | パスワード認証無効化 | sshd_config → PasswordAuthentication no | 最高 | |
| ⑥ | ファイアウォール | ufw allow / ufw enable | firewall-cmd --add-port | 最高 |
| ⑦ | 不要ポート閉鎖 | ufw deny 21 / 25 | firewall-cmd --remove-service | 中 |
| ⑧ | OSアップデート | apt update && apt upgrade -y | dnf update -y | 最高 |
| ⑨ | 不要サービス停止 | systemctl stop / disable | 中 | |
| ⑩ | パスワードポリシー | nano /etc/login.defs | vi /etc/login.defs | 中 |
| ⑪ | fail2ban | apt install fail2ban | dnf install fail2ban | 高 |
| ⑫ | 試行回数制限 | sshd_config → MaxAuthTries 3 | 中 | |
| ⑬ | ログ監視 | tail -f /var/log/auth.log | tail -f /var/log/secure | 中 |
| ⑭ | 自動アップデート | apt install unattended-upgrades | dnf install dnf-automatic | 中 |
| ⑮ | バックアップ | 管理画面から設定 | 高 | |
| ⑯ | HTTPS(SSL) | apt install certbot | dnf install certbot | 高 |
| ⑰ | 2段階認証 | apt install libpam-google-authenticator | dnf install google-authenticator | 低〜中 |
作業の進め方|優先順位別ロードマップ
17項目をすべて一度にやる必要はありません。用途に合わせて段階的に進めることをおすすめします。
①rootログイン禁止・②一般ユーザー作成・④SSH鍵認証・⑤パスワード認証無効化・⑥ファイアウォールの5項目。これだけで大多数の攻撃を防げます。学習・検証用VPSでも必ず実施してください。
⑧OSアップデート・⑪fail2ban・③SSHポート変更・⑮バックアップを追加。個人開発・ポートフォリオ公開を予定している場合はここまで対応しましょう。
⑭自動アップデート・⑬ログ監視・⑯HTTPS・⑰2段階認証まで設定することで、本格的な運用に耐えられるセキュリティレベルを実現できます。
よくある質問(FAQ)
- コマンドを実行する前にスナップショットは必要ですか?
-
はじめてセキュリティ設定を行う場合は、初期状態のスナップショットを取ってから作業することを強くおすすめします。ファイアウォール設定やSSHの変更を誤ると自分もサーバーにアクセスできなくなるため、スナップショットがあれば即座に巻き戻せます。ConoHa VPSやXserver VPSは管理画面から数クリックで設定できます。
- Ubuntu・Debian・CentOS系でコマンドが違うのはなぜですか?
-
OSの系統によってパッケージ管理システムと設定ファイルの扱い方が異なります。Ubuntu・DebianはDebianベースで
aptを使い、CentOS系(Rocky Linux・AlmaLinux)はRHELベースでdnfを使います。SSHの設定ファイル自体は同じ場所(/etc/ssh/sshd_config)にありますが、SSHサービスの再起動コマンド名がsshとsshdで異なります。 - SSHポートを変更した後、接続できなくなりました。どうすればいいですか?
-
各VPSサービスが提供するコンソール機能(ConoHa VPS・Xserver VPSともに管理画面から利用可能)からサーバーに直接接続して設定を修正できます。コンソール接続はSSHポートの設定に依存しないため、ファイアウォールやSSH設定を誤ってもアクセスを回復できます。スナップショットを取ってあれば、そこから巻き戻すのが最も手軽です。
- ConoHa VPS・Xserver VPS・さくらのVPSで、コマンド手順は変わりますか?
-
同じOSを選択している場合、コマンドレベルの手順はほぼ共通です。ただし、バックアップ(スナップショット)・ファイアウォールの管理画面側の設定・コンソール機能の使い方はサービスごとに異なります。各サービスの公式ドキュメントも合わせて参照してください。
まとめ|コマンドを覚えるより「順番」が大事
VPS初期設定のセキュリティコマンド17項目を、Ubuntu・Debian・CentOS系に分けて解説しました。
起動直後から自動スキャンボットの標的になります。「後でやる」は通用しません。
root禁止・鍵認証・パスワード認証無効化・ファイアウォール・OSアップデート。これで一般的な攻撃の大部分を防げます。
17項目すべてを最初からやる必要はありません。学習用なら5項目、本番環境なら全項目が目安です。
各設定の「なぜやるのか」や優先順位の考え方については、下記の記事で詳しく解説しています。コマンドを実行する前にあわせて読んでおくと、設定ミスを防ぎやすくなります。










