KMS сервер активации Microsoft Windows и Office на базе Debian GNU/Linux 11 (Bullseye)
В данной заметке мы рассмотрим вариант развёртывания альтернативного KMS сервера, позволяющего активировать современные версии ОС Microsoft Windows/Windows Server и пакета Microsoft Office. Этот вариант будет реализован на базе ОС Debian GNU/Linux 11 (Bullseye) и исходных кодов открытого проекта vlmcsd. Для своей работы KMS сервер vlmcsd не требует наличия купленных KMS-ключей или какой-либо онлайн-активации в Microsoft. Вопрос «лицензионной чистоты» данного варианта в текущих реалиях оставим на обсуждение любителям философии и «кинутым» заказчикам известного вендора. При этом, следует понимать, что изложенный далее материал публикуется исключительно в образовательных целях и не позиционируется, как руководство к действию. Этот материал опирается на публично открытые программные продукты и не преследует цели нарушения норм действующего законодательства и правил лицензирования ПО. И вообще, мы за всё хорошее и против всего плохого. Поехали…
Сборка пакета vlmcsd под Debian
Предполагается, что под роль KMS у нас уже подготовлен выделенный сервер и на него установлена чистая ОС Debian 11. Произведём сборку deb-пакета из исходных кодов проекта vlmcsd.
Устанавливаем служебные пакеты, требуемые для сборки deb-пакета vlmcsd из его исходных кодов:
# apt install git build-essential debhelper -y
Создаём каталог для сборки пакета и переходим в него:
# mkdir ~/vlmcsd-build # cd ~/vlmcsd-build
Клонируем с GitHub исходный код проекта и переходим в его подкаталог:
# git clone https://github.com/Wind4/vlmcsd # cd ~/vlmcsd-build/vlmcsd
Дополнительно подкачиваем в каталог с клонированными исходниками (файлы попадут в подкаталог /debian ) готовые файлы дебианизации, которые нам потребуются для сборки пакета в Debian:
# git submodule update --init debian
Выполняем сборку deb-пакета:
# dpkg-buildpackage -rfakeroot -D -us -uc
Дожидаемся окончания сборки пакета, переходим на каталог уровнем выше и проверяем наличие пакета.
# cd ~/vlmcsd-build # ls -la ~/vlmcsd-build
Устанавливаем готовый deb-пакет в систему:
# dpkg -i ./vlmcsd_1113_amd64.deb
Настройка службы vlmcsd
В процессе установки будет запущена служба vlmcsd.service. Проверим её состояние:
# systemctl status vlmcsd.service
Как видим, служба запущена с использованием конфигурационного файла /etc/vlmcsd/vlmcsd.ini .
В этом файле, при необходимости, мы можем изменить параметры работы службы. Например, мы можем отключить TCP прослушиватель для IPv6, раскомментировав строку, явно указывающую на использование IPv4:
Также можем включить логирование службы (изменим путь к лог-файлу по умолчанию, добавив в /var/log/ отдельный подкаталог vlmcsd ):
. LogFile = /var/log/vlmcsd/vlmcsd.log .
После правок файла конфигурации создаём подкаталог под логи и перезапускаем службу:
# mkdir /var/log/vlmcsd # systemctl restart vlmcsd.service
Убедимся, что в системе поднялся TCP-прослушиватель службы на порту 1688:
# ss -lnptu | grep 1688
Не забываем открыть соответствующий порт в правилах nftables/iptables.
Теперь давайте посмотрим, как у нас обстоят дела с логированием работы службы. Если попытаемся проверить лог-файл, обозначенный в конфигурации vlmcsd.ini , то можем обнаружить его отсутствие в файловой системе. Это связано в тем, что гражданин, который готовил файлы дебаиназиации, не очень заморачивался по поводу культуры запуска службы.
Давайте заглянем в свойства службы, как юнита systemd:
# systemctl cat vlmcsd
Как увидим, запуск службы настроен в контексте пользователя » nobody «.
Исправим эту ситуацию, создав нового выделенного пользователя, например » vlmcsd «, и написав правила переопределения (override) для юнита systemd.
Создаём нового системного пользователя:
# useradd -s /usr/sbin/nologin -r -M vlmcsd
Отдельный подкаталог под логи мы уже создали ранее, поэтому теперь назначаем на данный подкаталог права для выделенного пользователя и его группы:
# chown -R vlmcsd:vlmcsd /var/log/vlmcsd
Теперь создадим override для службы vlmcsd.service таким образом, чтобы служба запускалась в контексте пользователя » vlmcsd » с одноимённой группой.
# systemctl edit vlmcsd.service
Добавляем в override-файл следующий фрагмент:
[Service] User=vlmcsd Group=vlmcsd
Сохраняем override-файл, закрываем его и перезапускаем конфигурацию служб:
# systemctl daemon-reload # systemctl restart vlmcsd.service # systemctl cat vlmcsd.service
Проверяем: состояние службы; наличие TCP прослушивателя; пользователя, от которого запущена служба; успешность записи в лог файл
# systemctl status vlmcsd.service # ss -lnptu | grep 1688 # ps -aux | grep vlmcsd # cat /var/log/vlmcsd/vlmcsd.log
Как видим, служба запущена с учётом ранее настроенного нами переопределения с процессом от имени выделенного пользователя » vlmcsd «, в системе доступен TCP-прослушиватель на порту 1688, а логи службы успешно записываются в указанный нами файл. На этом настройку KMS сервера можем считать законченной и переходить к его тестированию.
Проверка работы KMS
Для возможности активации с развёрнутого KMS сервера, ОС Windows должна быть настроена в качестве KMS клиента путём предварительной установки в систему публично доступного ключа Generic Volume License Key (GVLK).
Найти ключи GVLK для клиентских и серверных ОС Windows можно по адресу: «Key Management Services (KMS) client activation and product keys for Windows Server and Windows»
Попробуем провести активацию современной серверной ОС Windows Server 2022 21H2 Standard. Для этого на только что установленной и ещё неактивированной ОС с правами администратора выполним команды установки GVLK ключа, указания адреса KMS сервера и последующей активации:
slmgr.vbs -ipk VDYBN-27WPP-V4HQT-9VMD4-VMK7H slmgr.vbs -skms slmgr.vbs -ato
При выполнении последней команды мы должны получить сообщение об успешной активации Windows.
Проверить текущий статус активации можем командой:
slmgr.vbs -dlv
Аналогичным образом проверяем возможность активации клиенткой ОС Windows 10 21H2 Pro, используя GVLK » W269N-WFGWX-YVC9B-4J6C9-T83GX «.
Теперь нам остаётся проверить возможность активации пакета Microsoft Office.
Официальные ключи GVLK для Office 2016/2019/2021 можно найти по ссылке: «GVLKs for KMS and Active Directory-based activation of Office, Project, and Visio — Deploy Office».
Например, для активации 32-битной версии Office 2016 Pro на Windows 10 можно выполнить команды вида:
cd /d "C:\Program Files (x86)\Microsoft Office\Office16" cscript ospp.vbs /sethst: cscript ospp.vbs /act
Как видим, офисный пакет успешно активировался. Проверить текущий статус активации Office можно командой:
cscript ospp.vbs /dstatusall
Другие варианты развертывания сервера KMS
Если описанный выше вариант самостоятельного развёртывания сервера KMS на базе исходных кодов vlmcsd кажется вам чем-то сложным и у вас полностью атрофировано чувство страха перед «чёрными ящиками» в виде готовых виртуальных аплайнсов из непроверенных источников, то можете обратить внимание на проект Иранских коллег с ресурса «DiGiBoY».
«DiGiBOX» – это миниатюрный образ готовой виртуальной машины VMWare, собранный на базе 32-битной версии Alpine Linux, требующий 1 процессорного ядра и 128 MB ОЗУ.
При запуске аплайнса достаточно указать базовые параметры IP с помощью TUI в команде digibox-config и уже через минуту эта система будет готова принимать и обрабатывать запросы от KMS-клиентов из локальной сети. Аплайнс не требует доступа в интернет и может быть размещён в изолированной сетевой «песочнице», из которой достаточно иметь открытый порт TCP 1688 для работы сервера KMS.
Как активировать Microsoft Office 2010 на Linux
О том, как установить Microsoft Office 2010 на Linux codeby.net уже писал здесь. В этой подробной инструкции подробно расписана вся эта простая процедура. Microsoft Office 2010 отлично работает на Linux — никаких нареканий.
Но некоторые пользователи испытывают проблемы с его активацией. Это сделать (активировать) довольно просто, но нужно знать КАК это сделать. Я покажу на примере Microsoft Toolkit 2.5.2 Official.
Откройте в PlayOnLinux ваш список виртуальных дисков. Мой диск называется test:
Выберете вкладку «Установка компонентов»:
Найдите пункт dotnet40 и нажмите Установка (таким образом, в наш виртуальный диск мы дополнительно установим Microsoft .NET Framework 4 — это нужно для работы файла Microsoft Toolkit.exe):
Дожидаемся окончания скачивания/установки/настройки.
Нам нужно скопировать файл Microsoft Toolkit.exe в наш виртуальный диск. Найдите каталог (любым файловым менеджером) ~/PlayOnLinux’s virtual drives/нужная_виртуальная_машина/drive_c/ . Т.е. в вашей домашней папке ищите PlayOnLinux’s virtual drives/ , в этом каталоге ищите папку с названием вашего виртуального диска (у меня — test) и далее внутри этой папке перехоодите по пути /drive_c/
Моя домашняя папка — mial, следовательно, полный путь в моём случае /home/mial/PlayOnLinux’s virtual drives/test/drive_c/
И сюда копируем файл Microsoft Toolkit.exe.
Теперь переходим во вкладку Разное:
И выберете «Выполнить .exe файл на этом виртуальном диске». В открывшемся окне ищите каталог ~/PlayOnLinux’s virtual drives/[B]нужная_виртуальная_машина[/B]/drive_c/windows/ . Т.е. в вашей домашней папке ищите PlayOnLinux’s virtual drives/ , в этом каталоге ищите папку с названием вашего виртуального диска (у меня — test) и далее внутри этой папке перехоодите по пути /drive_c/windows/
Моя домашняя папка — mial, следовательно, полный путь в моём случае /home/mial/PlayOnLinux’s virtual drives/test/drive_c/windows/
Находите там файл explorer.exe и нажимаете Открыть:
Теперь уже в левой стороне нового окна переходите «Рабочий стол» → «Мой компьютер» → “C”:
В это окне двойным кликом запускаем наш файл для активации Microsoft Toolkit.exe:
Если вы уже устанавливали Microsoft Office на Windows, то вы уже знаете, что это такой и что нужно делать. Нажмите на иконку офиса — программа выдаст сообщение об ошибке, но на работоспособность этой программы это не скажется, просто нажмите Continue:
Я для себя, например, установил KMS Server Service – вы можете проделать другие обычные процедуры: