И так, доброе время уток, мы здесь будем настраивать Drova Desktop для работы без наших аккаунтов.
Нам понадобятся:
- ShadowDefender ( активированный и защищенный паролем)
- Роутер, прошитый OpenWrt или Debian( чтобы ловить подключение и исполнять команды ) с python 3.11
- Установленный openssh-server на Windows и добавленный в автозагрузку
- Установленный PSTools от Windows для PsExec ( для работы с интерактивной сессией и запуска на ней нужных приложений )
Никакие сетевые настройки создавать ненадо - надо установить либо на свободную физическую linux машину или создать виртуалку, которая будет следить за состоянием. Управление windows идет по SSH - так что это обязательно к установке.
Подключитесь к вашей Windows удобным вам способом, откройте powershell от имени администратора и исполните такие команды
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' | Add-WindowsCapability -OnlineПодождите пока установится ssh-server и теперь его надо добавить автозагрузку и запустить следующими командами:
Start-Service -Name "sshd"
Set-Service -Name "sshd" -StartupType AutomaticКачаем с оффсайта последнюю версию: https://www.shadowdefender.com/ Сайт почти мертвый и не обновил сертификат, увы это нормально. Не стесняемся качаем. Чтобы установить, вам надо распаковать в начале Setup.exe ( правой кнопкой нажимаете и там через 7z можно распаковать в папку рядом) После того как получили папку с 3мя файлами:
Setup.exe
Setupx64.exe
Setupx86.exe
Так как все образы у нас уже 64 - распаковываем Setupx64.exe - и получаем много файлов и Setup.exe
Переименовываете Setup.exe в zSetup.exe - и после этого установка будет успешной.
Как только установили и перезагрузили - надо зайти в ShadowDefender. Там перейти в Administration и установить пароль через Enable password control
Опционально - убираем галочку Enable windows tip - тогда у вас не будет висеть надоедливая плашка что мы в shadow mode
Выставляем галочку Need password when commiting или убираем ваще контекстное меню галкой выше
Теперь у вас настроен SD - не забываем пароль - он нам понадобится, мы можем переходить к следующей главе.
Качаем PsTools с ссылки https://learn.microsoft.com/ru-ru/sysinternals/downloads/psexec - и распаковываем в C:\Windows\System32 - чтобы у нас было всегда доступен psexec. Все exe файлы должны лежать в System32 или на любом другом пути, который прописан в PATH env переменную. Но легче подложить в System32.
Для того чтобы начать, склонируйте данный репозиторий на роутер или тачку ( протестировано на linux - но должно работать и на windows - но на windows вы сами создаете задачи для автозапуска).
Для debian вам надо установить python3 + pipx + git
apt insatll python3-full pipx gitУстановите poetry
pipx install poetryСкачайте проект в /opt/drova-desktop/
git clone https://github.com/sergius-dart/DrovaKeeneticDesktop.git /opt/drova-desktop/Перейдите в папку проекта
cd /opt/drova-desktop/Установите зависимости проекта
poetry installПосле этого надо настроить env переменные. Выполните команду cp .env.example .env и редактируйте .env файл - там находятся настройки для скриптов, давайте их рассмотрим.
WINDOWS_HOST=192.168.0.10 # ip адрес вашей тачки, на которой вы хотите развернуть Desktop
WINDOWS_LOGIN=Administrator # ваш локальный администратор - который должен быть залогинен и под кем будет заходить клиент
WINDOWS_PASSWORD=VeryStrongPassword # пароль от этого пользователя
SHADOW_DEFENDER_PASSWORD="ReallyVeryStrongPassword" # пароль от ShadowDefender - не оставляйте его без пароля! А то вам закоммитят все что натворили!
SHADOW_DEFENDER_DRIVES="CDE" # здесь перечислите слитно все диски, на которых должен сработать ShadowDefender - в данном случае 3 диска: C, D и E - подразумевается что других нет. Если диск 1 - только C - оставляете только EПосле настройки теперь можно проверить, работает ли и верно ли указаны настройки. Залогинтесь по VNC в ваш windows, откройте со своими credentials steam и epic games - а так же желательно открыть ShadowDefender - чтобы увидеть что все ок.
Дальше выполняем команду на роутере:
poetry run drova_validateлибо так если вы не .env в NAME.env сделали
ENV_LOCATION=`pwd'/NAME.env poetry run drova_validateЕсли написало Ok! - значит вы выставили .env верно и можно переходить к следующей части
entware ( debian на keenetic ) - поддерживает только upstart - для этого есть скрипт init.d/drova_poll - мы его никуда перекладывать не будем - нам надо создать сервис, и вызывать его.
Если у вас не такой сетап - читайте и думайте, из коробки тогда не взлетит. Давайте создадим сервис drova_socket.i9_3080ti
Для этого мы создадим файл командой
touch /etc/init.d/drova_poll.i9_3080ti
chmod +x /etc/init.d/drova_poll.i9_3080tiДальше открываем его например в nano или удобном вам редакторе и вставляем такой контект:
#!/bin/bash
ENV_LOCATION=/opt/drova-desktop/NAME.env
. /opt/drova-desktop/init.d/drova_poll "$@"ENV_LOCATION - здесь находится ваш файл конфигурации, вместо NAME можно использовать то что вам удобно, но это должен быть путь до ваших настроек. Если у вас 1 компьютер, то можете NAME не указывать и тогда просто прописать ENV_LOCATION=/opt/drova-desktop/.env - по дефолту. Или ваще ничего не указывать. Тоже будет работать.
Как только создали, проверье командой
/etc/init.d/drova_poll.i9_3080ti startОшибок быть не должно, если есть - надо возвращаться к настроке ENV_LOCATION или настройке .env - если вы использовали NAME
Чтобы протестировать конфигурацию можно выполнить команду в папке проекта
ENV_LOCATION=/opt/drova-desktop/NAME.env poetry run drova_validateПо классике вы должны увидеть Ok! если все ок.
Удачи!
Systemd (у вас виртуалки нормальная или физическая машина с нормальным дистрибутивом( написано для debian 12/13))
Для работы с systemd ( если вы не на роутере а на отдельной тачке или виртуалке, где полноценная debian с systemd )
Делаем ссылку на сервис
ln -s /opt/drova-desktop/systemd/[email protected] /etc/systemd/system/[email protected]Перезагружаем демоны systemd
systemctl daemon-reloadСоздаем .env файлы для ваших тачек формата NAME.env - где вместо NAME то что вы хотите, например имя тачки. Для примера - если тачка называется i9_3080ti - то вы должны создать файл с настройками i9_3080ti.env
Прописываем настройки как в прошлом пункте, и проверяем командой (i9_3080ti заменяете на ваше имя)
ENV_LOCATION=i9_3080ti.env poetry run drova_validateЕсли все ок - вы должны увидеть Ok!
Теперь можно запустить сервис командой - где вместо NAME подставить ваше имя ( уже подставлено i9_3080ti )
systemctl start drova_poll@i9_3080tiЕсли ошибок не произошло - можно поставить в автозапуск ( подставьте ваше имя вместо i9_3080ti )
systemctl enable drova_poll@i9_3080tiУдачи!