Настройка удаленного рабочего стола xrdp

Remote Desktop Protocol (RDP) — это сетевой протокол от Microsoft, с помощью которого вы можете установить соединение с удаленным компьютером и управлять его операционной системой, используя графический интерфейс.

Также можно получить доступ и взаимодействовать с графическим пользовательским интерфейсом удаленного сервера Linux с помощью инструмента xrdp.

В этом руководстве мы установим и настроим RDP-сервер с помощью xrdp и получим к нему доступ через RDP-клиент с вашего компьютера. Также мы разберем, как установить доступ к удаленному серверу Linux, используя RDP-соединение.

Вам понадобятся:

  • Сервер Ubuntu 22.04 с пользователем без root прав с привилегиями sudo, не менее 1 ГБ ОЗУ и брандмауэром. Настроить их можно по этому мануалу.
  • Локальный компьютер с установленным клиентом RDP. Список RDP-клиентов для  ОС представлен ниже:
    • В Windows вы можете использовать приложение для подключения к удаленному рабочему столу без сторонних программ.
    • В macOS вы можете использовать приложение Microsoft Remote Desktop application.
    • В Linux вы можете использовать FreeRDP или Remmina

1: Установка окружения рабочего стола

На этом этапе вы установите и настроите среду рабочего стола на своем сервере. По умолчанию сервер Ubuntu доступен только через терминал. Для доступа к пользовательскому интерфейсу необходимо установить среду рабочего стола.

Например, Xfce предлагает удобную среду рабочего стола для систем на базе Linux.

Подключитесь к своему серверу с помощью SSH и обновите системные пакеты с помощью команды:

sudo apt update

Затем установите пакеты xfce и xfce-goodies на свой сервер:

sudo apt install xfce4 xfce4-goodies -y

Вам будет предложено выбрать диспетчер отображения. Это программа, которая управляет графическими механизмами входа в систему и сеансами пользователей. Вы можете выбрать любой вариант из списка доступных менеджеров, но мы будем пользоваться gdm3.

После установки среды рабочего стола установите xrdp на свой сервер.

2: Установка xrdp

xrdp — это служба удаленного рабочего стола для серверов Linux. Она позволяет нам подключать удаленные настольные системы Linux через Microsoft RDP.

Чтобы установить xrdp, выполните в терминале следующую команду:

sudo apt install xrdp -y

Команда покажет статус active (running):

 xrdp.service - xrdp daemon
     Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
     Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago
       Docs: man:xrdp(8)
             man:xrdp.ini(5)
   Main PID: 17904 (xrdp)
      Tasks: 1 (limit: 1131)
     Memory: 1016.0K
     CGroup: /system.slice/xrdp.service
             └─17904 /usr/sbin/xrdp

Если статус xrdp не running, скорее всего, вам придется запустить службу вручную с помощью этой команды:

sudo systemctl start xrdp

После этого снова проверьте статус, чтобы убедиться, что xrdp running.

Вы успешно установили xrdp на свой сервер. Далее мы покажем конфигурацию xrdp для приема удаленных подключений.

3: Настройка xrdp и обновление брандмауэра

На этом шаге мы рассмотрим конфигурацию xrdp по умолчанию, которая хранится в /etc/xrdp/xrdp.ini, и добавим конфигурацию для подключения RDP. Также нужно обновить настройки брандмауэра.

xrdp.ini — это файл конфигурации по умолчанию для настройки подключений RDP к серверу xrdp. Файл конфигурации можно изменить и настроить в соответствии с требованиями к RDP-подключению.

Откройте файл в текстовом редакторе nano или в редакторе на ваш выбор:

sudo nano /etc/xrdp/xrdp.ini

Файл конфигурации содержит различные разделы:

  • Globals определяет некоторые глобальные параметры конфигурации для xrdp.
  • Logging определяет параметры подсистемы логирования.
  • Channels определяет несколько параметров канала, которые поддерживает RDP.
  • Session types определяет поддерживаемые xrdp типы сеансов. Конфигурация каждого типа сеанса определяется как отдельный раздел по имени типа сеанса, заключенному в квадратные скобки, например [Xorg] и [XVnc]. В файле нет заголовка[Sessions types]; вместо этого он записывается как комментарий.

В файле конфигурации перейдите в раздел Session types. Вы найдете несколько поддерживаемых типов сеансов и их параметры в списке:

...

;
; Session types
;

; Some session types such as Xorg, X11rdp, and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000

[vnc-any]
...

[neutrinordp-any]
...

...

По умолчанию параметры username  и password настроены на ask, что означает, что пользователю будет предложено ввести свое name, username и password для подключения через RDP. Эти данные можно будет изменить, если у вас будет такая необходимость. Для первого RDP-подключения к серверу достаточно конфигурации по умолчанию.

Сохраните и закройте файл, когда закончите.

Теперь перейдите в домашний каталог вашего пользователя:

cd ~

Затем создайте файл.xsession в папке /home/sammy и добавите xfce4-session в качестве менеджера сеансов для использования при входе в систему:

echo "xfce4-session" | tee .xsession

tee записывает строку “xfce4-session” в файл .xsession. Приведенная выше конфигурация гарантирует, что xfce4-session используется в качестве диспетчера сеансов при запросе входа в систему. В результате установки xfce в качестве среды рабочего стола xfce4-session служит его менеджером сеансов. Если вы не включите эту информацию в файл .xsession, менеджер сеансов не будет выбран, и сеанс RDP не сможет подключиться к графическому дисплею.

Перезапустите сервер xrdp:

sudo systemctl restart xrdp

Затем нужно настроить брандмауэр, чтобы разрешить удаленные подключения с вашего внешнего IP-адреса через порт 3389. Соединение RDP обслуживается через порт TCP/IP 3389. Чтобы получить доступ к удаленному серверу через RDP, вы должны открыть порт 3389 в своем брандмауэре.

Сначала найдите внутренний IP-адрес вашего компьютера:

curl ifconfig.me

В Windows используйте командную строку для запуска этой команды.

curl отправляет запрос на ifconfig.me, который возвращает ваш внешний IP-адрес в качестве вывода:

...
your_local_ip

Затем разрешите доступ к порту RDP 3389 на вашем удаленном сервере, заменив your_local_ip результатом последней команды:

sudo ufw allow from your_local_ip/32 to any port 3389

Проверьте статус вашего брандмауэра UFW:

sudo ufw status

Результат будет такой:

Status: Active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
3389                       ALLOW       your_local_ip                 
OpenSSH (v6)               ALLOW       Anywhere (v6)  
...

Вы включили порт 3389 для приема соединений с вашего внешнего IP-адреса. Теперь проверьте RDP-соединение вашего локального компьютера с удаленным сервером.

4: Тестирование RDP-соединения

Сейчас мы протестируем соединение RDP с вашего локального компьютера. В следующих пунктах показаны действия по тестированию соединения на компьютерах с Windows, macOS и Linux.

Тестирование RDP-подключения в Windows

Запустите приложение подключения к удаленному рабочему столу.

Введите внешний IP-адрес вашего удаленного сервера и имя пользователя. Может быть, вам придется нажать стрелку вниз для отображения параметров, чтобы ввести имя пользователя:

Нажмите кнопку Connect. Если вы получаете предупреждениеRemote Desktop can’t connect to the remote computer”, убедитесь, что вы включили опцию Remote Desktop в настройках системы.

Отметьте опцию «Рабочий стол» в настройках вашей системы.

Нажмите Yes, если появится всплывающее окно подтверждения:

Затем введите имя пользователя вашего удаленного сервера (sammy) и пароль, который вы создали для него во время первоначальной настройки сервера. Нажмите Ок.

После входа в систему вы сможете получить доступ к среде рабочего стола Ubuntu:

Используя RDP, вы успешно подключились к удаленному серверу Ubuntu с вашего локального компьютера. Можно закрыть его, когда закончите работу с графическим рабочим столом.

Тестирование подключения RDP в macOS

Чтобы проверить подключение через клиент удаленного рабочего стола в macOS, сначала запустите приложение Microsoft Remote Desktop Connection.

Нажмите «Add PC», затем введите внешний IP-адрес вашего удаленного сервера:

Вы можете добавить учетную запись пользователя при настройке подключения:

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

Нажмите Yes, чтобы пропустить всплывающее окно подтверждения:

После входа в систему вы можете получить доступ к удаленному рабочему столу Ubuntu. Можно закрыть его, когда закончите работу.

Тестирование RDP-подключения в Linux

Вам понадобится RDP-клиент для проверки RDP-соединения на локальном компьютере с Linux. Сначала установите RDP-клиент remmina для Ubuntu:

sudo apt install remmina

Выберите Y, если будет предложено завершить установку. Эта команда установит Remmina, клиент удаленного рабочего стола с открытым исходным кодом, в вашей системе Ubuntu. Для установки на другие дистрибутивы Linux вы можете просмотреть документацию Remmina.

После установки запустите приложение remmina на локальном компьютере с Linux и введите внешний IP-адрес удаленного сервера. Нажмите Enter, чтобы подключиться к удаленному рабочему столу.

Затем введите имя пользователя удаленного сервера (напоминаем, что для этого руководства имя пользователя — sammy) и пароль, который вы создали для него во время первоначальной настройки сервера. Нажмите Ок.

Возможно, вам придется снова ввести пароль пользователя, чтобы разблокировать удаленный рабочий стол.

После входа в систему вы сможете получить доступ к среде рабочего стола Ubuntu.

Используя RDP, вы успешно подключились к удаленному серверу Ubuntu с вашего локального компьютера. Можно его закрыть, когда закончите работу с графическим рабочим столом.

Убедившись, что удаленное соединение работает, вы можете применять эту последовательность действий всякий раз, когда вам нужно использовать графический интерфейс для вашего удаленного сервера Linux.

Итоги

Надеемся, что это руководство помогло вам установить и настроить XRDP. Теперь вы можете удаленно управлять своей ОС через соединение RDP с локального компьютера.

Tags: ,

Добавить комментарий