Ошибка при подключении xrdp

В прошлой статье, я рассказал как развернуть XRDP, как подключиться к Ubuntu средствами RDP из среды windows или любой другой.  Но о ужас! Вы можете столкнуться с пустым черным экраном вместо фона рабочего стола Ubuntu. Лично я столкнулся с данной проблемой. Ничего страшного!

«Достаточно одной таблэтки…»

Решение довольно простое. Откройте Ubuntu и отредактируйте /etc/xrdp/startwm.sh сценарий.

Для этого в терминале набираем:

$ sudo vim /etc/xrdp/startwm.sh       (можете вместо «vim» использовать «nano«)

Теперь нам надо добавить пару строк перед test:

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

Далее сохраняем, нажав ctrl+O и нажимаем ENTER. (если вы в NANO)  В vim редакторе — :wq
(:Как запомнить: write to disk and quit)

Далее перезапускаем службу Xrdp:

$ sudo systemctl restart xrdp

Ну что! Теперь подключаемся заново! 

Главное помнить пароль! 

«―Пароль старый — «Черт побери!?
―Черт побери!
―А он точно с теплохода «Михаил Светлов»?
―Нам сообщили так.
―Теплоход через час уйдет!
―/* Выразительно выражается не по-нашему: пинто. пастуццо чачача трукаделло пиц!*/Заткнись!
―/* Еще более выразительно выражется: порко мадонна ди ум бесто перь бако кастелла де мембрано хемаро инчесо сарвело чец хан дураля! */ Простите, погорячился…

―Дальше следует непереводимая игра слов с использованием местных идиоматических выражений.»

Далее еще раз вводите пароль:

ииииииии.

Ура! Все работает! Можете приступать к работе!

«Как говорит наш дорогой шеф, «Куй железо не отходя от кассы»!»»

В статье рассказано о том, как настроить подключение к Linux через протокол RDP (Remote Desktop Protocol).

RDP — это наиболее распространённый протокол для удаленной работы (или администрирования ПК), при котором экран компьютера отображается на удалённом ПК, управление с мыши и клавиатуры. RDP может использоваться между ПК с различными ОС — как Windows, так и Linux.

Следующий гайд был написан по итогам успешной установки и запуска RDP сервера под Linux Runtu (Description: Ubuntu 20.04.3 LTS) и Linux Mint «Uma» Description: Linux Mint 20.2).

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

  1. Если до этого предпринимались неудачные попытки настройки xrdp, прежде всего нужно удалить пакеты xrdp и xorgrdp и их настройки, чтобы выполнить установку с чистого листа.

    sudo apt-get purge xrdp xorgxrdp
  2. Вначале нужно выполнить обновление версий пакетов:

    sudo apt-get update & sudo apt-get upgrade & sudo apt-get dist-upgrade
  3. Если операционная система Ubuntu Linux 16.04 или 18.04, либо 20.04 или 21.04, для установки xrdp советую воспользоваться готовым скриптом с сайта

https://c-nergy.be/downloads/xRDP/xrdp-installer-1.4.zip — скачать архив и извлечь скрипт.

Документация по программе «xrdp-installer» находится по адресу https://c-nergy.be/blog/?p=17810, а также в самой программе выводится краткая справка о возможных параметрах её вызова, при запуске sh-файла с ключом —help:

bash xrdp-installer-1.4.sh --help

Для запуска вводить команду sudo не нужно, когда надо она запросит пароль su. Запуск, например, так:

chmod +x xrdp-installer-1.4.sh
./xrdp-installer-1.4.sh

И затем перейти к разделам ОКОНЧАТЕЛЬНАЯ НАСТРОЙКА XRDP и «Диагностика«.


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

sudo apt-get install x-window-system xserver-xorg xserver-xorg-core
sudo apt-get install  xserver-xorg-legacy

Выполняем реконфигурацию пакета

sudo apt-get install xserver-xorg-legacy
sudo dpkg-reconfigure xserver-xorg-legacy

окно для конфигурирования запуска Xorg:
xserver-xorg-legacy
в котором я выбрал последний пункт, дающий наибольшие права — «Кто угодно».

Данной командой производится запись в файл cat /etc/X11/Xwrapper.config:
allowed_users=anybody


Установка пакетов, необходимых для запуска xrdp:

sudo apt-get install libx11-dev libxfixes-dev libssl-dev libpam0g-dev libtool libjpeg-dev flex bison gettext autoconf libxml-parser-perl libfuse-dev xsltproc libxrandr-dev python3-libxml2 nasm fuse pkg-config git intltool checkinstall

Установка двух основных пакетов XRDP:

sudo apt-get install xrdp xorgxrdp xserver-xorg-input-all 

Можно заметить, что программа установки создаст RSA ключ.
Чтобы операционная система могла прочитать этот ключ, нужно добавить пользователя xrdp в группу ssl-cert:

sudo adduser xrdp ssl-cert

Затем, нужно установить полностью графическую подсистему MESA и драйверы видеокарты. Зачем?
Дело в том, что имеет место цепочка: RDP client -> сеть -> Xrdp server -> Xsession -> Xorg -> MESA -> OpenGL Driver -> видеокарта
При отсутствии возможности запуска графического режима, RDP клиент также «отвалится» сразу после входа.

sudo apt-get install libgl1-mesa-dri libglew1.5-dev libglew-dev libgles2-mesa-dev libglm-dev mesa-utils-extra mesa-common-dev freeglut3 freeglut3-dev

Наконец, видеокарта должна поддерживать режим OpenGL версии 2.1 и выше и иметь установленный драйвер для Linux.

  1. Если старый компьютер — на чипсетах Interl 945 (под общим названием i915) — нужно установить модифицированный, сторонний драйвер, т.к. на штатных драйверах по умолчанию включается режим OpenGL 1.4, тогда как нужен 2.1. Иначе будут ошибки (см. ниже раздел «Ошибки»)

Если следующая команда выводит информацию, что OpenGL высокой версии, ничего делать не нужно:

glxinfo | grep OpenGL

Пример хорошая версия драйвера — равна 2.1 (обращаем внимание на строчку OpenGL version string:
OpenGL vendor string: Mesa Project
OpenGL renderer string: i915 (chipset: 945G)
OpenGL version string: 2.1 Mesa 21.3.0-devel (git-dfef775 2021-09-02 focal-oibaf-ppa)
OpenGL shading language version string: 1.20
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.3.0-devel (git-dfef775 2021-09-02 focal-oibaf-ppa)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:

Если версия 1.4 старая, которая не годится для XRDP, вывод команды glxinfo следующий:
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) 945G
OpenGL version string: 1.4 Mesa 21.0.3
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:

Старая версия драйвера с поддержкой OpenGL 1.4 (установленная по умолчанию из пакета «xserver-xorg-video-intel»). данная версия OpenGL 1.4 не подходит.

Устанавливаем новую версию драйвера (ТОЛЬКО ДЛЯ СТАРЫХ ЧИПСЕТОВ ВСТРОЕННОЙ ГРАФИКИ i915 — i925 — i945)

sudo add-apt-repository ppa:oibaf/graphics-drivers && sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo reboot

Данная команда обновит пакеты графического драйвера для встроенной графики Intel и выполнит перезагрузку.

P.S. Если потребуется в-дальнейшем удаление PPA-репозитория, например, после установки новой видеокарты, команда для удаления: sudo ppa-purge ppa:oibaf/graphics-drivers.

  1. Разрешение подключения к X-серверу «для всех» — дано ранее командой sudo dpkg-reconfigure xserver-xorg-legacy
    Конфигурация записана в файл

    sudo ls -l /etc/X11/Xwrapper.config

Если необходимо, можно посмотреть его содержимое или отредактировать

sudo nano /etc/X11/Xwrapper.config
  • Примечание console — Xorg доступен только для пользователей из консоли, anybody для всех. По умолчанию указано console.
    Подробнее см команду man Xwrapper.config.
  1. Настройка графики OpenGL (обязательно лишь для ПК старых чипсетов со встроенной графикой i915):

Вывод на экран модели графического адаптера:

lspci | grep VGA

Если графический адаптер — встроенная графика Intel чипсета 915 или 82945G переходим в каталог

cd /usr/share/X11/xorg.conf.d/

создаём файл 20-intel.conf:

sudo nano 20-intel.conf

и добавляем в него текст:

Section "Device"
        Identifier "Intel Graphics"
        Driver "intel"
        Option "TearFree" "true"
        Option "AccelMethod" "SNA"
        Option "BackingStore" "true"
        Option "DRI" "3"
EndSection

Вариант для старых ПК: в строке «AccelMethod» вместо стандартного метода ускорения графики «SNA» указать «uxa«.

Лучше использовать «SNA» — более современный метод встроенной графики x86. Где uxa — предыдущая архитектура.

Сохраняем и выходим Ctrl+O, Ctrl+X.

  1. Редактирование конфигурационного файла XRDP:
sudo nano /etc/xrdp/xrdp.ini

в середину файла после строки «background» добавить адрес по умолчанию для XRDP.
address=address=0.0.0.0
nastrojka_xrdp

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

sudo /etc/init.d/xrdp stop
sudo /etc/init.d/xrdp start

ОКОНЧАТЕЛЬНАЯ НАСТРОЙКА XRDP

  1. Добавляем пользователя xrdp в группу tty и даём права на последовательный порт (для решения проблемы начала сессии Xorg, что ‘tty0 access denied’)

    sudo usermod -a -G tty xrdp
    sudo chmod g+r /dev/tty0
  2. Разрешаем запуск сервиса «xrdp»

    sudo systemctl start xrdp
    sudo systemctl enable xrdp
  3. ВАЖНО: Копируем файл скрипт для запуска сессии и исправляем его

    cp /etc/X11/xinit/xinitrc ~/.xinitrc

Узнаём тип установленной оболочки рабочего стола:

echo $XDG_CURRENT_DESKTOP

Если вывод команды пустой, попробовать

cat /etc/X11/default-display-manager

Редактируем файл ~/.xinitrc для запуска сеанса (сессии):

nano ~/.xinitrc

комментируем или удаляем строчку /etc/X11/Xsession, вместо неё пишем:

exec startlxde

или

exec openbox-session
  • для ОС Runtu

или

exec startxfce4

для Linux Mint с оболочкой рабочего стола XFCE

или

exec startlxqt

для Lubuntu или Linux Mint с оболочкой рабочего стола LXQT (если такой вывод у команды
echo $XDG_CURRENT_DESKTOP).


Таким образом, файл .xinitrc в домашнем каталоге пользователя, запускаемый во время старта сеанса XRDP, принял следующий компактный вид:

#!/bin/sh
exec startlxqt

Примечание от 09.09.2021: В этот файл можно добавить запуск любых нужных программ, например, запуск сервера звука pulseaudio и загрузку и переключение национальной раскладки клавиатуры. Тогда файл .xinitrc примет вид:

#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:ctrl_shift_toggle,grp_led:scroll' &
exec startlxqt

Примечание от 07.10.2021: данные команды нужно добавлять в файл ~/.xinitrc пользователя, который будет подключаться по протоколу RDP.

Содержимое файла ~/.xinitrc, если серверная ОС — Linux Mint с оболочкой XFCE:

#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle,grp_led:scroll' &
exec startxfce4

Когда рабочий стол сервера — LXQT, мой файл ~/.xinitrc следующий:
#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle,grp_led:scroll' &
exec startlxqt

И для OpenBox (Runtu Linux) работающий вариант файла ~/.xinitrc следующий:
#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:ctrl_shift_toggle,grp_led:scroll' &
exec openbox-session

exec startlxde

Универсальный файл ~/.xinitrc для любых рабочих столов можно найти на stackoverflow (необходима установка slim).

Диагностика

Перезагружаем ПК, который выполняет роль сервера.

Проверяем с него же, что сервер Xorg запускается без ошибок:

sudo Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp

На этом этапе экран может погаснуть, если вы проверяете XRDP с того же ПК, на котором запущена начальная сессия Xorg. Нужно нажать Ctrl+Alt+F1 ввести имя и пароль, при помощи команды ps -aux | grep xrdp найти номер процесса «sudo xrdp» и завершить его командой «sudo kill <номер процесса>«.

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

Если же сообщение «(EE) Cannot establish any listening sockets — Make sure an X server isn’t already running(EE)»,
нужно перезагрузить ПК и повторить диагностику.

Второй вариант проверки — перед первым подключением к серверу XRDP, завершаем текущий сеанс «Пуск» — «Выйти» — «Выйти из системы». Так как клиент RDP не сможет создать второй сеанс такого же пользователя (с ошибкой в файле ~/.xorgxrdp.10.log: «(EE) Caught signal 11 (Segmentation fault). Server aborting»).

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

sudo useradd -m ivanov-rdp
passwd ivanov-rdp

Ошибки xRDP сервера в Linux и их решения

Настройка брандмауэра

При невозможности подключения по протоколу RDP к серверу, прежде всего проверить открытие порта на FireWall:

sudo apt install nmap
sudo nmap 192.168.55.100 -p 3389

где вместо 192.168.55.100 укажите IP-адрес сервера в локальной сети.
Не забываем открыть локальный порт 3389 в firewall:

sudo ufw allow 3389

Если порт открыт, то вывод:
PORT STATE SERVICE
3389/tcp open ms-wbt-server

Проблема «При подключении с клиента по RDP виден чёрный пустой экран»

На сервере не установлен пакет xorgxrdp — программная «прослойка» между xorg и rdp сервером, который отображает графику — Рабочий стол, указатель мыши и иконки.

Решение — установить на сервер пакет xorgxrdp:

sudo apt-get install xorgxrdp
sudo service xrdp restart

Сеанс xRDP теперь должен работать. Пробуем подключиться!

Примечание: Пакет «xorgxrdp — Remote Desktop Protocol (RDP) modules for X.org» входит в большинство дистрибутивов Debian, а также Ubuntu 18.04 «bionic», 20.04 LTS «focal», 21.04 «hirsute», 21.10 «impish», 22.04 LTS «jammy» (вышла 21.04.2022), и производных ОС на основе DEB-пакетной базы Ubuntu (таких как Runtu, Lubuntu, Xubuntu, Kubuntu и др.), а также дистрибутивы на основе RPM: Fedora, Arch и др.. Поэтому данная инструкция должна работать с множеством версий Linux.


Remmina RDP Client — подключение к серверу

sudo apt-get install remmina remmina-plugin-rdp remmina-plugin-secret
sudo reboot
remmina

Добавляем подключение — тип RDP.
remmina

Если VPN не используется, то в IP адрес вводим «белый» IP-адрес домашнего роутера.
При работе через VPN IP адрес относится к внутренней (локальной, домашней) сети.
Имя и пароль — такие же как при входе «с клавиатуры» на сервере.

Нижние кнопки окна Remmina на нетбуках с разрешением экрана 1024×600 пикселей могут быть обрезаны и видны частично.
«Отменить» — «Сохранить как значения по умолчанию» — «Сохранить» — «Подключиться» — «Сохранить и подключиться»

Нажимаем крайнюю правую кнопку «Сохранить и подключиться».

Различные проблемы

Журналы ошибок в системной каталоге /var/log/:

  • xrdp.log
  • xrdp-sesman.log
  • Xorg.0.log, Xorg.10.log

Журналы ошибок в каталоге пользователя ~:

  • ~/.xorgxrdp.10.log

Просмотреть их можно командами:

sudo cat /var/log/xrdp.log
sudo cat /var/log/xrdp-sesman.log
sudo cat /var/log/Xorg.0.log
sudo cat /var/log/Xorg.10.log
sudo cat ~/.xorgxrdp.log

Если при подключении с ПК под управлением Windows к ПК под управлением Linux после ввода имени пользователя пароля виден сине-зелёный однотонный фон без текста и иконок,
или в файле XRDP.LOG многочисленные ошибки, значит подключение произошло, но не запустилась графика Xorg — скорее всего из-за старой версии OpenGL, либо прав, см. выше.

Пример ошибки на стороне клиента при попытке подключения с помощью программы MSTSC.EXE:
blue

Сообщения об ошибка в журнале XRDP.LOG на стороне сервера:
error19
или аналогичная [DEBUG] Closed socket 17 (AF_UNIX)

Решение — диагностика командой с рабочего стола машины-сервера:

sudo Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp

Нужно добиться отсутствия ошибок Xorg в файле /var/log/Xorg.10.log.

Если при подключении с ПК под управлением Windows виден на мгновение чёрный экран, который тут же закрывается, один из вариантов:

  • неправильной имя/пароль пользователя
  • неправильный скрипт ~/.xinitrc (не запустилась сессия рабочего стола). Проверьте файл ~/.xinitrc на наличие команды exec <имя оболочки>.
  • пользователь, которым вы подключаетесь к ПК удалённо, имеет открытую сессию в операционной системе локально (использует компьютер в данный момент).

Безопасность

Теперь любой ПК в локальной сети сможет подключаться к вашему компьютеру по протоколу RDP. Следует установить для учётной записи пользователя сложный пароль. Если подключение к ПК из Интернет — можно дополнительно использовать VPN с шифрованием трафика.


Дата последнего редактирования 25.04.2022

Похожие публикации

Содержание

  1. Как установить Xrdp на Ubuntu 20.04
  2. Предпосылки
  3. Шаг 1: Установите Xrdp на Ubuntu 20.04
  4. Установите Xrdp на Ubuntu
  5. Шаг 2: Настройка Xrdp на Ubuntu 20.04
  6. Шаг 3: Доступ к удаленному рабочему столу Ubuntu с помощью RDP клиента
  7. Как исправить черный экран XRDP в Ubuntu
  8. Заключение
  9. ubuntu xrdp удаленный рабочий стол
  10. Как настроить xRDP-сервер на Ubuntu 18.04
  11. Что такое xRDP?
  12. Установка и настройка
  13. Подключение к рабочему столу
  14. Установка XRDP в Ubuntu 20.04
  15. Что такое XRDP
  16. Установка XRDP на Ubuntu 20.04
  17. Шаг 1. Поиск пакета
  18. Шаг 2. Обновление системы
  19. Шаг 3. Установка пакетов
  20. Шаг 3. Настройка службы XRDP
  21. Шаг 4. Поиск IP адреса
  22. Шаг 5. Проверка подключения
  23. Ошибка черный экран XRDP в Ubuntu
  24. Выводы
  25. Удаленный рабочий стол Ubuntu

Как установить Xrdp на Ubuntu 20.04

Xrdp — это аналог протокола Microsoft Remote Desktop Protocol (RDP). Если xrdp установлен в системе Linux, пользователи могут удаленно получить доступ к рабочему столу Linux с помощью RDP-клиента. Все это я покажу в этой статье. Его можно совершенно бесплатно скачать и использовать.

Без лишних слов давайте давайте приступим к установке Xrdp на Ubuntu Desktop 20.04 и 18.04.

Предпосылки

В этом руководстве предполагается, что у вас уже установлена Ubuntu 20.04 или Ubuntu 18.04. Если у вас есть минимальная установка без графического интерфейса – то рекомендуется установить среду рабочего стола или GNOME.

Чтобы установить среду рабочего стола Ubuntu, выполните команду:

Шаг 1: Установите Xrdp на Ubuntu 20.04

Для начала запустите терминал и выполните следующую команду для установки Xrdp в вашу систему.

Установите Xrdp на Ubuntu

Служба Xrdp запускается автоматически после установки. Для проверки работоспособности сервиса XRDP, выполнив команду:

Данные которые вы видите на рисунке подтверждают, что сервис XRDP работает.

Шаг 2: Настройка Xrdp на Ubuntu 20.04

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

Xrdp прослушивает порт 3389 и если вы находитесь за брандмауэром UFW, то вам нужно открыть порт. Это делается для того чтобы разрешить входящий трафик от клиентов RDP. В этом примере я разрешу трафик на порт 3389 из всей моей подсети в систему Ubuntu.

$ sudo ufw allow from 192.168.2.0/24 to any port 3389

После этого требуется перезагрузить брандмауэр и проверить, открыт ли порт.

Шаг 3: Доступ к удаленному рабочему столу Ubuntu с помощью RDP клиента

На этом шаге мы попробуем подключится к системе Ubuntu из Windows 10. В этом нам поможет стандартный клиент удаленного рабочего стола (RDP). Но прежде чем продолжить, убедитесь что вы вышли из Ubuntu 20.04. Так как Xrdp поддерживает только один Xsession.

В окне которое требует проверку удаленной системы, игнорируйте ошибки сертификата и нажмите на кнопку «Далее«.

proverka podlinnosti udalennoj sistemy ubuntuПроверка подлинности удаленной системы Ubuntu

На странице входа в систему Xrdp введите свои учетные данные и нажмите кнопку «Ok«.

vvedite svoi uchetnye dannye dlja v hoda v ubuntu cherez rdpВведите свои учетные данные для в хода в Ubuntu через RDP

Примечание: в этот момент Вы можете столкнуться с пустым черным экраном вместо фона рабочего стола Ubuntu. Лично я столкнулся с таким багом. После долгих мучений, я нашел вариант как исправить этот баг.

Как исправить черный экран XRDP в Ubuntu

Решение довольно простое. Откройте Ubuntu и отредактируйте /etc/xrdp/startwm.sh сценарий.

Добавьте эти строки непосредственно перед строками, которые тестируют и выполняют Xsession, как показано на скриншоте ниже.

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

Далее требуется сохранить файл и выйдите. Не забудьте перезапуститm службу Xrdp.

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

auntifikacija polzovateljaАутентификация пользователя XRDP

Введите свои учетные данные и нажмите кнопку «аутентификация«.После проделанного в перейдете на экран стола удаленной системы Ubuntu.

udalennyj dostup k rabochemu stolu ubuntuУдаленный Доступ К Рабочему Столу Ubuntu

Заключение

Ну вот и все, в этой статье вы узнали Как установить Xrdp на Ubuntu 20.04. Это совсем не сложно и это может сделать даже новичок Linux. Если у вас что-то не получилось или вы нашли ошибку, оставьте комментарий.

Источник

ubuntu xrdp удаленный рабочий стол

Проблемы со стандартным удаленным рабочим столом в Ubuntu 18.04: отсутствует подключение, черный экран, выкидывает при подключении и/или сообщения, типа «Could not acquire name on session bus».

Настройка удаленного рабочего стола в Убунту — лечение:

Удаление xrdp:
# sudo apt-get remove xrdp

Перегрузились:
# sudo reboot

Обновились:
# sudo apt-get update
# sudo apt-get upgrade

Установка xrdp:
# sudo apt-get install xrdp

Ставим mate-core — это рабочая среда MATE Desktop:
# sudo apt-get install mate-core

Добавляем конфиг:
# sudo echo mate-session>

Если запущен файрволл — добавляем исключение, принимать подключения на порт 3389 (по-умолчанию):
# sudo ufw allow 3389/tcp

Перегружаем:
# sudo reboot

И пробуем пользоваться удаленным рабочим столом. Но, бывает иногда и так, что этих шагов оказывается недостаточно.

Тогда ищем файл /etc/xrdd/startwm.sh и в нем комментируем строки (вероятно, будут последними):

и вместо них добавляем другие две строчки:

unset DBUS_SESSION_BUS_ADDRESS
exec mate-session

И пробуем еще раз. Уже должно все работать.

Дополнение.

Кстати, желательно — сменить порт 3389 по-умолчанию. Для этого необходимо редактировать файл /etc/xrdp/xrdp.ini. Найти строчку:

и поменять 3389 на новое значение. И не забыть при этом:

# sudo ufw allow НОВЫЙ_НОМЕР_ПОРТА/tcp

Кроме того, если удаленный рабочий стол ubuntu находится в локалке дома или другом безопасном месте, то можно упростить себе задачу и в окне авторизации оставить себе — набирать только пароль, забив имя пользователя в конфиге /etc/xrdp/xrdp.ini в секции [Xorg]:
username=имя_пользователя

Если же к компьютеру с удаленным рабочим столом есть доступ из Интернет, то запоминать имя пользователя — не стоит, это небезопасно. Злоумышленнику труднее будет подбирать пару неизвестных (логин/пароль), чем одно неизвестное (только лишь один пароль).

Max02.Ru Ubuntu RDP

ubuntu xrdp настройка удаленного рабочего стола mate-core

Источник

Как настроить xRDP-сервер на Ubuntu 18.04

В этой инструкции описано как настроить сервер xRDP для подключения к Ubuntu 18.04 с легковесным окружением Xfce по протоколу RDP. Это может быть очень удобно если вам нужно из Windows зайти на линукс систему используя графический интерфейс.

xRDP — это бесплатная реализация RDP (протокола удаленного рабочего стола) Microsoft с открытым исходным кодом, которая позволяет операционным системам, отличным от Microsoft Windows (таким как Linux и BSD), предоставлять полностью функциональный RDP-совместимый удаленный рабочий стол.

rocket img

cta

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

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

sudo apt-get update

Установите и включите утилиту xRDP:

sudo apt-get install xrdp
sudo systemctl enable xrdp
sudo systemctl restart xrdp

xrdp1

Установите окружение xfce:

sudo apt-get install xfce4 xfce4-terminal

Откройте порт RDP для возможности удаленного подключения:

sudo ufw allow 3389/tcp

Перезагрузите xRDP сервер, чтобы изменения вступили в силу:

sudo /etc/init.d/xrdp restart

Подключение к рабочему столу

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

xrdp2

В нашем случае это будет 10.0.0.2. Для подключения откройте приложение Windows Подключение к удаленному рабочему столу(mstsc.exe). Введите IP-адрес сервера и нажмите Подключить:

При подключении появится предупреждение безопасности. Нажмите Да:

xrdp4

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

xrdp5

В результате произойдет подключение к рабочему столу.

Рабочий стол окружения Xfce:

xrdp6

Если при подключении к xrdp показывает черный экран необходимо зайти в папку /etc/xrdp, и внести изменения в файл startwm.sh.

sudo nano /etc/xrdp/startwm.sh

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

test –x /etc/X11/Xsession && exec /etc/X11/Xsession

xrdp7

После внесения изменений необходимо перезапустить службу XRDP:

sudo systemctl restart xrdp

Теперь можно снова запустить mstsc.exe и подключиться к нашему ubuntu серверу.

Источник

Установка XRDP в Ubuntu 20.04

В настоящее время существует множество вариантов удалённого подключения к рабочим местам. Кроме того, стоимость аренды виртуальной машины хорошей производительности в облаке в месяц, сопоставима с ценой кружки хорошего кофе. Такие удалённые виртуальные машины удобно использовать с офисных слабых компьютеров, из поездок с ноутбуком и слабым Интернет-соединением, запускать на них длительные задачи, как например перепроведение документов в 1С, скачивание больших файлов.

Ещё можно организовать общий сервер на базе Ubuntu 20.04 в облаке или на мощном компьютере и совместно использовать его ресурсы с помощью удалённого доступа. В этой статье мы рассмотрим как выполняется установка XRDP Ubuntu 20.04.

Что такое XRDP

XRDP – это реализация протокола удалённого рабочего стола Microsoft (RDP) с открытым исходным кодом, которая позволяет графически управлять удалённой системой.

В отличие от коммерческого продукта, XRDP в Linux позволяет работать одновременно с одним компьютером или виртуальной машиной неограниченному числу пользователей, что позволяет активно использовать XRDP для разворачивания терминальных серверов на базе Ubuntu 20.04.

Установка XRDP на Ubuntu 20.04

Шаг 1. Поиск пакета

В Ubuntu 20.04 можно получить установить программу с помощью утилиты apt. Давайте установим XRDP из репозитория Ubuntu 20.04. Для этого, с помощью терминала, вы можете проверить, есть ли пакет xrdp в хранилище пакетов Ubuntu 20.04:

sudo apt searh xrdp

ustanovka xrdp v ubuntu 20.04 1

Шаг 2. Обновление системы

Такой пакет есть, поэтому вы можете, предварительно обновив систему, простым путём установить xrdp на Ubuntu 20.04. Обновляем и перезагружаем для принятия изменений в ОС:

sudo apt –y update && sudo apt –y upgrade && sudo reboot

ustanovka xrdp v ubuntu 20.04 2

Шаг 3. Установка пакетов

После перезагрузки можно устанавливать XRDP из репозитория Ubuntu 20.04

sudo apt install xrdp

Обращаю внимание, что при установке генерируется сертификат, который необходим для функционирования RDP протокола, строка ниже указывает, что сертификат успешно создан:

ustanovka xrdp v ubuntu 20.04 3

Шаг 3. Настройка службы XRDP

В связи с особенностями системы Ubuntu 20.04, необходимо ввести пользователя xrdp, от имени которого работает XRDP в системе, в группу ssl-cert. Выполните команду:

sudo adduser xrdp ssl-cert

Затем добавьте службу xrdp в автозапуск и перезапустите её для применения изменений:

sudo systemct enable xrdp

sudo systemctl restart xrdp

ustanovka xrdp v ubuntu 20.04 4

sudo systemctl status xrdp

Если результат выполнения команды выглядит так, как на скриншоте, то все прошло успешно. В финале предоставьте доступ из внешней сети к порту 3389 в файрволле Ubuntu 20.04:

sudo ufw allow from 192.168.2.0/24 to any port 3389

sudo ufw allow 3389

Шаг 4. Поиск IP адреса

С помощью любого клиента RDP можно подключаться по имени компьютера, возможно для этого нужно дополнительно настроить DNS. Лучше получить доступ по IP-адресу сервера, на котором установлен XRDP. Чтобы узнать IP-адрес, необходимо в терминале ввести команду:

ustanovka xrdp v ubuntu 20.04 5

На моём скриншоте обведён IP-адрес виртуальной машины с Ubuntu 20.04, который автоматически присвоен сетевому интерфейсу eth1. Сетевых интерфейсов может быть несколько, у каждого из них могут быть свои IP-адреса, к которым так же можно подключаться по RDP.

Шаг 5. Проверка подключения

На скриншоте ниже можно видеть окно для входа Xorg, куда требуется ввести логин, в моем случае user и пароль, в моем случае 1. Для смены раскладки клавиатуры в Ubuntu 20.04 используется комбинация клавиш Super+Пробел (с моей клавиатуры клавиши Windows + Пробел). Если в окне раскладка не меняется, и вводится пароль не на том языке, то необходимо отключить клиент RDP, закрыть его, поменять язык в Windows на нужный и снова подключиться к удалённой машине.

ustanovka xrdp v ubuntu 20.04 6

Настройка XRDP Ubuntu 20.04 практически завершена.

Ошибка черный экран XRDP в Ubuntu

ustanovka xrdp v ubuntu 20.04 7

Для исправления такой ошибки необходимо внести изменение в файл, расположенный в папке /etc/xrdp, запускающий каждую сессию удалённого доступа XRDP с именем startwm.sh:

ustanovka xrdp v ubuntu 20.04 8

Внесите изменения в файле startwm.sh:

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

test –x /etc/X11/Xsession && exec /etc/X11/Xsession

как показано на скриншоте. Это обнуляет системные переменные, сформированные предыдущими сеансами. В результате, мы избавляемся от чёрного экрана при подключении по RDP к Ubuntu 20.04

ustanovka xrdp v ubuntu 20.04 9

После внесения изменений необходимо перезапустить службу XRDP:

sudo systemctl restart xrd

И можно выполнить подключение к Ubuntu по RDP:

ustanovka xrdp v ubuntu 20.04 10

ustanovka xrdp v ubuntu 20.04 12

Выводы

Сегодня мы выяснили как подключиться к Ubuntu по RDP и настроить XRDP сервер. Клиенты RDP существуют для любого устройства: телефона, планшета, ноутбука, любого компьютера. Местонахождение этой виртуальной или реальной машины с Ubuntu 20.04 теперь не играет никакой роли, лишь бы был доступ к ней через интернет и установлен и настроен XRDP.

Источник

Удаленный рабочий стол Ubuntu

Доброго времени суток дорогие читатели. Ранее я писал о подключении к удаленному рабочему столу Linux. В примере использовалось подключение рабочих столов KDE и XFCE. Сегодня рассмотрим как подключить удаленный рабочий стол Ubuntu который установлен в системе.

Подключиться к рабочему столу Ubuntu можно с использованием VNC либо RDP. Я выбрал второй, благодаря тому что RDP клиент установлен во всех WIndows системах он очень популярен. Для подключения к Ubuntu по RDP необходимо установить ПО XRDP.
Тестировать подключение к рабочему столу я буду на Ubuntu 20.04. Пакет XRDP также последний на данный момент.

Установка XRDP

Установка XRDP на Ubuntu делается командой

В процессе установки будет автоматически сгенерирован сертификат для шифрования RDP соединения.

Надпись ssl_gen_key_xrdp ok свидетельствует о том что процесс генерации сертификата прошел успешно.

Добавим сервис xrdp в автозагрузку

Проверим статус xrdp

Статус active говорит о том что сервис запущен и работает.

Настройка XRDP
Настроим брандмауэр

Необходимо открыть порт в брандмауэре. Давайте проверим включен ли он вообще

Если status указан inactive советую включить брандмауэр. Делается это командой

Только будьте осторожны если подключены удаленно, например по SSH, т.к. порт может быть закрыт.

По умолчанию протокол RDP использует порт 3389. Откроем данный порт используя брандмауэр UFW

Теперь любой клиент из подсети 172.16.169.0 сможет подключиться к Ubuntu используя протокол RDP.

Попросим брандмауэр перечитать правила доступа для применения настроек

Посмотрим статус UFW

Разрешим использовать сертификат

Добавим пользователя xrdp в группу ssl-cert для возможности использования ранее созданного сертификата.

Перезапустим xrdp чтобы применить изменения

Подключение к рабочему столу Ubuntu

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

Для подключения нам потребуется имя сервера, либо IP адрес и логин/пароль для входа. Узнать IP адрес в Ubuntu можно так

Переходим к подключению. Запустим клиент удаленного рабочего стола, в Windows он называется: Подключение к удаленному рабочему столу. Вводим IP адрес и нажимаем Подключить

Система будет выводить предупреждения и возможно задавать вопросы, со всем соглашаемся. И в открывшемся окне вводим Username и Password от входа в Ubuntu.

login

Смена раскладки клавиатуры происходит клавишами Windows+Пробел. Если раскладка не меняется, необходимо закрыть окно Удаленного подключения, поменять раскладку и снова подключиться.

С большей долей вероятности при первом подключении будет черный экран. Как это исправить читаем далее.

Источник

Доброго времени суток друзья!
Недавно начал изучение среды Alt Linux server, и следуя мануалу решил организовать удаленный доступ к ней из под Win7 через стандартный удаленный рабочий стол.
Фаерволл на альте — выключен. С компьютера с Win7 адрес пингуется, порт 3389 открыт. При попытке подключения выдает текст: соединение прервано из за сетевой ошибки.
Дополнительно на альте установлен и сконфигурирован OpenSSL, в конфиг добавлен метод TLS 1.0, юзер добавлен в группу tsusers. В общем все возможные (даже по звуку) настройки выполнены. Результат отрицательный. Прошу Вашего совета и помощи, чтобы понять — где упущение.
Прилагаю логи.

xrdp.log

[20191020-15:52:26] [DEBUG] Testing if xrdp can listen on 0.0.0.0 port 3389.
[20191020-15:52:26] [DEBUG] Closed socket 7 (AF_INET 0.0.0.0:3389)
[20191020-15:52:28] [INFO ] starting xrdp with pid 784
[20191020-15:52:28] [INFO ] listening to port 3389 on 0.0.0.0
[20191020-15:55:11] [INFO ] Socket 12: AF_INET connection received from 192.168.0.100 port 49639
[20191020-15:55:11] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:55:11] [DEBUG] Closed socket 11 (AF_INET 0.0.0.0:3389)
[20191020-15:55:11] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20191020-15:55:11] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20191020-15:55:11] [WARN ] TLSv1.3 enabled by config, but not supported by system OpenSSL
[20191020-15:55:11] [DEBUG] TLSv1.2 enabled
[20191020-15:55:11] [DEBUG] Security layer: requested 3, selected 1
[20191020-15:55:11] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:55:11] [INFO ] Socket 12: AF_INET connection received from 192.168.0.100 port 49640
[20191020-15:55:11] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:55:11] [DEBUG] Closed socket 11 (AF_INET 0.0.0.0:3389)
[20191020-15:55:11] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20191020-15:55:12] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20191020-15:55:12] [WARN ] TLSv1.3 enabled by config, but not supported by system OpenSSL
[20191020-15:55:12] [DEBUG] TLSv1.2 enabled
[20191020-15:55:12] [DEBUG] Security layer: requested 3, selected 1
[20191020-15:55:12] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:55:33] [INFO ] Socket 12: AF_INET connection received from 192.168.0.100 port 49642
[20191020-15:55:33] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:55:33] [DEBUG] Closed socket 11 (AF_INET 0.0.0.0:3389)
[20191020-15:55:33] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20191020-15:55:33] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20191020-15:55:33] [WARN ] TLSv1.3 enabled by config, but not supported by system OpenSSL
[20191020-15:55:33] [DEBUG] TLSv1.2 enabled
[20191020-15:55:33] [DEBUG] Security layer: requested 3, selected 1
[20191020-15:55:33] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:55:33] [INFO ] Socket 12: AF_INET connection received from 192.168.0.100 port 49643
[20191020-15:55:33] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:55:33] [DEBUG] Closed socket 11 (AF_INET 0.0.0.0:3389)
[20191020-15:55:33] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20191020-15:55:33] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20191020-15:55:33] [WARN ] TLSv1.3 enabled by config, but not supported by system OpenSSL
[20191020-15:55:33] [DEBUG] TLSv1.2 enabled
[20191020-15:55:33] [DEBUG] Security layer: requested 3, selected 1
[20191020-15:55:33] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:57:08] [INFO ] Socket 12: AF_INET connection received from 192.168.0.100 port 49755
[20191020-15:57:08] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:57:08] [DEBUG] Closed socket 11 (AF_INET 0.0.0.0:3389)
[20191020-15:57:08] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20191020-15:57:08] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20191020-15:57:08] [WARN ] TLSv1.3 enabled by config, but not supported by system OpenSSL
[20191020-15:57:08] [DEBUG] TLSv1.2 enabled
[20191020-15:57:09] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:57:09] [INFO ] Socket 12: AF_INET connection received from 192.168.0.100 port 49769
[20191020-15:57:09] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:57:09] [DEBUG] Closed socket 11 (AF_INET 0.0.0.0:3389)
[20191020-15:57:09] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20191020-15:57:09] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20191020-15:57:09] [WARN ] TLSv1.3 enabled by config, but not supported by system OpenSSL
[20191020-15:57:09] [DEBUG] TLSv1.2 enabled
[20191020-15:57:09] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:57:10] [INFO ] Socket 12: AF_INET connection received from 192.168.0.100 port 49782
[20191020-15:57:10] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:57:10] [DEBUG] Closed socket 11 (AF_INET 0.0.0.0:3389)
[20191020-15:57:10] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20191020-15:57:10] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20191020-15:57:10] [WARN ] TLSv1.3 enabled by config, but not supported by system OpenSSL
[20191020-15:57:10] [DEBUG] TLSv1.2 enabled
[20191020-15:57:10] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:57:11] [INFO ] Socket 12: AF_INET connection received from 192.168.0.100 port 49788
[20191020-15:57:11] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)
[20191020-15:57:11] [DEBUG] Closed socket 11 (AF_INET 0.0.0.0:3389)
[20191020-15:57:11] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20191020-15:57:11] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20191020-15:57:11] [WARN ] TLSv1.3 enabled by config, but not supported by system OpenSSL
[20191020-15:57:11] [DEBUG] TLSv1.2 enabled
[20191020-15:57:11] [DEBUG] Closed socket 12 (AF_INET 192.168.0.133:3389)

xrdp-sesman.log

[20191020-00:22:23] [DEBUG] libscp initialized
[20191020-00:22:23] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20191020-00:22:23] [DEBUG] Closed socket 1 (AF_INET 127.0.0.1:3350)
[20191020-00:22:23] [INFO ] starting xrdp-sesman with pid 3475
[20191020-00:22:23] [INFO ] listening to port 3350 on 127.0.0.1
[20191020-00:29:14] [INFO ] shutting down sesman 1
[20191020-00:29:14] [INFO ] shutting down sesman 1
[20191020-00:29:14] [DEBUG] Closed socket 7 (AF_INET 127.0.0.1:3350)
[20191020-00:29:14] [DEBUG] libscp initialized
[20191020-00:29:14] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20191020-00:29:14] [DEBUG] Closed socket 1 (AF_INET 127.0.0.1:3350)
[20191020-00:29:14] [INFO ] starting xrdp-sesman with pid 3715
[20191020-00:29:14] [INFO ] listening to port 3350 on 127.0.0.1
[20191020-01:16:14] [INFO ] shutting down sesman 1
[20191020-01:16:14] [INFO ] shutting down sesman 1
[20191020-01:16:14] [DEBUG] Closed socket 7 (AF_INET 127.0.0.1:3350)
[20191020-01:17:19] [DEBUG] libscp initialized
[20191020-01:17:19] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20191020-01:17:20] [DEBUG] Closed socket 1 (AF_INET 127.0.0.1:3350)
[20191020-01:17:20] [INFO ] starting xrdp-sesman with pid 671
[20191020-01:17:20] [INFO ] listening to port 3350 on 127.0.0.1
[20191020-01:42:58] [INFO ] shutting down sesman 1
[20191020-01:42:58] [INFO ] shutting down sesman 1
[20191020-01:42:58] [DEBUG] Closed socket 7 (AF_INET 127.0.0.1:3350)
[20191020-15:52:24] [DEBUG] libscp initialized
[20191020-15:52:25] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20191020-15:52:25] [DEBUG] Closed socket 1 (AF_INET 127.0.0.1:3350)
[20191020-15:52:25] [INFO ] starting xrdp-sesman with pid 763
[20191020-15:52:25] [INFO ] listening to port 3350 on 127.0.0.1

xrdp.ini

[Globals]
; xrdp.ini file version number
ini_version=1

; fork a new process for each incoming connection
fork=true
; tcp port to listen
port=3389
; 'port' above should be connected to with vsock instead of tcp
use_vsock=false
; regulate if the listening socket use socket option tcp_nodelay
; no buffering will be performed in the TCP stack
tcp_nodelay=true
; regulate if the listening socket use socket option keepalive
; if the network connection disappear without close messages the connection will be closed
tcp_keepalive=true
#tcp_send_buffer_bytes=32768
#tcp_recv_buffer_bytes=32768

; security layer can be 'tls', 'rdp' or 'negotiate'
; for client compatible layer
security_layer=negotiate
; minimum security level allowed for client
; can be 'none', 'low', 'medium', 'high', 'fips'
crypt_level=high
; X.509 certificate and private key
; openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365
certificate=
key_file=
; set SSL protocols
; can be comma separated list of 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3'
ssl_protocols=TLSv1.2, TLSv1.2, TLSv1.3
; For Windows XP we need to add TLSv1.1 to ssl_protocols
;ssl_protocols=TLSv1.1, TLSv1.2, TLSv1.3
; set TLS cipher suites
#tls_ciphers=HIGH

; Section name to use for automatic login if the client sends username
; and password. If empty, the domain name sent by the client is used.
; If empty and no domain name is given, the first suitable section in
; this file will be used.
autorun=

allow_channels=true
allow_multimon=true
bitmap_cache=true
bitmap_compression=true
bulk_compression=true
#hidelogwindow=true
max_bpp=32
new_cursors=true
; fastpath - can be 'input', 'output', 'both', 'none'
use_fastpath=both
; when true, userid/password *must* be passed on cmd line
#require_credentials=true
; You can set the PAM error text in a gateway setup (MAX 256 chars)
#pamerrortxt=change your password according to policy at http://url

;
; colors used by windows in RGB format
;
blue=009cb5
grey=dedede
#black=000000
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72

;
; configure login screen
;

; Login Screen Window Title
#ls_title=My Login Title

; top level window background color in RGB format
ls_top_window_bg_color=009cb5

; width and height of login screen
ls_width=350
ls_height=430

; login screen background color in RGB format
ls_bg_color=dedede

; optional background image filename (bmp format).
#ls_background_image=

; logo
; full path to bmp-file or file in shared folder
ls_logo_filename=
ls_logo_x_pos=55
ls_logo_y_pos=50

; for positioning labels such as username, password etc
ls_label_x_pos=30
ls_label_width=65

; for positioning text and combo boxes next to above labels
ls_input_x_pos=110
ls_input_width=210

; y pos for first label and combo box
ls_input_y_pos=220

; OK button
ls_btn_ok_x_pos=142
ls_btn_ok_y_pos=370
ls_btn_ok_width=85
ls_btn_ok_height=30

; Cancel button
ls_btn_cancel_x_pos=237
ls_btn_cancel_y_pos=370
ls_btn_cancel_width=85
ls_btn_cancel_height=30

[Logging]
LogFile=xrdp.log
LogLevel=DEBUG
EnableSyslog=true
SyslogLevel=DEBUG
; LogLevel and SysLogLevel could by any of: core, error, warning, info or debug

[Channels]
; Channel names not listed here will be blocked by XRDP.
; You can block any channel by setting its value to false.
; IMPORTANT! All channels are not supported in all use
; cases even if you set all values to true.
; You can override these settings on each session type
; These settings are only used if allow_channels=true
rdpdr=true
rdpsnd=true
drdynvc=true
cliprdr=true
rail=true
xrdpvr=true
tcutils=true

; for debugging xrdp, in section xrdp1, change port=-1 to this:
#port=/tmp/.xrdp/xrdp_display_10

; for debugging xrdp, add following line to section xrdp1
#chansrvport=/tmp/.xrdp/xrdp_chansrv_socket_7210

;
; 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]
#name=vnc-any
#lib=libvnc.so
#ip=ask
#port=ask5900
#username=na
#password=ask
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000

#[neutrinordp-any]
#name=neutrinordp-any
#lib=libxrdpneutrinordp.so
#ip=ask
#port=ask3389
#username=ask
#password=ask

; You can override the common channel settings for each session type
#channel.rdpdr=true
#channel.rdpsnd=true
#channel.drdynvc=true
#channel.cliprdr=true
#channel.rail=true
#channel.xrdpvr=true

For reference, I’ll my sesman.log, xrdp.log, and .xorgxrdp.10.log:

xrdp.log:

[20190108-04:26:43] [INFO ] Socket 12: AF_VSOCK connection received from cid: -1 port: -2147483641
[20190108-04:26:43] [DEBUG] Closed socket 12 (AF_VSOCK cid -1 port 3389)
[20190108-04:26:43] [DEBUG] Closed socket 11 (AF_VSOCK cid -1 port 3389)
[20190108-04:26:43] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20190108-04:26:43] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20190108-04:26:43] [ERROR] Cannot read private key file /etc/xrdp/key.pem: No such file or directory
[20190108-04:26:43] [DEBUG] TLSv1.2 enabled
[20190108-04:26:43] [DEBUG] TLSv1.1 enabled
[20190108-04:26:43] [DEBUG] TLSv1 enabled
[20190108-04:26:43] [DEBUG] Security layer: requested 11, selected 0
[20190108-04:26:43] [DEBUG] Closed socket 12 (AF_VSOCK cid -1 port 3389)
[20190108-04:26:43] [INFO ] Socket 12: AF_VSOCK connection received from cid: -1 port: -2147483640
[20190108-04:26:43] [DEBUG] Closed socket 12 (AF_VSOCK cid -1 port 3389)
[20190108-04:26:43] [DEBUG] Closed socket 11 (AF_VSOCK cid -1 port 3389)
[20190108-04:26:43] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20190108-04:26:43] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20190108-04:26:43] [ERROR] Cannot read private key file /etc/xrdp/key.pem: No such file or directory
[20190108-04:26:43] [DEBUG] TLSv1.2 enabled
[20190108-04:26:43] [DEBUG] TLSv1.1 enabled
[20190108-04:26:43] [DEBUG] TLSv1 enabled
[20190108-04:26:43] [DEBUG] Security layer: requested 0, selected 0
[20190108-04:26:43] [INFO ] connected client computer name: DESKTOP-Q5BLN8V
[20190108-04:26:43] [INFO ] Non-TLS connection established from -1 port -2147483640: encrypted with standard RDP security
[20190108-04:26:43] [DEBUG] xrdp_00002271_wm_login_mode_event_00000001
[20190108-04:26:43] [INFO ] Cannot find keymap file /etc/xrdp/km-a0000409.ini
[20190108-04:26:43] [INFO ] Loading keymap file /etc/xrdp/km-00000409.ini
[20190108-04:26:43] [WARN ] local keymap file for 0xa0000409 found and doesn't match built in keymap, using local keymap file
[20190108-04:26:52] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0.1 port 3350
[20190108-04:26:53] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20190108-04:26:53] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait...
[20190108-04:26:53] [DEBUG] return value from xrdp_mm_connect 0
[20190108-04:26:53] [INFO ] xrdp_wm_log_msg: login successful for display 10
[20190108-04:26:53] [DEBUG] xrdp_wm_log_msg: started connecting
[20190108-04:26:57] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:00] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:04] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:07] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:11] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:14] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:18] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:21] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:25] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:28] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:32] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:35] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:39] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:42] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:46] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:49] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:53] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:27:56] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:00] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:03] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:07] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:10] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:14] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:18] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:21] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:25] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:28] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:32] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:35] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:39] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:42] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:46] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:49] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:53] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:28:56] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:00] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:03] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:07] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:10] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:14] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:17] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:21] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:24] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:28] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:31] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:35] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:38] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:42] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:45] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:49] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:52] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:29:56] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:30:00] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:30:03] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:30:07] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:30:10] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:30:14] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:30:17] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:30:21] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:30:24] [DEBUG] xrdp_wm_log_msg: connection problem, giving up
[20190108-04:30:24] [DEBUG] Closed socket 23 (AF_UNIX)
[20190108-04:30:24] [DEBUG] xrdp_wm_log_msg: some problem
[20190108-04:30:24] [DEBUG] xrdp_mm_module_cleanup
[20190108-04:30:24] [DEBUG] Closed socket 22 (AF_INET6 ::1 port 59540)

xrdp-sesman.log

[20190108-04:45:00] [INFO ] shutting down sesman 1
[20190108-04:45:00] [DEBUG] Closed socket 7 (AF_INET6 ::1 port 3350)
[20190108-04:45:01] [DEBUG] libscp initialized
[20190108-04:45:01] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20190108-04:45:01] [INFO ] starting xrdp-sesman with pid 1230
[20190108-04:45:01] [DEBUG] Closed socket 5 (AF_INET6 ::1 port 3350)
[20190108-04:45:01] [INFO ] listening to port 3350 on 127.0.0.1
[20190108-04:45:12] [INFO ] A connection received from ::1 port 39142
[20190108-04:45:13] [INFO ] ++ created session (access granted): username merit, ip NULL:NULL - socket: 12
[20190108-04:45:13] [INFO ] starting Xorg session...
[20190108-04:45:13] [DEBUG] Closed socket 9 (AF_INET6 :: port 5910)
[20190108-04:45:13] [DEBUG] Closed socket 9 (AF_INET6 :: port 6010)
[20190108-04:45:13] [DEBUG] Closed socket 9 (AF_INET6 :: port 6210)
[20190108-04:45:13] [DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
[20190108-04:45:13] [INFO ] calling auth_start_session from pid 1402
[20190108-04:45:13] [DEBUG] Closed socket 7 (AF_INET6 ::1 port 3350)
[20190108-04:45:13] [DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
[20190108-04:45:13] [INFO ] /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
[20190108-04:45:13] [CORE ] waiting for window manager (pid 1415) to exit
[20190108-04:45:14] [CORE ] window manager (pid 1415) did exit, cleaning up session
[20190108-04:45:14] [INFO ] calling auth_stop_session and auth_end from pid 1402
[20190108-04:45:14] [DEBUG] cleanup_sockets:
[20190108-04:45:14] [DEBUG] cleanup_sockets: deleting /var/run/xrdp/sockdir/xrdp_chansrv_audio_out_socket_10
[20190108-04:45:14] [DEBUG] cleanup_sockets: deleting /var/run/xrdp/sockdir/xrdp_chansrv_audio_in_socket_10
[20190108-04:45:14] [DEBUG] cleanup_sockets: deleting /var/run/xrdp/sockdir/xrdpapi_10

.xorg.xrdp.10.log

[    18.056]
X.Org X Server 1.19.6
Release Date: 2017-12-20
[    18.056] X Protocol Version 11, Revision 0
[    18.056] Build Operating System: Linux 4.4.0-138-generic x86_64 Ubuntu
[    18.056] Current Operating System: Linux mvm 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64
[    18.056] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-43-generic root=/dev/sda1 ro quiet splash vt.handoff=1
[    18.056] Build Date: 25 October 2018  04:11:27PM
[    18.056] xorg-server 2:1.19.6-1ubuntu4.2 (For technical support please see http://www.ubuntu.com/support)
[    18.056] Current version of pixman: 0.34.0
[    18.056]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    18.056] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    18.056] (++) Log file: ".xorgxrdp.10.log", Time: Tue Jan  8 04:45:13 2019
[    18.059] (++) Using config file: "/etc/X11/xrdp/xorg.conf"
[    18.059] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    18.061] (==) ServerLayout "X11 Server"
[    18.061] (**) |-->Screen "Screen (xrdpdev)" (0)
[    18.061] (**) |   |-->Monitor "Monitor"
[    18.062] (**) |   |-->Device "Video Card (xrdpdev)"
[    18.062] (**) |-->Input Device "xrdpMouse"
[    18.062] (**) |-->Input Device "xrdpKeyboard"
[    18.062] (**) Option "DontVTSwitch" "on"
[    18.062] (**) Option "AutoAddDevices" "off"
[    18.062] (**) Not automatically adding devices
[    18.062] (==) Automatically enabling devices
[    18.062] (==) Automatically adding GPU devices
[    18.062] (==) Automatically binding GPU devices
[    18.062] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    18.066] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    18.066]    Entry deleted from font path.
[    18.066] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    18.066]    Entry deleted from font path.
[    18.066] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    18.066]    Entry deleted from font path.
[    18.066] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[    18.066]    Entry deleted from font path.
[    18.066] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[    18.066]    Entry deleted from font path.
[    18.066] (==) FontPath set to:
        /usr/share/fonts/X11/misc,
        /usr/share/fonts/X11/Type1,
        built-ins
[    18.066] (==) ModulePath set to "/usr/lib/xorg/modules"
[    18.067] (II) Loader magic: 0x560c25146020
[    18.067] (II) Module ABI versions:
[    18.067]    X.Org ANSI C Emulation: 0.4
[    18.067]    X.Org Video Driver: 23.0
[    18.067]    X.Org XInput driver : 24.1
[    18.067]    X.Org Server Extension : 10.0
[    18.073] (II) systemd-logind: took control of session /org/freedesktop/login1/session/c1
[    18.074] (II) no primary bus or device found
[    18.074] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[    18.074] (II) LoadModule: "dbe"
[    18.074] (II) Module "dbe" already built-in
[    18.074] (II) LoadModule: "ddc"
[    18.074] (II) Module "ddc" already built-in
[    18.074] (II) LoadModule: "extmod"
[    18.074] (II) Module "extmod" already built-in
[    18.074] (II) LoadModule: "glx"
[    18.076] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    18.087] (II) Module glx: vendor="X.Org Foundation"
[    18.087]    compiled for 1.19.6, module version = 1.0.0
[    18.087]    ABI class: X.Org Server Extension, version 10.0
[    18.087] (II) LoadModule: "int10"
[    18.087] (II) Loading /usr/lib/xorg/modules/libint10.so
[    18.088] (II) Module int10: vendor="X.Org Foundation"
[    18.088]    compiled for 1.19.6, module version = 1.0.0
[    18.088]    ABI class: X.Org Video Driver, version 23.0
[    18.088] (II) LoadModule: "record"
[    18.088] (II) Module "record" already built-in
[    18.088] (II) LoadModule: "vbe"
[    18.089] (II) Loading /usr/lib/xorg/modules/libvbe.so
[    18.089] (II) Module vbe: vendor="X.Org Foundation"
[    18.089]    compiled for 1.19.6, module version = 1.1.0
[    18.089]    ABI class: X.Org Video Driver, version 23.0
[    18.089] (II) LoadModule: "xorgxrdp"
[    18.090] (II) Loading /usr/lib/xorg/modules/libxorgxrdp.so
[    18.091] (II) Module XORGXRDP: vendor="X.Org Foundation"
[    18.091]    compiled for 1.19.6, module version = 1.0.0
[    18.091]    ABI class: X.Org Video Driver, version 23.0
[    18.091] xorgxrdpSetup:
[    18.091] (II) LoadModule: "fb"
[    18.091] (II) Loading /usr/lib/xorg/modules/libfb.so
[    18.092] (II) Module fb: vendor="X.Org Foundation"
[    18.092]    compiled for 1.19.6, module version = 1.0.0
[    18.092]    ABI class: X.Org ANSI C Emulation, version 0.4
[    18.092] (II) LoadModule: "xrdpdev"
[    18.092] (II) Loading /usr/lib/xorg/modules/drivers/xrdpdev_drv.so
[    18.093] (II) Module XRDPDEV: vendor="X.Org Foundation"
[    18.093]    compiled for 1.19.6, module version = 1.0.0
[    18.093]    ABI class: X.Org Video Driver, version 23.0
[    18.093] xrdpdevSetup:
[    18.093] (II) LoadModule: "xrdpmouse"
[    18.093] (II) Loading /usr/lib/xorg/modules/input/xrdpmouse_drv.so
[    18.093] (II) Module XRDPMOUSE: vendor="X.Org Foundation"
[    18.093]    compiled for 1.19.6, module version = 1.0.0
[    18.093]    Module class: X.Org XInput Driver
[    18.093]    ABI class: X.Org XInput driver, version 24.1
[    18.093] rdpmousePlug:
[    18.093] (II) LoadModule: "xrdpkeyb"
[    18.094] (II) Loading /usr/lib/xorg/modules/input/xrdpkeyb_drv.so
[    18.094] (II) Module XRDPKEYB: vendor="X.Org Foundation"
[    18.094]    compiled for 1.19.6, module version = 1.0.0
[    18.094]    Module class: X.Org XInput Driver
[    18.094]    ABI class: X.Org XInput driver, version 24.1
[    18.094] rdpkeybPlug:
[    18.094] rdpIdentify:
[    18.094] (II) XRDPDEV: driver for xrdp: XRDPDEV
[    18.094] rdpDriverFunc: op 10
[    18.094] (WW) Falling back to old probe method for XRDPDEV
[    18.094] rdpProbe:
[    18.094] (II) Loading sub module "fb"
[    18.094] (II) LoadModule: "fb"
[    18.094] (II) Loading /usr/lib/xorg/modules/libfb.so
[    18.094] (II) Module fb: vendor="X.Org Foundation"
[    18.094]    compiled for 1.19.6, module version = 1.0.0
[    18.094]    ABI class: X.Org ANSI C Emulation, version 0.4
[    18.094] (II) XRDPDEV(0): using default device
[    18.094] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    18.094] rdpPreInit:
[    18.094] (**) XRDPDEV(0): Depth 24, (--) framebuffer bpp 32
[    18.094] (==) XRDPDEV(0): RGB weight 888
[    18.094] (==) XRDPDEV(0): Using gamma correction (1.0, 1.0, 1.0)
[    18.094] (==) XRDPDEV(0): Default visual is TrueColor
[    18.094] (==) XRDPDEV(0): DPI set to (96, 96)
[    18.094] (II) XRDPDEV(0):   mode "640x480" ok
[    18.094] (II) XRDPDEV(0):   mode "800x600" ok
[    18.094] (--) XRDPDEV(0): Virtual size is 800x600 (pitch 800)
[    18.094] (**) XRDPDEV(0):  Default mode "800x600": 36.0 MHz (scaled from 0.0 MHz), 35.2 kHz, 56.2 Hz
[    18.094] (II) XRDPDEV(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz d)
[    18.094] (==) Depth 24 pixmap format is 32 bpp
[    18.095] rdpScreenInit: virtualX 800 virtualY 600 rgbBits 8 depth 24
[    18.095] rdpScreenInit: pfbMemory bytes 1920000
[    18.095] rdpScreenInit: pfbMemory 0x7f5697253010
[    18.095] rdpSimdInit: assigning yuv functions
[    18.095] rdpSimdInit: cpuid ax 1 cx 0 return ax 0x00050654 bx 0x00200800 cx 0xfeda3203 dx 0x1f8bfbff
[    18.095] rdpSimdInit: sse2 amd64 yuv functions assigned
[    18.095] rdpXvInit: depth 24
[    18.096] (==) XRDPDEV(0): Backing store enabled
[    18.097] rdpClientConInit: kill disconnected [0] timeout [0] sec
[    18.097]
[    18.097] rdpScreenInit: out
[    18.097] (==) RandR enabled
[    18.101] (II) SELinux: Disabled on system
[    18.102] (II) AIGLX: Screen 0 is not DRI2 capable
[    18.102] (EE) AIGLX: reverting to software rendering
[    18.223] (II) IGLX: enabled GLX_MESA_copy_sub_buffer
[    18.224] (II) IGLX: Loaded and initialized swrast
[    18.224] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    18.302] (II) Using input driver 'XRDPMOUSE' for 'xrdpMouse'
[    18.302] (**) Option "CorePointer"
[    18.302] (**) xrdpMouse: always reports core events
[    18.302] rdpmousePreInit: drv 0x560c252dcfe0 info 0x560c25446130, flags 0x0
[    18.302] (II) XINPUT: Adding extended input device "xrdpMouse" (type: Mouse, id 6)
[    18.302] rdpmouseControl: what 0
[    18.302] rdpmouseDeviceInit:
[    18.302] rdpmouseCtrl:
[    18.302] rdpRegisterInputCallback: type 1 proc 0x7f569762cc60
[    18.302] (**) xrdpMouse: (accel) keeping acceleration scheme 1
[    18.302] (**) xrdpMouse: (accel) acceleration profile 0
[    18.302] (**) xrdpMouse: (accel) acceleration factor: 2.000
[    18.302] (**) xrdpMouse: (accel) acceleration threshold: 4
[    18.302] rdpmouseControl: what 1
[    18.302] rdpmouseDeviceOn:
[    18.302] (II) Using input driver 'XRDPKEYB' for 'xrdpKeyboard'
[    18.302] (**) Option "CoreKeyboard"
[    18.302] (**) xrdpKeyboard: always reports core events
[    18.302] rdpkeybPreInit: drv 0x560c252dcf50 info 0x560c255b6b50, flags 0x0
[    18.302] (II) XINPUT: Adding extended input device "xrdpKeyboard" (type: Keyboard, id 7)
[    18.302] rdpkeybControl: what 0
[    18.302] rdpkeybDeviceInit:
[    18.314] rdpkeybChangeKeyboardControl:
[    18.314] rdpkeybChangeKeyboardControl: autoRepeat on
[    18.315] rdpRegisterInputCallback: type 0 proc 0x7f5697429530
[    18.315] rdpkeybControl: what 1
[    18.315] rdpkeybDeviceOn:
[    18.320] (II) config/udev: Adding input device Microsoft Vmbus HID-compliant Mouse (/dev/input/event1)
[    18.320] (II) AutoAddDevices is off - not adding device.
[    18.320] (II) config/udev: Adding input device Microsoft Vmbus HID-compliant Mouse (/dev/input/js0)
[    18.320] (II) AutoAddDevices is off - not adding device.
[    18.321] (II) config/udev: Adding input device Microsoft Vmbus HID-compliant Mouse (/dev/input/mouse0)
[    18.321] (II) AutoAddDevices is off - not adding device.
[    18.321] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event0)
[    18.321] (II) AutoAddDevices is off - not adding device.
[    18.324] rdpSaveScreen:
[    18.324] rdpDeferredRandR:
[    18.324] rdpResizeSession: width 1024 height 768
[    18.324]   calling RRScreenSizeSet
[    18.324] rdpRRScreenSetSize: width 1024 height 768 mmWidth 271 mmHeight 203
[    18.325] rdpRRGetInfo:
[    18.325]   screen resized to 1024x768
[    18.326]   RRScreenSizeSet ok 1
[    18.326] rdpResizeSession: width 1920 height 1200
[    18.326]   calling RRScreenSizeSet
[    18.326] rdpRRScreenSetSize: width 1920 height 1200 mmWidth 508 mmHeight 318
[    18.326] rdpRRGetInfo:
[    18.326]   screen resized to 1920x1200
[    18.329]   RRScreenSizeSet ok 1
[    18.414] rdpInDeferredUpdateCallback:
[    18.414] rdpkeybChangeKeyboardControl:
[    18.414] rdpkeybChangeKeyboardControl: autoRepeat off
[    18.428] rdpClientConGotConnection:
[    18.428] rdpClientConGotConnection: g_sck_accept ok new_sck 7
[    18.428] rdpClientConGotConnection: adding only clientCon
[    18.431] rdpClientConProcessMsgVersion: version 0 0 0 1
[    18.432] rdpClientConProcessScreenSizeMsg: set width 1920 height 1200 bpp 32
[    18.432] rdpClientConProcessScreenSizeMsg: shmemid 32769 shmemptr 0x7f565266a000
[    18.432] rdpClientConProcessMsgClientInput: invalidate x 0 y 0 cx 1920 cy 1200
[    18.440] rdpClientConProcessMsgClientInfo:
[    18.440]   got client info bytes 5744
[    18.440]   jpeg support 0
[    18.440]   offscreen support 1
[    18.440]   offscreen size 10485760
[    18.440]   offscreen entries 100
[    18.440] rdpClientConProcessMsgClientInfo: got RFX capture
[    18.440]   cap_width 1920 cap_height 1216
[    18.440] rdpClientConProcessMsgClientInfo: shmemid 65537 shmemptr 0x7f565264c000 bytes 9338880
[    18.440]   client can not do offscreen to offscreen blits
[    18.440]   client can do new(color) cursor
[    18.440]   client can not do multimon
[    18.440] rdpRRSetRdpOutputs: numCrtcs 0 monitorCount 0
[    18.440] rdpRRSetRdpOutputs: add output 0 left 0 top 0 width 1920 height 1200
[    18.440] rdpLoadLayout: keylayout 0xa0000409 variant  display 10
[    18.440] rdpkeybChangeKeyboardControl:
[    18.440] rdpkeybChangeKeyboardControl: autoRepeat on
[    18.441] rdpkeybChangeKeyboardControl:
[    18.441] rdpkeybChangeKeyboardControl: autoRepeat on
[    18.518] rdpClientConProcessMsgClientInput: invalidate x 0 y 0 cx 1919 cy 1199
[    18.541] rdpInDeferredUpdateCallback:
[    18.541] rdpkeybChangeKeyboardControl:
[    18.541] rdpkeybChangeKeyboardControl: autoRepeat off
[    18.541] rdpkeybChangeKeyboardControl:
[    18.541] rdpkeybChangeKeyboardControl: autoRepeat off
[    19.007] rdpmouseControl: what 2
[    19.007] rdpmouseDeviceOff:
[    19.007] rdpkeybControl: what 2
[    19.007] rdpkeybDeviceOff:
[    19.008] rdpkeybControl: what 3
[    19.008] rdpkeybUnInit: drv 0x560c252dcf50 info 0x560c255b6b50, flags 0x0
[    19.008] rdpUnregisterInputCallback: proc 0x7f5697429530
[    19.008] rdpmouseControl: what 3
[    19.008] rdpmouseUnInit: drv 0x560c252dcfe0 info 0x560c25446130, flags 0x0
[    19.008] rdpUnregisterInputCallback: proc 0x7f569762cc60
[    19.009] rdpCloseScreen:
[    19.009] xorgxrdpDownDown:
[    19.009] xorgxrdpDownDown: 1
[    19.009] rdpClientConDeinit:
[    19.009] rdpClientConDeinit: disconnecting only clientCon
[    19.009] rdpClientConDisconnect:
[    19.009] rdpClientConDisconnect: clientCon removed from dev list
[    19.009] rdpClientConDeinit: deleting file /var/run/xrdp/sockdir/xrdp_display_10
[    19.009] rdpClientConDeinit: deleting file /var/run/xrdp/sockdir/xrdp_disconnect_display_10
[    19.010] (II) Server terminated successfully (0). Closing log file.

В статье рассказано о том, как настроить подключение к Linux через протокол RDP (Remote Desktop Protocol).

RDP — это наиболее распространённый протокол для удаленной работы (или администрирования ПК), при котором экран компьютера отображается на удалённом ПК, управление с мыши и клавиатуры. RDP может использоваться между ПК с различными ОС — как Windows, так и Linux.

Следующий гайд был написан по итогам успешной установки и запуска RDP сервера под Linux Runtu (Description: Ubuntu 20.04.3 LTS) и Linux Mint «Uma» Description: Linux Mint 20.2).

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

  1. Если до этого предпринимались неудачные попытки настройки xrdp, прежде всего нужно удалить пакеты xrdp и xorgrdp и их настройки, чтобы выполнить установку с чистого листа.

    sudo apt-get purge xrdp xorgxrdp
  2. Вначале нужно выполнить обновление версий пакетов:

    sudo apt-get update & sudo apt-get upgrade & sudo apt-get dist-upgrade
  3. Если операционная система Ubuntu Linux 16.04 или 18.04, либо 20.04 или 21.04, для установки xrdp советую воспользоваться готовым скриптом с сайта

https://c-nergy.be/downloads/xRDP/xrdp-installer-1.4.zip — скачать архив и извлечь скрипт.

Документация по программе «xrdp-installer» находится по адресу https://c-nergy.be/blog/?p=17810, а также в самой программе выводится краткая справка о возможных параметрах её вызова, при запуске sh-файла с ключом —help:

bash xrdp-installer-1.4.sh --help

Для запуска вводить команду sudo не нужно, когда надо она запросит пароль su. Запуск, например, так:

chmod +x xrdp-installer-1.4.sh
./xrdp-installer-1.4.sh

И затем перейти к разделам ОКОНЧАТЕЛЬНАЯ НАСТРОЙКА XRDP и «Диагностика«.


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

sudo apt-get install x-window-system xserver-xorg xserver-xorg-core
sudo apt-get install  xserver-xorg-legacy

Выполняем реконфигурацию пакета

sudo apt-get install xserver-xorg-legacy
sudo dpkg-reconfigure xserver-xorg-legacy

окно для конфигурирования запуска Xorg:
xserver-xorg-legacy
в котором я выбрал последний пункт, дающий наибольшие права — «Кто угодно».

Данной командой производится запись в файл cat /etc/X11/Xwrapper.config:
allowed_users=anybody


Установка пакетов, необходимых для запуска xrdp:

sudo apt-get install libx11-dev libxfixes-dev libssl-dev libpam0g-dev libtool libjpeg-dev flex bison gettext autoconf libxml-parser-perl libfuse-dev xsltproc libxrandr-dev python3-libxml2 nasm fuse pkg-config git intltool checkinstall

Установка двух основных пакетов XRDP:

sudo apt-get install xrdp xorgxrdp xserver-xorg-input-all 

Можно заметить, что программа установки создаст RSA ключ.
Чтобы операционная система могла прочитать этот ключ, нужно добавить пользователя xrdp в группу ssl-cert:

sudo adduser xrdp ssl-cert

Затем, нужно установить полностью графическую подсистему MESA и драйверы видеокарты. Зачем?
Дело в том, что имеет место цепочка: RDP client -> сеть -> Xrdp server -> Xsession -> Xorg -> MESA -> OpenGL Driver -> видеокарта
При отсутствии возможности запуска графического режима, RDP клиент также «отвалится» сразу после входа.

sudo apt-get install libgl1-mesa-dri libglew1.5-dev libglew-dev libgles2-mesa-dev libglm-dev mesa-utils-extra mesa-common-dev freeglut3 freeglut3-dev

Наконец, видеокарта должна поддерживать режим OpenGL версии 2.1 и выше и иметь установленный драйвер для Linux.

  1. Если старый компьютер — на чипсетах Interl 945 (под общим названием i915) — нужно установить модифицированный, сторонний драйвер, т.к. на штатных драйверах по умолчанию включается режим OpenGL 1.4, тогда как нужен 2.1. Иначе будут ошибки (см. ниже раздел «Ошибки»)

Если следующая команда выводит информацию, что OpenGL высокой версии, ничего делать не нужно:

glxinfo | grep OpenGL

Пример хорошая версия драйвера — равна 2.1 (обращаем внимание на строчку OpenGL version string:
OpenGL vendor string: Mesa Project
OpenGL renderer string: i915 (chipset: 945G)
OpenGL version string: 2.1 Mesa 21.3.0-devel (git-dfef775 2021-09-02 focal-oibaf-ppa)
OpenGL shading language version string: 1.20
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.3.0-devel (git-dfef775 2021-09-02 focal-oibaf-ppa)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:

Если версия 1.4 старая, которая не годится для XRDP, вывод команды glxinfo следующий:
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) 945G
OpenGL version string: 1.4 Mesa 21.0.3
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:

Старая версия драйвера с поддержкой OpenGL 1.4 (установленная по умолчанию из пакета «xserver-xorg-video-intel»). данная версия OpenGL 1.4 не подходит.

Устанавливаем новую версию драйвера (ТОЛЬКО ДЛЯ СТАРЫХ ЧИПСЕТОВ ВСТРОЕННОЙ ГРАФИКИ i915 — i925 — i945)

sudo add-apt-repository ppa:oibaf/graphics-drivers && sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo reboot

Данная команда обновит пакеты графического драйвера для встроенной графики Intel и выполнит перезагрузку.

P.S. Если потребуется в-дальнейшем удаление PPA-репозитория, например, после установки новой видеокарты, команда для удаления: sudo ppa-purge ppa:oibaf/graphics-drivers.

  1. Разрешение подключения к X-серверу «для всех» — дано ранее командой sudo dpkg-reconfigure xserver-xorg-legacy
    Конфигурация записана в файл

    sudo ls -l /etc/X11/Xwrapper.config

Если необходимо, можно посмотреть его содержимое или отредактировать

sudo nano /etc/X11/Xwrapper.config
  • Примечание console — Xorg доступен только для пользователей из консоли, anybody для всех. По умолчанию указано console.
    Подробнее см команду man Xwrapper.config.
  1. Настройка графики OpenGL (обязательно лишь для ПК старых чипсетов со встроенной графикой i915):

Вывод на экран модели графического адаптера:

lspci | grep VGA

Если графический адаптер — встроенная графика Intel чипсета 915 или 82945G переходим в каталог

cd /usr/share/X11/xorg.conf.d/

создаём файл 20-intel.conf:

sudo nano 20-intel.conf

и добавляем в него текст:

Section "Device"
        Identifier "Intel Graphics"
        Driver "intel"
        Option "TearFree" "true"
        Option "AccelMethod" "SNA"
        Option "BackingStore" "true"
        Option "DRI" "3"
EndSection

Вариант для старых ПК: в строке «AccelMethod» вместо стандартного метода ускорения графики «SNA» указать «uxa«.

Лучше использовать «SNA» — более современный метод встроенной графики x86. Где uxa — предыдущая архитектура.

Сохраняем и выходим Ctrl+O, Ctrl+X.

  1. Редактирование конфигурационного файла XRDP:
sudo nano /etc/xrdp/xrdp.ini

в середину файла после строки «background» добавить адрес по умолчанию для XRDP.
address=address=0.0.0.0
nastrojka_xrdp

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

sudo /etc/init.d/xrdp stop
sudo /etc/init.d/xrdp start

ОКОНЧАТЕЛЬНАЯ НАСТРОЙКА XRDP

  1. Добавляем пользователя xrdp в группу tty и даём права на последовательный порт (для решения проблемы начала сессии Xorg, что ‘tty0 access denied’)

    sudo usermod -a -G tty xrdp
    sudo chmod g+r /dev/tty0
  2. Разрешаем запуск сервиса «xrdp»

    sudo systemctl start xrdp
    sudo systemctl enable xrdp
  3. ВАЖНО: Копируем файл скрипт для запуска сессии и исправляем его

    cp /etc/X11/xinit/xinitrc ~/.xinitrc

Узнаём тип установленной оболочки рабочего стола:

echo $XDG_CURRENT_DESKTOP

Если вывод команды пустой, попробовать

cat /etc/X11/default-display-manager

Редактируем файл ~/.xinitrc для запуска сеанса (сессии):

nano ~/.xinitrc

комментируем или удаляем строчку /etc/X11/Xsession, вместо неё пишем:

exec startlxde

или

exec openbox-session
  • для ОС Runtu

или

exec startxfce4

для Linux Mint с оболочкой рабочего стола XFCE

или

exec startlxqt

для Lubuntu или Linux Mint с оболочкой рабочего стола LXQT (если такой вывод у команды
echo $XDG_CURRENT_DESKTOP).


Таким образом, файл .xinitrc в домашнем каталоге пользователя, запускаемый во время старта сеанса XRDP, принял следующий компактный вид:

#!/bin/sh
exec startlxqt

Примечание от 09.09.2021: В этот файл можно добавить запуск любых нужных программ, например, запуск сервера звука pulseaudio и загрузку и переключение национальной раскладки клавиатуры. Тогда файл .xinitrc примет вид:

#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:ctrl_shift_toggle,grp_led:scroll' &
exec startlxqt

Примечание от 07.10.2021: данные команды нужно добавлять в файл ~/.xinitrc пользователя, который будет подключаться по протоколу RDP.

Содержимое файла ~/.xinitrc, если серверная ОС — Linux Mint с оболочкой XFCE:

#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle,grp_led:scroll' &
exec startxfce4

Когда рабочий стол сервера — LXQT, мой файл ~/.xinitrc следующий:
#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle,grp_led:scroll' &
exec startlxqt

И для OpenBox (Runtu Linux) работающий вариант файла ~/.xinitrc следующий:
#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:ctrl_shift_toggle,grp_led:scroll' &
exec openbox-session

exec startlxde

Универсальный файл ~/.xinitrc для любых рабочих столов можно найти на stackoverflow (необходима установка slim).

Диагностика

Перезагружаем ПК, который выполняет роль сервера.

Проверяем с него же, что сервер Xorg запускается без ошибок:

sudo Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp

На этом этапе экран может погаснуть, если вы проверяете XRDP с того же ПК, на котором запущена начальная сессия Xorg. Нужно нажать Ctrl+Alt+F1 ввести имя и пароль, при помощи команды ps -aux | grep xrdp найти номер процесса «sudo xrdp» и завершить его командой «sudo kill <номер процесса>«.

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

Если же сообщение «(EE) Cannot establish any listening sockets — Make sure an X server isn’t already running(EE)»,
нужно перезагрузить ПК и повторить диагностику.

Второй вариант проверки — перед первым подключением к серверу XRDP, завершаем текущий сеанс «Пуск» — «Выйти» — «Выйти из системы». Так как клиент RDP не сможет создать второй сеанс такого же пользователя (с ошибкой в файле ~/.xorgxrdp.10.log: «(EE) Caught signal 11 (Segmentation fault). Server aborting»).

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

sudo useradd -m ivanov-rdp
passwd ivanov-rdp

Ошибки xRDP сервера в Linux и их решения

Настройка брандмауэра

При невозможности подключения по протоколу RDP к серверу, прежде всего проверить открытие порта на FireWall:

sudo apt install nmap
sudo nmap 192.168.55.100 -p 3389

где вместо 192.168.55.100 укажите IP-адрес сервера в локальной сети.
Не забываем открыть локальный порт 3389 в firewall:

sudo ufw allow 3389

Если порт открыт, то вывод:
PORT STATE SERVICE
3389/tcp open ms-wbt-server

Проблема «При подключении с клиента по RDP виден чёрный пустой экран»

На сервере не установлен пакет xorgxrdp — программная «прослойка» между xorg и rdp сервером, который отображает графику — Рабочий стол, указатель мыши и иконки.

Решение — установить на сервер пакет xorgxrdp:

sudo apt-get install xorgxrdp
sudo service xrdp restart

Сеанс xRDP теперь должен работать. Пробуем подключиться!

Примечание: Пакет «xorgxrdp — Remote Desktop Protocol (RDP) modules for X.org» входит в большинство дистрибутивов Debian, а также Ubuntu 18.04 «bionic», 20.04 LTS «focal», 21.04 «hirsute», 21.10 «impish», 22.04 LTS «jammy» (вышла 21.04.2022), и производных ОС на основе DEB-пакетной базы Ubuntu (таких как Runtu, Lubuntu, Xubuntu, Kubuntu и др.), а также дистрибутивы на основе RPM: Fedora, Arch и др.. Поэтому данная инструкция должна работать с множеством версий Linux.


Remmina RDP Client — подключение к серверу

sudo apt-get install remmina remmina-plugin-rdp remmina-plugin-secret
sudo reboot
remmina

Добавляем подключение — тип RDP.
remmina

Если VPN не используется, то в IP адрес вводим «белый» IP-адрес домашнего роутера.
При работе через VPN IP адрес относится к внутренней (локальной, домашней) сети.
Имя и пароль — такие же как при входе «с клавиатуры» на сервере.

Нижние кнопки окна Remmina на нетбуках с разрешением экрана 1024×600 пикселей могут быть обрезаны и видны частично.
«Отменить» — «Сохранить как значения по умолчанию» — «Сохранить» — «Подключиться» — «Сохранить и подключиться»

Нажимаем крайнюю правую кнопку «Сохранить и подключиться».

Различные проблемы

Журналы ошибок в системной каталоге /var/log/:

  • xrdp.log
  • xrdp-sesman.log
  • Xorg.0.log, Xorg.10.log

Журналы ошибок в каталоге пользователя ~:

  • ~/.xorgxrdp.10.log

Просмотреть их можно командами:

sudo cat /var/log/xrdp.log
sudo cat /var/log/xrdp-sesman.log
sudo cat /var/log/Xorg.0.log
sudo cat /var/log/Xorg.10.log
sudo cat ~/.xorgxrdp.log

Если при подключении с ПК под управлением Windows к ПК под управлением Linux после ввода имени пользователя пароля виден сине-зелёный однотонный фон без текста и иконок,
или в файле XRDP.LOG многочисленные ошибки, значит подключение произошло, но не запустилась графика Xorg — скорее всего из-за старой версии OpenGL, либо прав, см. выше.

Пример ошибки на стороне клиента при попытке подключения с помощью программы MSTSC.EXE:
blue

Сообщения об ошибка в журнале XRDP.LOG на стороне сервера:
error19
или аналогичная [DEBUG] Closed socket 17 (AF_UNIX)

Решение — диагностика командой с рабочего стола машины-сервера:

sudo Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp

Нужно добиться отсутствия ошибок Xorg в файле /var/log/Xorg.10.log.

Если при подключении с ПК под управлением Windows виден на мгновение чёрный экран, который тут же закрывается, один из вариантов:

  • неправильной имя/пароль пользователя
  • неправильный скрипт ~/.xinitrc (не запустилась сессия рабочего стола). Проверьте файл ~/.xinitrc на наличие команды exec <имя оболочки>.
  • пользователь, которым вы подключаетесь к ПК удалённо, имеет открытую сессию в операционной системе локально (использует компьютер в данный момент).

Безопасность

Теперь любой ПК в локальной сети сможет подключаться к вашему компьютеру по протоколу RDP. Следует установить для учётной записи пользователя сложный пароль. Если подключение к ПК из Интернет — можно дополнительно использовать VPN с шифрованием трафика.


Дата последнего редактирования 25.04.2022

Похожие публикации

  • Ошибка при печати принтера самсунг scx 4200
  • Ошибка при печати принтера xerox
  • Ошибка при печати принтера samsung
  • Ошибка при печати принтера ricoh
  • Ошибка при печати принтера pantum