パブリック IP アドレスを持つ新しい VPS には、数分以内に自動化されたログイン試行が始まります。個人を狙ったものではなく、ボットがすべてのアドレスをスキャンしているだけです。いくつかの基本的な手順で、そのほとんどを防げます。このチェックリストは、まっさらな Ubuntu 24.04 または Debian 12/13 サーバーを前提としており、約15分で終わります。
1. まずすべてを更新する
apt update && apt full-upgrade -y
reboot
再起動後にもう一度ログインしてください。常に、完全にパッチが当たった状態から始めましょう。
2. root 以外のユーザーを作成する
常に root で作業していると、タイプミスがすべて危険になります。sudo 権限を持つ通常のユーザーを作成します。
adduser deploy
usermod -aG sudo deploy
3. SSH キーを設定する
手元のコンピューターでキーペアがなければ作成し、公開鍵の側をサーバーにコピーします。
ssh-keygen -t ed25519 -C "my-vps"
ssh-copy-id deploy@YOUR_SERVER_IP
2つ目のターミナルを開き、次に進む前に、キーを使って deploy としてログインできることを確認してください。確認できるまで、元のセッションは閉じないでください。
4. パスワードログインと root ログインを無効にする
SSH デーモンの設定を編集します。
sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
ファイルに次の行を記述します。
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
構文を確認して、再読み込みします。
sudo sshd -t && sudo systemctl reload ssh
5. ファイアウォールを有効にする
UFW が最も簡単な選択肢です。先に SSH を許可してから、ファイアウォールをオンにします。
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp # only if you run a web server
sudo ufw enable
sudo ufw status verbose
実際に動かしているサービスのポートだけを開けてください。それ以外はデフォルトで閉じたままにします。
6. fail2ban を追加する
Fail2ban はログを監視し、ログインに失敗し続けるアドレスを一時的にブロックします。
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
SSH ならデフォルト設定で十分です。すでにパスワードを無効にしているため、主な効果はログのノイズと無駄な CPU の削減です。
7. 自動セキュリティ更新を有効にする
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
セキュリティパッチが自動的にインストールされます。カーネル更新のためにときどき再起動するか、静かな時間帯にツールに任せてください。
8. 待ち受けているものを確認する
sudo ss -tulpn
0.0.0.0 で待ち受けているもののうち、予期していないものは調査する価値があります。ローカル専用のサービス(データベース、キャッシュ、管理パネル)は 127.0.0.1 で待ち受けるべきです。
9. 基本的な監視とバックアップ
- ログを確認するには、ときどき
journalctl -u ssh --since todayを実行しましょう。 - リソースを確認するには、
htopとdf -hを使い、ディスクの満杯や暴走プロセスで慌てないようにしましょう。 - バックアップを取る。 大きな変更の前にサーバーのスナップショットを取り、再作成できないものはサーバー外にコピーを保管してください。
次にやること
これで、デフォルトよりはるかに侵入されにくいサーバーになりました。ここからは、ソフトウェアを最新に保ち、各サービスを専用の非特権ユーザーで実行し、必要なものだけを公開してください。サーバーへのプライベートトンネルがほしい場合は、WireGuard のセットアップガイドが次のステップとして最適です。
よくある質問
新しい VPS で最初にすべきことは何ですか?
パッケージを更新し、非 root ユーザーを作成して、SSH 鍵に切り替え、パスワードログインを無効にし、ファイアウォールを有効にします。
SSH のポートは変更すべきですか?
ログのノイズは減りますが、本当のセキュリティではありません。鍵とファイアウォールの方がはるかに重要です。