Membangun KMS Server Untuk Aktivasi Windows dan Office Menggunakan Linux CentOS 7

Membangun KMS Server Untuk Aktivasi Windows dan Office Menggunakan Linux CentOS 7

Perkenalan

Kalau singkatan dari KMS adalah Key Management Server yang artinya secara garis besar dan fungsinya adalah server untuk menyimpan, mengautentikasi dan mengatur lisensi dari produk yang didaftarkan ke KMS server tersebut. Produk yang biasa di register adalah Microsoft Windows dan Microsoft Office dari mulai Windows 7, Windows 8, Windows 10, Office 2010, Office 2013, Office 2016 dan Office 2019 dengan segala variannya: Professional dan juga Enterprise.

Terus terang saya gak tahu kenapa Microsoft ini menghadirkan KMS server kepada jama'ah, jama'ah oh jama'ah. Kalau menurut saya dari hati nurani yang paling dalam nan jero, sebetulnya ini taktik aja biar orang-orang tidak bisa melupakan produk-produk Microsoft. Para marketing Microsoft ini ingin orang menggunakan produk-produk mereka seperti orang-orang memakan gula dengan dalih untuk meng-counter pirate of the Caribbean.

Walaupun sebenarnya saat ini untuk membeli lisensi windows dan office bisa dibeli di toko online dengan harga murah yang fantastis, 35rb an sudah paket Windows 10 dan Office 2016. emejing.

Nah, daripada itu yang mana adalah pada kemana, iseng-iseng lah saya ingin membuat server KMS ini untuk orang-orang ndeso yang gak bisa lepas dengan produk Microsoft ini. Kalau biasanya pada pakai Microsoft Server dan karena saya sudah sangat terlalu biasa menggunakan Windows sampai-sampai sebetulnya ingin melupakan tapi ternyata tetap tidak bisa karena terlalu banyak orang-orang ndeso, ya sudah saya buat saja KMS server ini dengan menggunakan OS yang biasa saya gunakan, yaitu Linux CentOS 7.

Btw, yang tertuang disini adalah hasil note saya yah, mohon maaf kalau tidak mudah untuk di mengerti.


DISCLAIMER: The below items are for educational (and entertainment) purposes only.

Persiapan

  • CentOS 7
  • Akses root
  • IP static

Kita akan mulai dengan meng-compile yang sudah jadi dan dibutuhkan beberapa pendukung. Walaupun sebenarnya binggung banget tadi nyari kata pendukung karena tadiannya mau nulis dependencies dan binggung terjemah ke Indonesia nya itu apa yah yang enak dan asik di telinga. Kita butuh install git, gcc dan bagi yang ingin membuat KMS server di Linux distro selain CentOS, kadang butuh di install juga make.

Kita install dulu git dan gcc, tapi kalau udah yakin ada yang gak usah di install lagi, tuk install kita menggunakan perintah:

yum update
yum install git gcc

Install KMS Server

Kita mulai copy binaries, nah, binggung nih binaries kalau ke bahasa Indonesia apa yah, xixixi.

git clone https://github.com/dartokloning/vlmcsd
cd vlmcsd
make

Setelah selesai compile mari kita test servernya. Masuk ke folder bin terlebih dahulu:

cd bin

Kemudian jalankan perintah:

./vlmcsd

Servernya sudah UP, sekarang kita test apakah bisa menerima untuk aktivasi atau tidak, yaitu dengan perintah:

./vlmcs

Seharusnya keluar informasi:

Connecting to 127.0.0.1:1688 ... successful
Sending activation request (KMS V6) 1 of 1  -> 06401-00206-568-168948-03-13321-9600.0000-1392019 (3A1C049600B60076)

Berarti, sampai sini kita sudah berhasil untuk compile dan menjalankan KMS server untuk aktivasi Microsoft Windows dan Microsoft Office.


Firewall

Eits, ternyata belum selesai, kita harus membuka firewall di CentOS untuk port KMS server bisa di akses dari luar. Caranya adalah:

firewall-cmd --zone=public --permanent --add-port=1688/tcp
firewall-cmd --reload

Kalau mau test apakah apakah portnya sudah dibuka atau belum bisa dicek menggunakan perintah:

firewall-cmd --list-port

Autostart Service

Sebetulnya KMS server sampai langkah di atas sudah bisa berjalan dengan baik tapi kalau servernya restart servicenya masih belum bisa berjalan secara otomatis. Selain itu, tujuan dari langkah selanjutnya ini adalah untuk membuat log dari aktifitas KMS server itu sendiri, komputer mana aja yang telah melakukan register dan aktivasi melalui KMS server kita. Sebelum membuat KMS server sebagai service di server kita, enaknya sih aplikasinya di copy di strukturnya Linux. OK, mari kita mulai dengan perintah:

cp vlmcsd /usr/bin
cp vlmcs /usr/bin

Baru deh kita buat servicenya, yaitu dengan perintah:

vi etc/init.d/vlmcsd

Kemudian copy paste perintah ini:

#!/bin/sh
#
# VLMCSD - this script starts and stops the KMS Server daemon
#
### BEGIN SERVICE INFO
# Run level information:
# chkconfig: 2345 99 99
# description: KMS Emulator in C
# processname: vlmcsd
### END SERVICE INFO

# Source function library
source /etc/init.d/functions

# Check that networking is up.
[ ${NETWORKING} ="yes" ] || exit 0

NAME=vlmcsd
SCRIPT=/usr/bin/vlmcsd
RUNAS=

PIDFILE=/var/run/$NAME.pid
LOGFILE=/var/log/$NAME.log

start() {
  if [ -f "$PIDFILE" ] && kill -0 $(cat "$PIDFILE"); then
    echo 'Service already running.'
    return 1
  fi
  echo 'Starting service...'
  local CMD="$SCRIPT -p $PIDFILE -l $LOGFILE -d"
  su -c "$CMD" $RUNAS
  echo 'Service started.'
}

stop() {
  if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE"); then
    echo 'Service not running.'
    return 1
  fi
  echo 'Stopping service...'
  kill -15 $(cat "$PIDFILE") && rm -f "$PIDFILE"
  echo 'Service stopped.'
}

status() {
  echo "Checking $NAME service..."
  if [ -f "$PIDFILE" ]; then
    local PID=$(cat "$PIDFILE")
    kill -0 $PID
    if [ $? -eq 0 ]; then
      echo "Running, the PID is $PID."
    else
      echo 'The process appears to be dead but pidfile still exists.'
    fi
  else
    echo 'Service not running.'
  fi
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac

exit 0

Nah, saya kasih bonus deh buat yang bikin KMS server ini menggunakan Debian. Eh maaf, ya mungkin udah pada ahli, hehehe, ya maaf, ceritanya lagi ngasih tutorial ke IT cupu, seperti saya ini, HAHAHA. Ini script untuk membuat autosart service di Debian:

#!/bin/sh
#
# VLMCSD - this script starts and stops the KMS Server daemon
#
### BEGIN INIT INFO
# Provides:          vlmcsd
# Required-Start:    $local_fs $network $named $time $syslog
# Required-Stop:     $local_fs $network $named $time $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       KMS Emulator in C
### END INIT INFO

NAME=vlmcsd
SCRIPT=/usr/bin/vlmcsd
RUNAS=

PIDFILE=/var/run/$NAME.pid
LOGFILE=/var/log/$NAME.log

start() {
  if [ -f "$PIDFILE" ] && kill -0 $(cat "$PIDFILE"); then
    echo 'Service already running.'
    return 1
  fi
  echo 'Starting service...'
  local CMD="$SCRIPT -p $PIDFILE -l $LOGFILE -d"
  su -c "$CMD" $RUNAS
  echo 'Service started.'
}

stop() {
  if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE"); then
    echo 'Service not running.'
    return 1
  fi
  echo 'Stopping service...'
  kill -15 $(cat "$PIDFILE") && rm -f "$PIDFILE"
  echo 'Service stopped.'
}

status() {
  echo "Checking $NAME service..."
  if [ -f "$PIDFILE" ]; then
    local PID=$(cat "$PIDFILE")
    kill -0 $PID
    if [ $? -eq 0 ]; then
      echo "Running, the PID is $PID."
    else
      echo 'The process appears to be dead but pidfile still exists.'
    fi
  else
    echo 'Service not running.'
  fi
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac

exit 0

Seteelah itu kita rubah permission dari service yang kita buat tadi, dengan perintah:

chmod 755 /etc/init.d/vlmcsd
chown root.root /etc/init.d/vlmcsd

Kemudian kita daftarkan deh agar service KMS server ini bisa berjalan otomatis saat server booting, dengan perintah:

chkconfig --add vlmcsd
chkconfig vlmcsd on
chkconfig vlmcsd start

Tapi, saya seringnya suka gagal terus di perintah yang terakhir walaupun di awal praktek berhasil tapi kenapa kesini-sininya pakai command chkconfig vlmcsd start gak bisa lagi yah, hehehe. Ah entahlah. Kalau ada yang gak berhasil juga, mungkin bisa coba perintah berikut:

systemctl start vlmcsd

OK, selesai sudah KMS server yang kita buat untuk aktivasi Microsoft Windows dan Microsoft Office. Sekarang waktunya kita test untuk register windows dan office kita. to be continued

Updated: Wed, Nov 13, 2019 2:10 PM

KMS Key

Key untuk aktivasi ini bisa didapatkan di situs Microsoft. Untuk windows bisa kunjungi di KMS client setup keys dan untuk office bisa kunjungi GVLKs for KMS and Active Directory-based activation of Office 2019 and Office 2016

Cara Aktivasi

Cara Aktivasi Microsoft Windows Menggunakan KMS

  1. Buka Command Prompt sebagai Administrator
  2. ketik perintah slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
  3. kemudian ketik perintah slmgr /skms 10.0.7.5. Disesuaikan dengan IP server yang sudah dibuat.
  4. perintah akhir dengan slmgr /ato

Cara Aktivasi Microsoft Office Menggunakan KMS

  1. Buka Command Prompt sebagai Administrator
  2. Kemudian masuk ke folder instalasi office dengan perintah cd "c:\Program Files (x86)\Microsoft Office\Office16" dan sesuaikan dengan tipe office yang diinstall, apakah tipe 32bit atau 64bit. Kalau 32bit di Program Files (x86) sedang 64bit di Program Files
  3. kemudian ketik perintah cscript ospp.vbs /inpkey:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99
  4. cscript ospp.vbs /unpkey:BTDRB >nul; langkah ini optional aja, gak mesti.
  5. cscript ospp.vbs /unpkey:KHGM9 >nul; langkah optional.
  6. cscript ospp.vbs /unpkey:CPQVG >nul; langkah optional
  7. cscript ospp.vbs /sethst:10.0.7.5; sesuaikan dengan IP server yang sudah dibuat
  8. cscript ospp.vbs /setprt:1688
  9. cscript ospp.vbs /act

Bagi yang beli perangkat yang sudah berisi Windows, biasanya sudah diberikan Office 365 tapi harus aktivasi dan belum bisa digunakan. Sebelumnya kita harus merubah versi terlebih dahulu. Setelah langkah ke2 kemudian ketik perintah:

for /f %x in ('dir /b ..\root\Licenses16\proplusvl_kms*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%x"

Setelah perintah ini kemudian baru dilanjutkan dengan perintah ke3 dan seterusnya.