Установка KMS сервера активации Microsoft на базе vlmcsd в Debian или Ubuntu

  • Автор:

install-kms-activation-server-vlmcsd-linux-000.pngПоследнее время российские пользователи лицензионных продуктов Microsoft могут испытывать сложности с их активацией, начиная от невозможности получить ключи продуктов в личном кабинете и заканчивая ошибками непосредственно в процессе активации. Непростые времена требуют непростых решений и многие, для поддержания стабильной работы инфраструктуры, вынуждены прибегать к альтернативным вариантам. Одним из них является создание собственного KMS сервера для активации. В этой статье мы рассмотрим, как это сделать с использованием открытого ПО.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Начнем с главного вопроса - легальности. Проект vlmcsd свободно размещен на Github и позиционирует себя как открытую замену серверу KMS от Microsoft, при этом отдельно подчеркивается, что он не предназначен для нелегального использования продуктов компании. Т.е. сама по себе установка такого программного обеспечения не является нарушением, vlmcsd не содержит лицензионных ключей и не является инструментом для взлома.

В тоже время технически он позволяет активировать продукты Microsoft корпоративной линейки без наличия ключа продукта, при этом такой продукт не может считаться лицензионным и его использование в отсутствии легально приобретенных лицензий будет считаться нарушением. Использование vlmcsd при наличии законно купленных лицензий, скажем при невозможности скачать ключ, в целом достаточно легально, так как пользователь имеет право использовать продукт на законных основаниях.

Важно! Мы крайне негативно относимся к использованию нелицензионного ПО, данный материал ни в коем случае не призывает и не поощряет его использование. Приведенное решение полностью базируется на открытом ПО и не преследует цели нарушения норм действующего законодательства и правил лицензирования ПО.

В любом случае принимайте решение на свой страх и риск должным образом взвесив все плюсы и минусы.

Сборка пакета vlmcsd для систем на основе Debian

Мы не рекомендуем производить сборку на рабочей системе, выделите для этого отдельный ПК или виртуальную машину с той же версией ОС и той же архитектурой. Это обязательное условие, в противном случае пакет может не установиться или установиться с ошибками. В нашем случае мы будем собирать в среде Ubuntu 22.04, но это не является принципиальным.

Повысим свои права до суперпользователя. в Ubuntu для этого выполните:

sudo -s

В Debian, если у вас не установлен sudo:

su -

Затем установим необходимые для сборки пакеты:

apt install git build-essential debhelper

Создадим директорию для проекта и перейдем в нее:

mkdir ~/vlmcsd-build
cd ~/vlmcsd-build

Теперь скачаем файлы с исходниками:

git clone https://github.com/Wind4/vlmcsd
cd ~/vlmcsd-build/vlmcsd
git submodule update --init debian

Но не будем спешить собирать, разработчик, выполнявший дебианизацию проекта, отнесся к работе спустя рукава из-за чего собранный пакет будет работать не совсем корректно, это можно исправить после установки, но зачем нам лишние действия. Давайте сразу сделаем как надо.

Перейдем в директорию vlmcsd-build/vlmcsd/debian и создадим там файл preinst:

cd ~/vlmcsd-build/vlmcsd/debian
touch preinst

И внесем в него следующее содержимое:

#!/bin/sh
# preinst script for vlmcsd

set -e

case "$1" in
install|upgrade)
grep -q "^vlmcsd:" /etc/passwd || useradd -s /usr/sbin/nologin -r -M vlmcsd

;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2

exit 1
;;
esac

#DEBHELPER#

exit 0

С его помощью мы создадим нужного пользователя перед установкой пакета.

Теперь откроем файл postinst в этой же директории и после блока:

if [ ! -d /etc/vlmcsd/ ]; then
mkdir -p /etc/vlmcsd/
fi

Добавим

if [ ! -d /var/log/vlmcsd/ ]; then
mkdir -p /var/log/vlmcsd/
chown -R vlmcsd:vlmcsd /var/log/vlmcsd
fi

Тем самым создадим директорию для логов и установим на нее нужные права.

После чего научим пакет правильно убираться за собой, для этого в файл postrm после строки:

rm -r /etc/vlmcsd

добавим:

rm -r /var/log/vlmcsd
userdel vlmcsd

Обратите внимание, что удаляем пользователя и директорию логов мы только после действия purge, при обычной деинсталляции пакета объекты в системе останутся.

Затем открываем файл init и приводим к следующему виду строки:

: ${USER:="vlmcsd"}
: ${GROUP:="vlmcsd"}

Аналогично и в файле vlmcsd.service:

User=vlmcsd
Group=vlmcsd

Теперь перейдем в vlmcsd-build/vlmcsd/etc и в файле vlmcsd.ini исправим путь к файлу лога:

;LogFile = /var/log/vlmcsd/vlmcsd.log

Если вы не хотите проделывать все эти процедуры самостоятельно, то можете скачать готовый архив с нашего сайта.

vlmcsd-build.zip
SHA1 86C6A882AB19B8F3A84813D8666FCF590CBD4270

Снова вернемся в директорию проекта и выполним сборку:

cd ~/vlmcsd-build/vlmcsd
dpkg-buildpackage -rfakeroot -D -us -uc

После чего в директории vlmcsd-build у вас появится файл пакета vlmcsd_1113_amd64.deb, который готов к установке.

Установка и настройка vlmcsd

Переносим собранный пакет на целевой ПК, так как системные требования невелики, то можно использовать контейнер с минимальным выделением памяти, и устанавливаем командой:

dpkg -i vlmcsd_1113_amd64.deb

Проверим статус установленного пакета:

systemctl status vlmcsd

Как видим служба KMS сервера запущена и добавлена в автозагрузку, никаких дополнительных действий делать не нужно.

install-kms-activation-server-vlmcsd-linux-001.pngНастройки сервера хранятся в /etc/vlmcsd/vlmcsd.ini, но интересных нам там немного. В частности, можем использовать директиву Listen, чтобы явно указать интерфейс и протокол, на котором слушает сервер (по умолчанию соединения принимаются с любого интерфейса и работает как IPv4, так и IPv6).

Listen = 0.0.0.0:1688

Также сразу включим логирование, раскомментировав строку:

LogFile = /var/log/vlmcsd/vlmcsd.log

Перезапустим сервер активации:

systemctl restart vlmcsd

Наш KMS сервер установлен и готов принимать запросы на активацию.

Активация продуктов Microsoft

Для активации нам понадобятся GVLK-ключи, которые можно найти в свободном доступе:

Windows Server and Windows GVLKs
Office, Project, and Visio GVLKs

После чего потребуется выполнить ряд несложных действий в консоли.

Для Windows Server и Windows

Для примера выполним активацию Windows Server 2019 Standard. Прежде всего установим GVLK-ключ:

slmgr.vbs -ipk N69G4-B89J2-4G8F4-WWYCC-J464C

Затем укажем адрес нашего KMS-сервера (IP адрес указан для примера):

slmgr.vbs -skms 192.168.233.132

И выполним активацию:

slmgr.vbs -ato

Если все прошло успешно, то вы получите сообщение о том. что ваша система активирована.

install-kms-activation-server-vlmcsd-linux-002.pngЕще раз напоминаем, что активация при помощи GVLK-ключа не делает вашу систему легальной и для ее правомерного использования вы должны иметь законно приобретенную лицензию!

Активация Office, Project и Visio

Для активации офиса вам потребуется перейти в папку с установленным продуктом с учетом его разрядности, например, C:\Program Files\Microsoft Office\Office16. Затем укажем адрес сервера активации:

cscript ospp.vbs /sethst:192.168.233.132

Если вы используете нестандартный порт, то его потребуется указать отдельно:

cscript ospp.vbs /setprt:1689

Затем выполните активацию командой:

cscript ospp.vbs /act

Обратите внимание, что активировать указанным выше образом можно только программы из пакета Office распространяемого в рамках корпоративного лицензирования.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments