RDP (сокращение «Remote Desktop Protocol») — это проприетарный протокол для доступа к удаленному рабочему столу. По умолчанию он установлен во все современные ОС линейки Windows, однако в качестве сервера может выступать и линукс-система с графическим интерфейсом и установленным пакетом xrdp. В рамках этой статьи мы сосредоточимся на linux rdp клиентах и их настройке, а также рассмотрим основные принципы его работы.
RDP расположен на прикладном уровне сетевой модели OSI и работает на основе протокола транспортного уровня TCP. Схема его работы выглядит следующим образом:
Сервер — это компьютер, К которому происходит удаленное подключение. RDP-клиент — приложение на компьютере, С которого происходит подключение. Во время сессии все вычислительные процессы лежат на плечах сервера. На RDP-клиент поступает графический интерфейс ОС сервера, которой RDP-клиент управляет с помощью устройств ввода. Графический интерфейс на RDP-клиент поступает в виде точной копии графического вывода ОС сервера или в виде графических примитивов (прямоугольники, круги, текст и т.п.) для экономии трафика. По умолчанию RDP использует порт 3389, но его можно поменять при необходимости.
Пример использования RDP — управление с linux удаленным рабочим столом Windows. Находясь в любой точке мира, вы можете подключиться к нему через интернет и работать, не задумываясь о производительности вашего RDP-клиента.
Изначально RDP появился в WIndows NT 4.0. По умолчанию этот протокол предустановлен во всех ОС линейки Windows. Однако реализация Linux remote desktop требует установки специального программного обеспечения.
Для обеспечения безопасности RDP-сессии используются два метода: внутренний и внешний.
Standart RDP Security — это внутренняя подсистема безопасности. Сервер генерирует ключи RSA и сертификат открытого ключа. Во время подключения RDP клиент получает их. В случае подтверждения проводится аутентификация.
Enhanced RDP Security — это метод обеспечения безопасности с помощью внешних средств. Существуют различные способы обеспечения защиты передаваемых данных, например, протокол TLS.
Наиболее распространенный сценарий использования RDP — подключение к выделенному Windows-серверу с компьютера, работающего под другой системой, например с помощью linux-клиента.
Выгодно арендовать выделенный сервер можно на timeweb.cloud
Чтобы сделать удаленный доступ с клиента в принципе возможным, необходимо правильно настроить целевое устройство. Сама настройка довольно простая — все должно работать «из коробки» во всех современных Windows системах (в большинстве редакций). Как уже упоминалось, rdp клиент windows также предустановлен в большинстве современных систем.
Сначала разрешаем подключение к компьютеру через RDP. Делается это во вкладке Удаленный доступ в Свойствах системы:
Также тут можно выбрать пользователей, у которых будет доступ (по умолчанию только у администратора).
Не лишним будет проверить настройки брандмауэра, который может блокировать соединение. В некоторых системах профиль «Общий» и «Частный» для входящих подключений RDP по умолчанию выключен, и, если сервер не входит в домен, то RDP работать не будет. Поэтому переходим в Брандмауэр Windows->Разрешенные приложения и ставим необходимые галочки:
Если система находится за роутером, то возможно понадобится настройка портов. Сделать это можно через веб-интерфейс роутера в разделе Port Forwarding (зависит от модели роутера). Напомним, что RDP использует порт TCP 3389 по умолчанию.
vds
Сайт: rdesktop.org
Rdesktop linux — это свободный, легкий и надежный RDP-клиент (лицензия GPL), доступный для Linux, BSD и Microsoft Windows. Реализует большинство функций RDP 5: кеширование bitmap, сжатие и шифрование потоков, автоматическую аутентификацию, RemoteApp, NLA. Также поддерживает RDP 4.0, используемый в Windows NT 4.0 Terminal Server Edition и Windows 2000 Server.
Содержится в репозиториях многих дистрибутивов, так что скачать и установить ubuntu rdp client или debian rdp client можно с помощью пакетного менеджера. Например, в Ubuntu это делается командой:
sudo apt install rdesktop
Подключение и настройка происходит полностью в командной строке. Формат rdp команды:
rdesktop [опция] сервер[:порт]
Опции:
Остальные ключи можно посмотреть в man
.
Сайт: remmina.org
Remmina linux — программа-клиент удаленного рабочего стола с графическим интерфейсом, написанная на GTK+. Идет под лицензией GPL. Помимо RDP, remmina работает также с протоколами VNC, NXM XDMCP, SPICE, X2Go и SSH.
Одной из главных особенностей является расширение возможностей с помощью плагинов, например добавление поддержки новых протоколов. Поэтому при базовой установке в настройках remmina вы не найдете RDP. Для этого нужно установить дополнительный плагин (пакет freerdp). После этого перезагрузите программу, и RDP станет доступным из меню.
Для добавления нового соединения нажмите выделенную кнопку:
Далее откроется окно с настройкой подключения. Здесь раскрывается еще один плюс Remmina — возможность гибкой настройки (скорость и качество отображения, фоновый рисунок, горячие клавиши, темы оформления, анимации и т.д.). Не волнуйтесь, для обычного подключения вам нужно знать лишь данные пользователя удаленной машины и IP-адрес:
Сохраняем настройку. Теперь мы можем подключаться к нужной машине в два клика из главного меню:
Если возникла необходимость запуска remmina на windows, то на официальном сайте есть соответствующий гайд.
Сайт: freerdp.com
FreeRDP — форк проекта rdesktop, распространяемый под лицензией Apache. В отличие от своего прародителя, который в последний раз обновлялся в 2019 году, FreeRDP активно поддерживается создателями.
FreeRDP является терминальным клиентом. Запуск и настройка происходят полностью в командной строке. Структура команды и ключи практически такие же, как и у rdesktop, например:
xfreerdp -u USERNAME -p PASSWORD -g WIDTHxHEIGHT IP
С помощью этой команды происходит подключение к серверу по адресу IP под именем USERNAME с паролем PASSWORD с отображением рабочего стола в окне:
Сайт: guacamole.apache.org
Самый простой и при этом самый сложный вариант удаленного управления linux. Простой, потому что не нужно никаких программ, сервисов и клиентов — все работает прямо в браузере. Сложный, потому что для функционирования требуется один раз установить и сконфигурировать сервер.
Apache Guacamole — это клиентский шлюз для удаленного подключения, работающий на HTML5. Он позволяет использовать целый набор протоколов удаленного доступа: Telnet, SSH, VNC, RDP — через веб-интерфейс. Документация по установке и конфигурации сервиса очень внушительна, однако на просторах Интернета есть множество готовых скриптов, которые автоматически помогут сделать базовую конфигурацию.
Скачиваем скрипт установки:
wget https://git.io/fxZq5 -O guac-install.sh
Делаем файл исполняемым:
chmod +x guac-install.sh
Запускаем:
./guac-install.sh
После установки скрипт выдаст адрес для подключения и пароль. Чтобы подключиться к серверу Windows через RDP, в панели администрирования заходим в «Настройки», выбираем «Подключения» и создаем новое:
Так как для RDP нужно знать лишь данные пользователя на удаленной машине и IP-адрес, вводим минимально нужное количество информации:
Теперь на главной странице доступно настроенное подключение, через которое мы можем получить удаленный рабочий стол:
Разверните свой Linux-сервер в пару кликов
RDP протокол — это удобное средство для подключения к удаленной машине под управлением Windows или Linux-системы с графическим интерфейсом. Сервер практически не требует настроек, кроме пары галочек и конфигурации брандмауэра, а клиентские программы радуют своим разнообразием.