Как установить сервер Xrdp (удаленный рабочий стол) в Ubuntu 18.04

Обновлено

4 мин чтения

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

В этом руководстве объясняется, как установить и настроить сервер Xrdp на Ubuntu 18.04.

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

Установка среды рабочего стола #

Обычно на серверах Linux не установлена ​​среда рабочего стола. Нашим первым шагом является установка X11 и облегченной среды рабочего стола, которая будет выступать в качестве бэкэнда для Xrdp.

В репозиториях Ubuntu доступно несколько сред рабочего стола (DE). Мы будем устанавливать Xfce. Это быстрая, стабильная и легкая среда рабочего стола, что делает ее идеальной для использования на удаленном сервере.

Введите следующие команды как пользователь с привилегиями sudo для установки Xfce на ваш сервер:

  sudo apt update   sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils  

В зависимости от вашей системы загрузка и установка пакетов Xfce может занять некоторое время.

Установка Xrdp #

Пакет Xrdp доступен в репозиториях Ubuntu по умолчанию. Чтобы установить его, запустите:

  sudo apt install xrdp  

После завершения процесса установки служба Xrdp автоматически запустится . Вы можете проверить, что Xrdp запущен, набрав:

  sudo systemctl status xrdp  

Результат будет выглядеть примерно так:

  ● xrdp.service - демон xrdp Загружен: загружен (/lib/systemd/system/xrdp.service; включен; предустановка поставщика: включен) Active: активен (работает) с Sun  2019-07-28 22:40:53 UTC;  4мин 21с назад Документы: man: xrdp (8) man: xrdp.ini (5) ...  

По умолчанию Xrdp использует /etc/ssl/ файл private/ssl-cert-snakeoil.key , доступный для чтения только пользователям, входящим в группу «ssl-cert». Выполните следующую команду, чтобы добавить пользователя xrdp в группу:

  sudo adduser xrdp ssl-cert  

Вот и все. Xrdp установлен на вашем сервере Ubuntu.

Настройка Xrdp #

Файлы конфигурации Xrdp находятся в каталоге /etc/xrdp каталог. Для базовых подключений Xrdp вам не нужно вносить какие-либо изменения в файлы конфигурации. Xrdp использует рабочий стол X Window по умолчанию, которым в данном случае является XFCE.

Главный файл конфигурации называется xrdp.ini . Этот файл разделен на разделы и позволяет вам устанавливать глобальные параметры конфигурации, такие как адреса безопасности и прослушивания, а также создавать различные сеансы входа в систему xrdp.

Каждый раз, когда вы вносите какие-либо изменения в файл конфигурации, вам необходимо перезапустить Служба Xrdp:

  sudo systemctl restart xrdp  

Xrdp использует файл startwm.sh для запустить X-сессию. Если вы хотите использовать другой рабочий стол X Window, отредактируйте этот файл.

Configuring Firewall #

По умолчанию Xrdp прослушивает порт 3389 на всех интерфейсах. Если вы запускаете брандмауэр на своем сервере Ubuntu (что вы всегда должны делать), вам необходимо добавить правило, которое будет разрешать трафик на порт Xrdp.

Чтобы разрешить доступ к серверу Xrdp. с определенного IP-адреса или диапазона IP-адресов, в этом примере 192.168.1.0/24 , выполните следующую команду:

  sudo ufw allow from  192.168.1.0/24 на любой порт 3389  

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

   sudo ufw allow 3389  

Для повышения безопасности вы можете рассмотреть возможность настройки Xrdp для прослушивания только на локальном хосте и создания SSH-туннеля, который безопасно перенаправляет трафик с вашего локального компьютера. через порт 3389 к серверу на том же порту. Другой безопасный вариант — установить OpenVPN и подключиться к серверу Xrdp через частную сеть.

Подключение к серверу Xrdp #

Теперь, когда вы настроили свой Xrdp server, пора открыть клиент Xrdp и подключиться к серверу.

Если у вас ПК с Windows, вы можете использовать клиент RDP по умолчанию. Введите «удаленный» в строке поиска Windows и нажмите «Подключение к удаленному рабочему столу». Это откроет клиент RDP. В поле «Компьютер» введите IP-адрес удаленного сервера и нажмите «Подключиться».

На экране входа в систему введите свое имя пользователя и пароль и нажмите «ОК».

После входа в систему вы должны увидеть рабочий стол Xfce по умолчанию. Это должно выглядеть примерно так:

Теперь вы можете начать взаимодействие с удаленным рабочим столом XFCE со своего локального компьютера с помощью клавиатуры и мышь.

Если вы используете macOS, вы можете установить приложение Microsoft Remote Desktop из Mac App Store. Пользователи Linux могут использовать клиент RDP, такой как Remmina или Vinagre.

Заключение #

Установка сервера Xrdp позволяет вам управлять своим сервером Ubuntu 18.04 с локального настольного компьютера. через простой в использовании графический интерфейс.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

ubuntu rdp


VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04

  • Блог компании RUVDS.com,
  • Настройка Linux,
  • Системное администрирование,
  • Серверное администрирование,
  • Лайфхаки для гиков

В предыдущей статье мы разобрали запуск сервера VNC на виртуальной машине любого типа. У этого варианта масса недостатков, основных из которых являются высокие требования к пропускной способности каналов передачи данных. Сегодня мы попробуем подключиться к графическому рабочему столу на Linux по RDP (протокол удаленного рабочего стола). Система VNC основана на передаче массивов пикселей по протоколу RFB (Remote Framebuffer), а RDP позволяет отправлять сложные графические примитивы и высокоуровневые команды. Обычно он используется для организации служб удаленных рабочих столов в Windows, но серверы для Linux также доступны.

Оглавление:

Установка графического окружения
Русификация сервера и установка ПО
Установка и настройка сервера RDP
Настройка межсетевого экрана
Подключение к серверу RDP
Менеджер сессий и сеансы пользователей
Переключение раскладок клавиатуры

Установка графического окружения

Мы возьмем виртуальную машину с Ubuntu Server 18.04 LTS с двумя вычислительными ядрами, четырьмя гигабайтами оперативной памяти и жестким диском (HDD) на двадцать гигабайт. Более слабая конфигурация плохо подходит для графического десктопа, хотя это зависит от решаемых задач. Не забывайте использовать промокод Habrahabr10 для получения скидки в 10% при воздействии.

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

  sudo apt-get install xfce4 xfce4-  вкусности xorg dbus-x11 x11-xserver-utils  

Как и в предыдущем случае, мы выбрали XFCE из-за относительно невысоких требований к вычислительным ресурсам.

Русификация сервера и установка ПО

Часто виртуальные машины разворачиваются только с английской локализацией. На десктопе может потребоваться русская, настроить которую несложно. Сначала установим переводы для системных программ:

  sudo apt-get install language-pack-ru  

Настроим локализацию:

  sudo update-locale LANG = ru_RU.UTF-8  

Того же эффекта можно достичь, отредактировать вручную файл/etc/default/locale.

Для GNOME и KDE в репозитории есть пакеты language-pack-gnome-ru и language-pack-kde-ru — они понадобятся, если вы будете использовать программы из этих сред рабочего стола. В XFCE переводы устанавливаются вместе с приложениями. Дальше можно инсталлировать словари:

  # Словари для проверки орфографииsudo apt-get install hunspell hunspell-ru # Тезаурус для LibreOfficesudo apt-get install mythes-ru #  Англо-русский словарь в формате DICTsudo apt-get install mueller7-dict  

Кроме того, инсталляция переводов может потребоваться для некоторых прикладных программ:

  # Браузер Firefoxsudo apt-get install firefox firefox-locale-ru # Почтовый клиент Thunderbirdsudo apt-get install thunderbird thunderbird-locale-ru # Офисный пакет LibreOfficesudo apt-get install libreoffice libreoffice-l10n-ru  libreoffice-help-ru  

На этой подготовке окружения рабочего стола завершена, осталось настроить сервер RDP.

Установка и настройка сервера RDP

В репозиториях Ubuntu есть распространяемый свободно сервер Xrdp, мы и воспользуемся:

  sudo apt-get install xrdp  

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

  sudo systemctl status xrdp  

Сервер Xrdp запускается с правами пользователя xrdp и по умолчанию берет cертификат/etc/ssl/private /ssl-cert-snakeoil.key, который можно заменить собственным. Для доступа к чтению файла нужно добавить пользователя в группу ssl-cert:

  sudo adduser xrdp ssl-cert  

Настройки по умолчанию можно найти в файле/etc/default/xrdp, все прочие конфигурационные файлы сервера лежат в каталоге/etc/xrdp. Основные параметры находятся в файле xrdp.ini, который можно не менять. Конфиг хорошо документирован, к тому же в комплекте имеются соответствующие страницы руководства:

  man xrdp.iniman xrdp  

Осталось только отредактировать скрипт/etc/xrdp/startwm.sh, который исполняется при инициализации пользовательской сессии. Предварительно сделаем создание копии скрипта из дисттива:

  sudo mv/etc/xrdp/startwm.sh/etc/xrdp/startwm.bsudo nano/etc/ xrdp/startwm.sh  

Чтобы запустить окружение рабочего стола XFCE, потребуется сценарий такого содержания:

  #!/bin/shift [-r/etc/default/locale];  тогда. /etc/default/localeexport LANG LANGUAGEfiexec/usr/bin/startxfce4  

Обратите внимание: в скриптах лучше прописывать полный путь к исполняемому файлу — это хорошая привычка. Сделаем скрипт исполняемым и на этом настроении сервера Xrdp можно считать законченной:

  sudo chmod 755/etc/xrdp/startwm. sh  

Перезапускаем сервер:

  sudo systemctl restart xrdp  

Настройка межсетевого экрана

По умолчанию Xrdp слушает TCP-порт 3389 на всех интерфейсах. В зависимости от конфигурации виртуального сервера может потребоваться настройка межсетевого экрана Netfilter. В Linux это обычно делается с помощью утилиты iptables, но в Ubuntu лучше использовать ufw. Если IP-адрес известен, настройка выполняется командой:

  sudo ufw allow from IP_Address to any port 3389  

Разрешить соединения с любым IP можно так:

  sudo ufw allow 3389  

Протокол RDP поддерживает шифрование, но открывать доступ к серверу Xrdp из сетей общего пользования — плохая идея. Если у клиента нет фиксированного IP, для повышения уровня безопасности сервер должен слушать только localhost. Доступ к нему лучше настроить через туннель SSH, который безопасно перенаправит трафик с клиентского компьютера. Аналогичный подход мы использовали в предыдущей статье для сервера VNC.

Подключение к серверу RDP

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

  sudo adduser rdpuser  

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

  sudo gpasswd -a rdpuser sudo  

Подключиться к серверу можно с помощью любого клиента RDP, включая встроенный клиент службы удаленных рабочих столов Windows. Если Xrdp слушает внешний интерфейс, никаких дополнительных телодвижений не понадобится. Достаточно указать в настройках соединения IP-адрес VPS, имя пользователя и пароль. После подключения мы увидим примерно такую ​​картину:

После первичной настройки окружения рабочего стола мы получим полноценный десктоп. Как видите, он потребляет не так много ресурсов, хотя дальше все будет зависеть от используемых приложений.

Если сервер Xrdp слушает только localhost, на клиентском компьютере придется упаковать в туннель SSH (на VPS должен быть запущен sshd). Под Windows можно использовать графический клиент SSH (например, PuTTY), а в UNIX-системах нужна утилита ssh:

  ssh -L 3389: 127.0.0.1  : 3389 -C -N -l rdpuser RDP_server_ip  

После инициализации туннеля клиент RDP будет подключаться уже не к удаленному серверу, а к локальному хосту.

С мобильными устройствами сложнее: способные поднять туннель клиентов SSH придется покупать, к тому же в iOS и iPadOS фоновая работа сторонних приложений затруднена из-за слишком хорошей оптимизации энергопотребления. На iPhone и iPad поднять туннель в отдельном приложении не получится — приложение-комбайн, которое само умеет устанавливать соединение RDP через SSH. Такое, например, как Remoter Pro.

Менеджер сессий и сеансов пользователей

Возможность многопользовательской работы реализована непосредственно на сервере Xrdp и не требует дополнительной настройки. После запуска сервиса через systemd один процесс работает в режиме демона, слушает порт 3389 и взаимодействует через localhost с менеджером сессий.

  ps aux | grep xrdp  

sudo netstat -ap | grep xrdp  

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

Автоматический запуск менеджера сессий прописан в файле/etc/default/xrdp, конфигурация хранится в/etc/xrdp/sesman.ini. По умолчанию выглядит она примерно так:

  [Globals] ListenAddress = 127.0.0.1ListenPort = 3350EnableUserWindowManager = trueUserWindowManager = startwm.shDefaultWindowManager = startwm.sh [Безопасность  ] AllowRootLogin = trueMaxLoginRetry = 4TerminalServerUsers = tsusersTerminalServerAdmins = tsadmins;  Когда AlwaysGroupCheck = false доступ будет разрешен;  если группа TerminalServerUsers не определена.AlwaysGroupCheck = false [Sessions]  

Здесь можно ничего не менять, стоит только запретить вход с правами root (AllowRootLogin = false). Для каждого авторизованного в системе пользователя запускается отдельный процесс xrdp: если отсоединиться не завершив сеанс, пользовательские по умолчанию продолжат работать, а к сеансу можно будет подключиться заново. Настройки можно изменить в файле/etc/xrdp/sesman.ini (секция [Sessions]).

Переключение раскладок клавиатуры

С двухсторонним буфером обмена проблем обычно не возникает, а вот с русской раскладкой клавиатуры придется немного пошаманить (русская локаль должна быть уже установлена). Отредактируем клавиатурные настройки сервера Xrdp:

  sudo nano/etc/xrdp/xrdp_keyboard. ini  

В конец конфигурационного файла нужно добавить следующие строки:

  [rdp_keyboard_ru] keyboard_type = 4keyboard_type =  7keyboard_subtype = 1model = pc105options = grp: alt_shift_togglerdp_layouts = default_rdp_layoutslayouts_map = Сохранить layout_ru [layouts_map_ru] rdp_layout_us = us, rurdp_layout_ru = us, ru  и #pre>  
  sudo systemctl restart xrdp  

Как видите, поднять сервер RDP на линуксовом VPS несложно, а в предыдущей статье мы уже разобрали настройку VNC. Помимо этих технологий, есть еще один интересный вариант: использующая модифицированный протокол NX 3 система X2Go. С ней мы разберемся в следующей публикации.

Оцените статью
clickpad.ru
Добавить комментарий