サーバー構築

Debian VPS初期設定完全ガイド — セキュリティからDocker環境構築まで

Debian VPSサーバー初期設定ガイド

さくらVPSなどでDebianサーバーを契約した後、最初に行うべき初期設定とセキュリティ対策をまとめました。この記事では、ユーザー作成からSSH強化、ファイアウォール設定、Docker環境の構築まで一気に解説します。

対象環境: Debian 12 (bookworm) / さくらVPS(メモリ512MB〜)

1. 一般ユーザーの作成とsudo権限付与

初期ユーザー(debian等)でログイン後、作業用ユーザーを作成します。

sudo useradd -m -s /bin/bash maru
sudo passwd maru
sudo usermod -aG sudo maru

公開鍵を新ユーザーに設定します。

sudo mkdir -p /home/maru/.ssh
sudo cp ~/.ssh/authorized_keys /home/maru/.ssh/
sudo chown -R maru:maru /home/maru/.ssh
sudo chmod 700 /home/maru/.ssh
sudo chmod 600 /home/maru/.ssh/authorized_keys

接続確認後、初期ユーザーを削除します。

sudo userdel -r debian

2. SSHの強化設定

/etc/ssh/sshd_config を編集して以下を設定します。

Port 3715                    # デフォルトの22番から変更
PermitRootLogin no           # rootログイン禁止
PasswordAuthentication no    # パスワード認証無効化
MaxAuthTries 3               # 認証試行回数制限
LoginGraceTime 30            # ログイン猶予時間
X11Forwarding no             # X11転送無効化
注意: SSHポートを変更する場合は、先にファイアウォールで新ポートを許可してからSSHDを再起動してください。順番を間違えるとサーバーにアクセスできなくなります。
sudo systemctl restart sshd

3. UFW(ファイアウォール)の設定

sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 3715/tcp    # SSH
sudo ufw allow 80/tcp      # HTTP
sudo ufw allow 443/tcp     # HTTPS
sudo ufw enable
さくらVPSの場合: 管理パネルの「パケットフィルタ」でも80/443ポートを許可する必要があります。UFWだけでは外部からアクセスできません。

4. Fail2Banの導入

ブルートフォース攻撃を防ぐためFail2Banを導入します。

sudo apt install fail2ban

/etc/fail2ban/jail.local を作成します。

[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3

[sshd]
enabled = true
port = 3715
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban

5. スワップ領域の追加(メモリが少ない場合)

メモリが512MB以下の場合、Dockerビルド時にOOMKilledになることがあります。スワップを追加しましょう。

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab

6. Dockerのインストール

# Docker公式リポジトリ追加
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list

# インストール
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

# ユーザーをdockerグループに追加
sudo usermod -aG docker maru

7. NginxとSSL証明書の設定

sudo apt install nginx certbot python3-certbot-nginx
sudo systemctl enable nginx

サイト設定を作成します(例: example.com)。

# /etc/nginx/sites-available/example
server {
    listen 80;
    server_name example.com www.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

# SSL証明書取得(自動でNginx設定も更新される)
sudo certbot --nginx -d example.com -d www.example.com

まとめ

Debian VPSの初期設定で行うべきことをまとめると:

  1. ユーザー管理 — 作業用ユーザー作成、初期ユーザー削除
  2. SSH強化 — ポート変更、root禁止、パスワード認証無効化
  3. ファイアウォール — UFW + VPS管理パネルのパケットフィルタ
  4. 不正アクセス対策 — Fail2Banで自動BAN
  5. メモリ対策 — スワップ追加
  6. Docker環境 — 公式リポジトリからインストール
  7. Web公開 — Nginx + Let's Encrypt SSL
ポイント: 設定の順番が重要です。特にSSHポート変更時はファイアウォール設定を先に行い、ロックアウトを防ぎましょう。VPSのコンソールアクセスがあれば復旧可能ですが、手間がかかります。