自分の VPS にプライベート KMS サーバーをデプロイ

このチュートリアルでは KMS プロトコルの仕組みと、学習と研究目的のみで Linux VPS にプライベート KMS サーバーをデプロイする方法を説明します。すべての手順は GitHub のオープンソースプロジェクトを参照しています。

なぜ KMS サーバーを自己ホストするのか?

  • KMS 認証プロトコルの実際の動作を学ぶ
  • ポート 1688 でのクライアントサーバー通信を研究する
  • ラボ環境でボリュームライセンスを実験する
  • サードパーティの公開 KMS ノードへの依存を避ける

前提条件

  • Linux VPS(Ubuntu 20.04+ または Debian 11+ 推奨)
  • SSH 経由の root または sudo アクセス
  • Linux コマンドラインの基本的な知識
  • ファイアウォールでポート 1688 を開放

KMS プロトコルアーキテクチャ

Microsoft KMS(キー管理サービス)は企業環境向けのクライアントサーバー認証モデルです。クライアントは <code>TCP ポート 1688</code> で KMS サーバーに認証リクエストを送信し、サーバーは 180 日間有効なライセンストークンを返します。クライアントは 7 日ごとに自動更新します。

  1. 1 クライアントが slmgr /skms your-server-ip を実行して KMS ホストを設定
  2. 2 クライアントが slmgr /ato を実行して認証リクエストを送信
  3. 3 KMS サーバーが GVLK を検証してトークンで応答
  4. 4 クライアントは 180 日間認証され、7 日ごとに自動更新

セットアップ手順

ステップ 1:VPS を取得

VPS プロバイダーを選択して Linux インスタンスを作成します。1 vCPU + 512MB RAM で十分です — KMS はほとんどリソースを使用しません。

ステップ 2:vlmcsd をインストール

vlmcsd はオープンソースの KMS エミュレーターです。GitHub で vlmcsd を検索してください。以下は一般的なインストール手順です:

# GitHub から最新リリースをダウンロード
cd /tmp
# wget https://github.com/.../vlmcsd-...-linux-x64
# chmod +x vlmcsd
# mv vlmcsd /usr/local/bin/

ステップ 3:ファイアウォールポート 1688 を開放

KMS は TCP ポート 1688 を使用します。ファイアウォールで開放されていることを確認してください:

# UFW(Ubuntu/Debian)
sudo ufw allow 1688/tcp

# firewalld(CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=1688/tcp
sudo firewall-cmd --reload

ステップ 4:サービスを開始

vlmcsd をバックグラウンドで実行:

# vlmcsd を開始(デフォルトでデーモンとして実行)
vlmcsd

# 実行中か確認
netstat -tlnp | grep 1688

ステップ 5:クライアントから接続

Windows マシンで管理者として CMD/PowerShell を開いて:

slmgr /skms YOUR_VPS_IP
slmgr /ato

代替:Docker デプロイ

Docker を使用する場合は、Docker Hub で vlmcsd イメージを検索してください:

docker run -d --name vlmcsd -p 1688:1688 --restart=always mikolatero/vlmcsd

起動時の自動起動(systemd)

再起動後も vlmcsd を実行し続けるために systemd サービスファイルを作成:

sudo tee /etc/systemd/system/vlmcsd.service << 'EOF'
[Unit]
Description=vlmcsd KMS Emulator
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/vlmcsd
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable vlmcsd
sudo systemctl start vlmcsd

サーバーを確認

KMS サーバーステータス確認ツールを使用して、ポート 1688 でサーバーにアクセスできるかテストしてください。

重要なお知らせ

  • • このチュートリアルは学習と研究のみを目的としています。未承認の認証には使用しないでください。
  • • vlmcsd はサードパーティのオープンソースプロジェクトです。ソフトウェアはホストまたは配布していません。
  • • 本番環境では公式の Microsoft ボリュームライセンスを使用してください。
  • • KMS 認証は 180 日間有効で、定期的な更新が必要です。