※本ページには広告(アフィリエイトプログラム等)が含まれます。
※本ページには広告(アフィリエイトプログラム等)が含まれます。料金は 2026年8月16日時点でさくらインターネット公式サイトに記載されていた税込価格、サーバーの出力は同日に運用中の VPS(Debian 12)から採取した実測値です。ユーザー名と IP は伏せています。
🎯 結論:最初の 30 分でやる 6 つ。1 つ飛ばすと週 3,519 件の総当たりに素で晒される
結論から書きます。VPS を借りた直後にやることは 6 つです。順番も含めて決まっています。
なぜ急ぐのかというと、IP が割り当てられた時点で総当たりが始まるからです。手元の VPS で直近 7 日間のログを集計すると、認証失敗と不正ユーザーの試行が 3,519 件(1 日約 503 件)ありました。何も公開していなくてもこの数字です。
- ✅ ① パッケージ更新 → 既知の脆弱性を放置しない
- ✅ ② 作業用の一般ユーザーを作る → root で常用しない
- ✅ ③ SSH 鍵認証 → いちばん効く。総当たりが全部失敗するようになる
- ✅ ④ sshd の強化 → パスワード認証を無効化
- ✅ ⑤ UFW → 既定拒否 → SSH 許可 → 有効化(この順番)
- ✅ ⑥ タイムゾーンと自動更新 → ログの時刻がずれると調査が破綻する
プランを選ぶ
実価格
石狩リージョンの月額です。すべて税込・2026年8月16日時点。初期費用は無料、クレジットカード払いなら 2 週間無料で試せます。
| メモリ | CPU | SSD | 月額 | 年額 |
|---|---|---|---|---|
| 512MB | 仮想 1Core | 25GB | 643 円 | 7,078 円 |
| 1GB | 仮想 2Core | 50GB | 880 円 | 9,680 円 |
| 2GB | 仮想 3Core | 100GB | 1,738 円 | 19,118 円 |
| 4GB | 仮想 4Core | 200GB | 3,520 円 | 38,720 円 |
| 8GB | 仮想 6Core | 400GB | 7,040 円 | 77,440 円 |
1GB で足りるか
手元の環境は 1GB プラン相当で、実際に使えるメモリはこうなっています。
$ free -h
total used free shared buff/cache available
Mem: 958Mi 489Mi 123Mi 58Mi 573Mi 468Mi
Swap: 4.0Gi 362Mi 3.6Gi
$ nproc
2
この構成で nginx + PHP 8.3 + MariaDB を同居させて稼働しています。Web サイトを載せるだけなら 1GB で足ります。足りなくなるのは composer install や npm run build のような一時的なピークなので、スワップで吸収できます。
年額にすると 1 か月ぶん安い
1GB プランは月払い 880 円 × 12 = 10,560 円に対して年額 9,680 円。880 円ちょうど(1 か月ぶん)浮きます。2 週間の無料期間で動作を確認してから年額に切り替えるのが無駄がありません。
OS インストール直後の状態を知っておく
入っているもの・入っていないもの
ここを先に知っておくと、あとで「動かない」と悩む時間が減ります。手元の Debian 12 環境で確認した結果です。
| 項目 | 状態 | 意味 |
|---|---|---|
| スワップ | ✅ 4GB 設定済み | 自分で作る必要がない場合がある |
| タイムゾーン | 要確認 | ログの時刻に直結する |
| pip | ⛔ 未導入 | Python を使うなら最初に詰まる |
| venv | ⛔ 要 apt | python3-venv が別パッケージ |
| cloud-init | ⛔ 未導入 | user-data を書いても何も起きない |
| GPU | ⛔ 無し | 機械学習用途には使えない |
スワップは確認してから作る
$ swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 4G 362M -2
すでに 4GB のスワップファイルがありました。無い場合の作り方はスワップの追加にまとめています。メモリ 1GB の環境では、あるかどうかで安定性が変わります。
Python を使うなら最初に
$ python3 -m pip --version
/usr/bin/python3: No module named pip
$ python3 -m venv myenv
The virtual environment was not created successfully because ensurepip is not
available. On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.
⚠️ python3 -m venv --help は通るので「使える」と誤解します。実際に作ろうとして初めて失敗します。sudo apt install python3-venv を先に。
① パッケージ更新と ② 一般ユーザー
更新
# root で初回ログイン後
$ apt update && apt upgrade -y
作業用ユーザー
$ adduser deploy
$ usermod -aG sudo deploy
root で常用しないのが原則です。sudo が要る操作だけ昇格させます。
⚠️ ここでまだログアウトしない
この先の SSH 設定を間違えると入れなくなります。root のセッションは開いたまま、別のターミナルで新ユーザーのログインを確認してから閉じてください。
③ SSH 鍵認証と ④ sshd の強化
鍵を置く
# 手元のマシンで鍵を作る(パスフレーズを付けるか自分で決める)
$ ssh-keygen -t ed25519
# サーバーへ公開鍵を転送
$ ssh-copy-id deploy@<サーバーのIP>
パスワード認証を無効化する
元の設定ファイルを直接編集せず、ドロップインで上書きします。
# /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password
MaxAuthTries 3
$ sudo systemctl reload ssh
これがいちばん効く理由
手元の環境の 7 日間の実測です。
| 項目 | 7 日間 | 1 日あたり |
|---|---|---|
| 認証失敗・不正ユーザー | 3,519 件 | 約 503 件 |
| 鍵交換前に切断された接続 | 139 件 | 約 20 件 |
パスワード認証を切っておけば、この 3,519 件は全部失敗します。逆に切っていなければ、弱いパスワードを 1 つ置いた時点で突破されます。
⑤ UFW と ⑥ 時刻・自動更新
⛔ 順番を間違えない
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
$ sudo ufw allow 22/tcp # ← 先に SSH を許可する
$ sudo ufw allow 80,443/tcp
$ sudo ufw enable # ← それから有効化
SSH を許可する前に enable すると、その瞬間に締め出されます。さくらの VPS はコントロールパネルから VNC コンソールに入れるので最後の砦はありますが、順番を守るほうが早いです。詳しくはufw の設定にまとめています。
タイムゾーン
$ sudo timedatectl set-timezone Asia/Tokyo
$ timedatectl | grep -i "time zone"
Time zone: Asia/Tokyo (JST, +0900)
⚠️ ログの時刻がずれていると、障害調査が成立しません。cron の起動時刻もここに従うので、後から変えると集計処理がずれます。最初に決めてください。
自動セキュリティ更新
$ sudo apt install unattended-upgrades
$ sudo dpkg-reconfigure --priority=low unattended-upgrades
⚠️ Debian 12 の完全サポートは 2026年7月11日で終了し、現在は LTS(2028年6月30日まで)です。自動更新を入れていても、いずれ OS のバージョンアップが必要になります。詳しくはDebian 13 の変更点にまとめています。
よくある質問
Q1. どのプランを選べばいいですか?
結論:Web サイト用途なら 1GB プラン(月 880 円)で足ります。手元の環境は 1GB 相当で nginx + PHP 8.3 + MariaDB を同居させて稼働しています。初期費用は無料、クレジットカード払いなら 2 週間無料で試せるので、実際に載せてから判断できます。
Q2. メモリ 1GB で足りなくなりませんか?
結論:常時稼働ぶんは足りますが、ビルド処理でピークが出ます。手元の環境では 4GB のスワップが最初から設定されており、実測で 362MB が使われていました。スワップがあれば composer install のような一時的なピークを吸収できます。
Q3. 最初にやるべきことを 1 つだけ挙げるなら?
結論:SSH の鍵認証化とパスワード認証の無効化です。手元の環境では 7 日間で 3,519 件の認証失敗が記録されていました。パスワード認証を切っておけば、これらは全部失敗します。
Q4. 年額と月額はどちらが得ですか?
結論:年額のほうが 1 か月ぶん安くなります。1GB プランなら月払い 10,560 円に対して年額 9,680 円で、差は 880 円。2 週間の無料期間で動作確認してから年額に切り替えるのが無駄がありません。
Q5. cloud-init で自動化できますか?
結論:手元の Debian 12 環境には cloud-init が入っていませんでした。コマンド・サービス・/etc/cloud・ログのすべてが不在です。user-data を書いてもエラーすら出ずに何も起きないので、自前のスクリプトか事業者のスタートアップスクリプトを使ってください。
Q6. Python を使いたいのですが
結論:sudo apt install python3-venv を最初に実行してください。Debian 12 は pip が未導入で、システムの Python も PEP 668 でロックされています。venv も別パッケージなので、何もせずに python3 -m venv を叩くと失敗します。
まとめ
さくらの VPS を借りたら、最初の 30 分で 6 つ済ませてください。とくに SSH の鍵認証化は、実測で週 3,519 件の総当たりを全部無効化します。
- 🎯 プラン → Web 用途なら 1GB(月 880 円・初期費用無料・2 週間無料)
- 🎯 最優先 → 鍵認証化 + パスワード認証の無効化
- 🎯 順番 → UFW は「SSH 許可 → 有効化」(逆にすると締め出される)
料金と仕様は改定されます。この記事の数値は 2026年8月16日時点のもので、サーバーの出力は同日に運用中の環境から採取したものです。
さくらのVPS公式サイトで最新のプランと料金を確認する(2 週間の無料お試しつき)
