Xserver VPS を借りたばかりのとき、最初に何をすればいいのか戸惑う人は多いと思います。
管理パネルには「コンソール」や「パケットフィルタ」など見慣れない単語が並び、公式の解説記事を見ても一歩踏み込んだ理由が書かれていないことがしばしばです。
そこで本記事では、単なる「手順のメモ」ではなく、なぜそれを行うのか、どういうリスクを避けるためなのかを解説しながら、実際の設定を順を追って説明します。
この内容を実施すれば、最低限のセキュリティを備えた VPS 環境を構築でき、安心して Web サイトやアプリを公開できるようになります。
あわせて公式の解説記事も参考にすると理解が深まります。
1. コンソールからの初回ログインと root パスワードの変更
Xserver VPS を契約すると、まず「root アカウント」でログインできるようになっています。
root はシステム全体を操作できる特権を持つユーザーであり、言い換えると「このサーバーの全権限を握る存在」です。もし第三者に root の情報が漏れると、サーバー内のすべてのデータを改ざんされたり削除されたりする危険があります。
そのため、契約直後の最初の作業は root でコンソールにログインし、パスワードを変更することです。Xserver の管理パネルにある「VNCコンソール」または「シリアルコンソール」をクリックするとログイン画面が開きます。
ここで、発行された情報を使ってログインします。
login: root
Password: (契約時に発行された初期パスワード)
ログインできたら、すぐに次のコマンドでパスワードを変更します。
passwd root
新しいパスワードはできるだけ複雑にし、英数字・記号を混ぜたものにしてください。以後、この root パスワードは「緊急時にコンソールからログインするための合鍵」としてだけ使います。普段の運用では root を直接利用せず、次のステップで作成する「一般ユーザー」に切り替えるのが安全です。
2. 管理用の一般ユーザーを作成する
root を直接使うのは非常に危険です。たとえば、誤ってシステムを破壊するコマンドを実行してしまうと、全環境が壊れてしまいます。そこで普段は一般ユーザーを使い、必要に応じて sudo
コマンドで一時的に管理者権限を借りる運用にします。
新しいユーザーを追加するには次のように入力します。
adduser myuser
usermod -aG sudo myuser
ここでは例として「myuser」という名前を使いました。実際は任意のユーザー名で構いません。
これで myuser は sudo グループに属する一般ユーザーとなり、ログイン後に sudo <コマンド>
と入力すれば root 権限を借りられるようになります。
以後は必ずこの一般ユーザーで作業を行い、root は封印しておきましょう。
3. SSH 鍵の作成と理由
次に取り組むべきは SSH 接続の強化です。通常、サーバーへ接続するにはユーザー名とパスワードを入力しますが、この方式だと「総当たり攻撃(ブルートフォース攻撃)」で突破される危険があります。世界中の攻撃者は自動スクリプトを使って、VPS のポートに無数のパスワードを試し続けるのです。
これを防ぐために、公開鍵認証方式 を導入します。これは「手元に秘密鍵を持っている人だけがログインできる」という仕組みです。
Windows を使っている場合は PowerShell または Cursor のターミナルで次を実行します。
ssh-keygen -t ed25519 -C "myuser@localpc"
すると C:\Users\<ユーザー名>\.ssh
フォルダに2つのファイルが生成されます。
- 秘密鍵(仮名):
id_example
- 公開鍵(仮名):
id_example.pub
秘密鍵はあなたの PC に厳重に保管してください。デスクトップなどに移動しても動作自体はしますが、誤って削除したり他人にコピーされたりするリスクが高まるので推奨できません。必ず .ssh
フォルダのまま保持しましょう。
一方、公開鍵はサーバーに渡すものです。この公開鍵をサーバーに登録することで、秘密鍵を持つ人だけが接続できるようになります。
4. 公開鍵をサーバーに登録する
作成した公開鍵ファイル(id_example.pub)の中身をサーバーに登録します。
まずは myuser でログインし、以下を実行して .ssh
ディレクトリを用意します。
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
エディタが開いたら、ローカル PC にある id_example.pub
の内容をコピーして貼り付けます。保存した後は次を実行して権限を適切に整えます。
chmod 600 ~/.ssh/authorized_keys
これでサーバー側は「公開鍵の持ち主」しかログインを許可しない状態になります。
5. 鍵認証で接続を確認する
ローカル PC から以下のように接続してみます。
ssh -i ~/.ssh/id_example myuser@203.0.113.10
(ここでは仮の IP アドレスを利用しています)
成功すればパスワードは求められず、秘密鍵に設定したパスフレーズだけを入力すればログインできます。
毎回パスを指定するのは面倒なので、~/.ssh/config
に次のような設定を書いておくと便利です。
Host myvps
HostName 203.0.113.10
User myuser
IdentityFile ~/.ssh/id_example
Port 22
これで以後は ssh myvps
と打つだけで接続できます。
6. SSH の設定を強化する
ここまでで鍵認証は有効になりましたが、まだ「root ログイン」や「パスワード認証」が生きている可能性があります。これを無効にすることでさらに強化できます。
設定ファイルを開きます。
sudo nano /etc/ssh/sshd_config
次のように修正します。
PermitRootLogin no
PasswordAuthentication no
これで root ユーザーでの直接ログインを禁止し、パスワードだけでの接続も不可能にします。反映は次のコマンドで行います。
sudo systemctl restart ssh
7. ファイアウォールの設定
セキュリティのもう一つの柱は「不要なポートを閉じる」ことです。サーバーには多くのポートが存在しますが、使わないポートは攻撃者の入り口になり得ます。
Xserver の管理パネルには「パケットフィルタ」の機能があり、ここで通信可能なポートを制御します。最低限開けるべきは以下です。
- SSH(後述の変更ポート)
- HTTP(80)
- HTTPS(443)
さらに Ubuntu 側でも ufw
を使って制御します。
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
8. SSH ポートを変更する
22 番ポートは世界中の攻撃の標的になっています。これを変更するだけで、不正アクセスの対象から外れる確率は大幅に上がります。
たとえばポート番号を「1111」に変更するとします。
設定ファイルを開き、
sudo nano /etc/ssh/sshd_config
次を修正します。
#Port 22
Port 1111
systemd を再読み込みし、サービスを再起動します。
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl restart sshd
さらにファイアウォールにも反映させます。
sudo ufw allow 1111/tcp
sudo ufw reload
このように「ポートを変えるだけでは不十分」で、サーバー内のファイアウォールと、Xserver のパケットフィルタ両方に設定を反映しなければ接続できなくなります。
9. 秘密鍵と公開鍵の取り扱い
ここで一度、秘密鍵と公開鍵の違いを整理しておきます。
秘密鍵(例: id_example)は「実際の鍵」であり、流出すれば誰でもサーバーに侵入できるリスクがあります。ローカル PC の .ssh
フォルダに保存し、外部にコピーしないことが重要です。
公開鍵(例: id_example.pub)は秘密鍵から数学的に導き出されるもので、逆に秘密鍵を生成することはできません。そのためサーバーに登録しても安全ですが、実際の運用では「本番鍵を不用意に公開しない」姿勢を取るのが望ましいです。
10. FileZilla での接続とファイル操作
Web サイトの公開には SFTP を利用します。FileZilla では秘密鍵をそのまま使えないため、PuTTYgen で PPK 形式に変換し、接続設定で読み込ませます。
また、必ずポート番号を 1111 に変更してください。22 のままでは接続できません。
接続直後、ローカル側は通常 C:\Users\<ユーザー名>\.ssh
が開かれますが、サーバー側は /home/myuser/
に入ります。Web 公開用のファイルを配置するには、さらに階層を移動して /var/www/html
にアップロードします。ここに index.html や CMS のファイルを配置すると、インターネット上から閲覧できるようになります。
11. トラブルが起きたときの復旧
もし設定を誤って接続できなくなった場合も、Xserver の管理パネルにあるコンソールから直接ログインできます。ここから sshd_config
を修正して再起動すれば復旧可能です。
たとえばポートを戻すには:
sudo nano /etc/ssh/sshd_config
Port 22
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl restart sshd
12. 運用ルールとまとめ
日常的な運用は次のように行うのが最も安全です。
- 普段は myuser でログインし、公開鍵認証を利用する
- 管理作業は sudo で行い、root を直接使わない
- 緊急時だけ root パスワードでコンソールからログインする
- 開発者や制作者に接続権限を渡す場合は秘密鍵ではなく公開鍵を渡して登録してもらう
こうすることで、root パスワードを外部に知らせる必要がなくなり、セキュリティリスクを最小限に抑えられます。
最後に
Xserver VPS は契約直後の状態だと「誰でもログインできる扉」が半開きになっています。本記事の手順を一通り終えれば、
- root ログイン禁止
- 公開鍵認証の導入
- パスワードログイン無効化
- ファイアウォールとポート設定の徹底
といった基本のセキュリティを整えることができます。
公式の簡潔な記事と、本記事の詳しい解説を組み合わせて、ぜひ安全な VPS 運用を始めてください。