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