Задача: разобрать как на Lubuntu 22.04 Desktop настроить rdp (и RDP+NLA) подключение к Windows Server 2012 R2 Std

На домашней системе Lubuntu 22.04 Desktop, для работы и в своих проектах я использую менеджер удаленного подключения к системам — имя ему remmina. С этим инструментом я уже давно, наверное, как только выбрал дистрибутив, на котором строю всю системно административную часть.

Remmina — клиент удаленного рабочего стола c поддержкой протоколов RDP, SFTP, SPICE, SSH, VNC, Web, X2Go, что позволяет подключаться к рабочим столам как Windows, так и Linux., а также и к прочим системам, где используется стандартный сервер VNC.

Решил проработать взаимодействие с системами Windows через протокол RDP дабы не удаленно оказывать помощь с ноутбука Lenovo E555 с установленной Ubuntu 18.04 Server, а через стационарную с осью Ubuntu 22.04. Может что изменилось — обычно так и есть, ведь любят же разработчики что-то усовершенствовать, но при этом ломать уже устоявшееся.

Итак, сперва все отрабатываю на Lubuntu 22.04 Desktop которая установлена внутри моего тестового полигона на базе Debian 10 + Proxmox 6.4-13

Шаг №1: Разворачиваю виртуальную машину с осью SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_English_-4_MLF_X19-82891.ISO в качестве возможности подключения оставляю взаимодействие через RDP + NLA

Win + X - Control Panel - View by: Category -> Small icons - System - Advanced system settings — вкладка Remote и выставлены настройки:

  • Allow remote connection to this computer: отмечаю
  • Allow connections only from computers running Remote Desktop with Network Level Authentication (recommended)

Доступ к серверу по RDP + NLA

Шаг №2: На Lubuntu 22.04 Desktop устанавливаю менеджер удаленных подключений к системамremmina из дефолтных репозитариев текущей системы:

ekzorchik@ekzphome:~$ apt-cache show remmina | grep Version
Version: 1.4.25+dfsg-1
ekzorchik@ekzphome:~$
ekzorchik@ekzphome:~$ sudo apt-get install -y remmina-*

Шаг №3: Запускаю менеджер удаленных подключений Remmina:

нажимаю клавишу Win - Internet - Remmina

Запускаю менеджер удаленных подключений Remmina

Шаг №4: Создаю RDP подключения к Windows Server 2012 R2 Std, где подключение только, как RDP + NLA:

нажимаю + (New connection profile)

  • Name: server2012r2rdpnla
  • Protocol: RDP - Remote Desktop Protocol

вкладка Basic

  • Server: 172.35.35.28
  • Username: ekzorchik
  • Password: 712mbddr@
  • Domain: WORKGROUP
  • Resolution: выбираю Use client resolution
  • Color depth: True color (24 bpp)

вкладка Advanced

  • Quality: Poor (fastest)
  • Security protocol negotiation: NLA protocol security
  • Gateway transport type: HTTP

и нажимаю Save

Шаг №5: Проверяю, инициировав созданное подключение под именем: server2012r2rdpnla

На заметку: Созданное и сохраненное подключения располагается по пути

ekzorchik@ekzphome:~$ ls .local/share/remmina/
group_rdp_server2012rdpnla_172-35-35-28.remmina
ekzorchik@ekzphome:~$

Проверяю, инициировав созданное подключение под именем: server2012r2rdpnla

но увы получаю ошибку:

Could not connect to the RDP server: "172.35.35.28" via TLS.

Начинаю разбираться, закрываю клиент Remmina.

в логах на Windows Server 2012 R2 Std - Computer Management - System Tools - Event Viewer - Windows Logs - System

Event ID: 36874

Description: An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.

Event ID: 36888

Description: A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 40. The Windows SChannel error state is 1205.

Пока разбираюсь.

Шаг №6: Попробую установить клиент Remmina не через дефолтные репозитарии а через подключаемые, но сначала удаляю пакет Remmina и все относящиеся к нему конфигурационные файлы:

ekzorchik@ekzphome:~$ sudo apt-get remove -y --purge remmina-*
ekzorchik@ekzphome:~$ rm -Rf ~/.config/remmina/
ekzorchik@ekzphome:~$ rm -Rf ~/.cache/remmina/
ekzorchik@ekzphome:~$ rm -Rf ~/.local/share/remmina/

Шаг №7: Подключаю репозитарий и устанавливаю из него пакет Remmina:

ekzorchik@ekzphome:~$ sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
ekzorchik@ekzphome:~$ apt-cache show remmina | grep Version
Version: 1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1
Version: 1.4.25+dfsg-1
ekzorchik@ekzphome:~$
ekzorchik@ekzphome:~$ sudo apt-get install -y remmina-*
ekzorchik@ekzphome:~$ dpkg -l | grep remmina-
ii  remmina-common                                1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 all          Common files for Remmina
ii  remmina-dev:amd64                             1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        Headers for Remmina
ii  remmina-plugin-exec:amd64                     1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        EXEC plugin for Remmina
ii  remmina-plugin-kiosk:amd64                    1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        Kiosk plugin for Remmina
ii  remmina-plugin-kwallet:amd64                  1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        KWallet plugin for Remmina
ii  remmina-plugin-python:amd64                   1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        Python support for Remmina
ii  remmina-plugin-rdp:amd64                      1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        RDP plugin for Remmina
ii  remmina-plugin-secret:amd64                   1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        Secret plugin for Remmina
ii  remmina-plugin-spice:amd64                    1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        Spice plugin for Remmina
ii  remmina-plugin-vnc:amd64                      1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        VNC plugin for Remmina
ii  remmina-plugin-www:amd64                      1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        WWW plugin for Remmina
ii  remmina-plugin-x2go:amd64                     1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1 amd64        X2Go plugin for Remmina
ekzorchik@ekzphome:~$

Шаг №8: Есть задумка сохранить себе установленные пакеты Remmina:

На заметку: от 15.12.2022 — вообще не работает переносимость, т.к. это не только пакеты Remmina но еще и целая простыня. Даже бекап всех пакетов через apt-clone не восстанавливает на новой установленные пакеты Remmina. Разбираюсь как склонировать себе репозитарий

ekzorchik@ekzphome:~$ sudo apt-get install -y dpkg-repack
ekzorchik@ekzphome:~$ dpkg-repack remmina-common
dpkg-repack: error: this program should be run as root (or you could use fakeroot -u); aborting
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-common
dpkg-deb: building package 'remmina-common' in './remmina-common_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_all.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-dev
dpkg-deb: building package 'remmina-dev' in './remmina-dev_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-exec
dpkg-deb: building package 'remmina-plugin-exec' in './remmina-plugin-exec_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-kiosk
dpkg-deb: building package 'remmina-plugin-kiosk' in './remmina-plugin-kiosk_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-kwallet
dpkg-deb: building package 'remmina-plugin-kwallet' in './remmina-plugin-kwallet_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-python
dpkg-deb: building package 'remmina-plugin-python' in './remmina-plugin-python_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-rdp
dpkg-deb: building package 'remmina-plugin-rdp' in './remmina-plugin-rdp_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-secret
dpkg-deb: building package 'remmina-plugin-secret' in './remmina-plugin-secret_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-spice
dpkg-deb: building package 'remmina-plugin-spice' in './remmina-plugin-spice_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-vnc
dpkg-deb: building package 'remmina-plugin-vnc' in './remmina-plugin-vnc_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-www
dpkg-deb: building package 'remmina-plugin-www' in './remmina-plugin-www_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$ sudo dpkg-repack remmina-plugin-x2go
dpkg-deb: building package 'remmina-plugin-x2go' in './remmina-plugin-x2go_1.4.27+ppa202206201051.r3b9cc80f8.d84ef65add~ubuntu22.04.1_amd64.deb'.
ekzorchik@ekzphome:~$

Получилось 12 пакетов

ekzorchik@ekzphome:~$ ls -l *.deb | wc -l
12

их я сохраняю себе в репозитарий Mercurial

ekzorchik@ekzphome:~$ tar cf remmina_1_4_27.tar remmina-*.deb

Итого теперь архив с deb пакетам у меня в домашнем репозитарии связки Mercurial + Web:

ekzorchik@ekzphome:~$ hg clone http://ekzorchik:712mbddr@@/172.35.35.8/hg/ubuntu
destination directory: ubuntu
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
new changesets fd56e03c52ea
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ekzorchik@ekzphome:~$ ls -l ubuntu/
.hg/        ubuntu2204/
ekzorchik@ekzphome:~$ ls -l ubuntu/ubuntu2204/remmina/remmina_1_4_27.tar

Шаг №9: Создаю RDP+NLA подключение через клиента Remmina установленный посредством подключаемого репозитария:

Win - Internet - Remmina

в первый раз запуска

  • Fetch news from remmina.org: отменяю переключатель
  • Use as default remote desktop client: нажимаю Apply

нажимаю + (New connection profile)

  • Name: server2012r2rdpnla
  • Protocol: RDP - Remote Desktop Protocol

вкладка Basic

  • Server: 172.35.35.28
  • Username: ekzorchik
  • Password: 712mbddr@
  • Domain: WORKGROUP
  • Resolution: выбираю Use client resolution
  • Color depth: True color (24 bpp)

вкладка Advanced

  • Quality: Poor (fastest)
  • Security protocol negotiation: NLA protocol security
  • Gateway transport type: HTTP
  • TLS Security Level: 0 - Windows 7 compatible

и нажимаю Save

Шаг №10: Инициирую подключение через созданное соединение к Windows Server 2012 R2 RDP + NLA:

через правый клик мышью на созданном подключении с именем server2012r2rdpnla выбираю Connect

Инициирую подключение через созданное соединение к Windows Server 2012 R2 RDP + NLA

Подтверждаю сертификат удаленной машины

Certificate details:

Subject: CN=srv-rdphome

Issuer: CN=srv-rdphome

Fingerprint: 04:55:e1:3d:a3:8e:d2:d4:21:82:5e:8e:ac:9d:18:e6:89:67:29:4e:8e:bc:84:eb:1e:a2:d8:76:03:b2:59:56

Accept certificate? нажимаю Yes

Подтверждаю сертификат удаленной системы при подключении

и я успешно подключился

Успешное подключение через Remmina к Server 2012 R2 (RDP + NLA)

На заметку: Любое успешное подключение к системам через NLA (я так думаю) отражается в списке сохраняемых отпечатков. Иногда если подключение не идет, можно попробовать удалить отпечаток и попробовать заново.

ekzorchik@ekzphome:~$ cat ~/.config/freerdp/known_hosts2
172.35.35.28 3389 04:55:e1:3d:a3:8e:d2:d4:21:82:5e:8e:ac:9d:18:e6:89:67:29:4e:8e:bc:84:eb:1e:a2:d8:76:03:b2:59:56 Q04gPSBzcnYtcmRwaG9tZQ== Q04gPSBzcnYtcmRwaG9tZQ==
ekzorchik@ekzphome:~$

Шаг №11: Если на серверной системе Windows Server 2012 R2 Std активировано что удаленное подключение только, как RDP (т.е. активировано Allow remote connections to this computer), то подключение будет выглядеть так:

нажимаю + (New connection profile)

  • Name: server2012r2rdp
  • Protocol: RDP - Remote Desktop Protocol

вкладка Basic

  • Server: 172.35.35.28
  • Username: ekzorchik
  • Password: 712mbddr@
  • Domain: WORKGROUP
  • Resolution: выбираю Use client resolution
  • Color depth: True color (24 bpp)

вкладка Advanced

  • Quality: Poor (fastest)
  • Security protocol negotiation: RDP protocol security
  • Gateway transport type: HTTP
  • TLS Security Level: Default

и нажимаю Save, затем подключаюсь, подключение проходит успешно.

Итого: Мое мнение, нужно рабочее окружение протестировать на тестовой среде, все пакеты, зависимости, настройки и только после применить их на боевое. Вот данной заметкой я разобрал, что не всегда дефолтные репозитарии дают тот функционал, который нужен для работы и нужно подключать сторонний, а сейчас у меня под мою систему Lubuntu 22.04 Desktop есть экспортированные пакеты которые я просто скачаю и установлю на боевую систему.

На этом заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.