VPS初期設定完全ガイド:UbuntuでSSH・ファイアウォール・セキュリティを確実に設定する方法
VPSを購入したら最初にやるべきUbuntuの初期設定を解説。SSH鍵認証、UFWファイアウォール、fail2banなどセキュリティ対策をステップバイステップで紹介。
VPS初期設定UbuntuSSHファイアウォールセキュリティ2026/5/25
VPS(Virtual Private Server)を借りたら、まずはセキュリティを固める初期設定が必須です。特にUbuntuを使う場合、デフォルトのままでは危険が伴います。この記事では、SSHの鍵認証設定、ファイアウォール(UFW)、不正アクセス対策(fail2ban)など、実践的な手順を解説します。
前提条件
1. 初期ログインとユーザー作成
まずはrootでログインします。ssh root@<VPSのIPアドレス>
初回ログイン後、すぐに一般ユーザーを作成しましょう。rootのまま作業するのは危険です。
adduser ユーザー名
<h1>パスワードを設定し、その他はEnterでスキップ</h1>
作成したユーザーにsudo権限を付与します。
usermod -aG sudo ユーザー名
2. SSH鍵認証の設定
パスワード認証はブルートフォース攻撃に弱いため、公開鍵認証に切り替えます。2.1 ローカルPCで鍵ペアを作成(まだの場合)
ssh-keygen -t ed25519 -C "your_email@example.com"
<h1>保存場所はデフォルトでOK、パスフレーズは任意</h1>
2.2 公開鍵をVPSに転送
ssh-copy-id ユーザー名@<VPSのIPアドレス>
<h1>パスワードを聞かれるので入力</h1>
2.3 SSH接続の確認
ssh ユーザー名@<VPSのIPアドレス>
<h1>パスワードなしでログインできれば成功</h1>
3. SSHのセキュリティ強化
SSHの設定ファイルを編集します。sudo nano /etc/ssh/sshd_config
以下の設定を変更・追加します。
PermitRootLogin no(rootログイン禁止)PasswordAuthentication no(パスワード認証禁止)PubkeyAuthentication yes(公開鍵認証を有効化)Port 2222など(ポート変更。デフォルト22は攻撃されやすい)変更後、サービスを再起動します。
sudo systemctl restart ssh
注意: ポートを変更した場合、次回ログイン時に -p 2222 オプションが必要です。接続できるか必ず確認してからセッションを切ってください。
4. ファイアウォール(UFW)の設定
UbuntuにはUFW(Uncomplicated Firewall)が標準搭載されています。4.1 UFWの有効化
sudo ufw allow OpenSSH
<h1>またはポート番号を指定: sudo ufw allow 2222/tcp</h1>
sudo ufw enable
sudo ufw status verbose
4.2 必要なポートのみ許可
例:Webサーバー(80,443)を開放する場合sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
不要なポートは閉じておきます。
5. fail2banの導入
fail2banは不正なログイン試行を検知し、自動的にIPをブロックします。sudo apt update
sudo apt install fail2ban -y
設定ファイルをコピーして編集します。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[sshd] セクションを探し、以下のように設定します。
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
サービスを起動・有効化します。
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
6. 自動更新の設定
セキュリティパッチを自動適用するよう設定します。sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
<h1>プロンプトで「Yes」を選択</h1>
7. その他のセキュリティ対策
sudo journalctl -u ssh でSSHログを確認sudo systemctl list-units --type=service --state=running で確認し、不要なものは停止sudo apt update && sudo apt upgrade を習慣化*この記事は実際のVPS環境での構築経験に基づいています。料金・スペックは執筆時点のものであり、最新情報は各事業者の公式サイトでご確認ください。*