Передовые виртуальные и выделенные серверы для проектов любой сложности и структуры.
 Подписывайтесь на Telegram канал!

Установим терминальный сервер XRDP на OC Debian. Настроим все основные требования для удобной работы с сервером для пользователей и администраторов. В последствии рассмотрим установку на сервер программу из семейства 1С Предприятие 8.

Содержание:

Введение

Из статьи вы узнаете о том как настроить терминальный сервер на базе операционной системы Linux. Настраивать будем используя дистрибутив Debian 10 Buster.

Ранее в этой статье я расказывал как производится настройка на Debian 8 и 9 версии и какие нюансы настройки. В новой версии большенсово проблем прошлых версий исправлено, но появились новые с решением которых я с вами и поделюсь.

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

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

Требования для терминального сервера:

  • Работа буфера обмена в обоих направлениях,
  • Переключение раскладки клавиатуры на русский язык,
  • Работа пользователей по сертификату,
  • Монтирование сетевых ресурсов,
  • Подключение локальной папки на сервер,
  • Создание одной сессии для пользователя,
  • Подключение принтеров.

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

Графическую оболочку лучше использовать легковесную. Например, LXDE или XFCE. В моем примере рассматривается использование XFCE.

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

Если вам хочется почитать «Как скачать и установить Debian 10 Buster» вы можете это сделать на сайте который стал для меня отправной точкой в изучении Linux. Все статьи на этом ресурсе написаны понятным языком и проверены автором перед тем как выкладывать в сеть.

Неудачная попытка настройки XRDP на CentOS 7

В репозитории Epel присутствует свежая версия xrdp.x86_64 1:0.9.2-10.el7 что сразу порадовало. Установка проходит без проблем и все сразу работает после старта службы.

В CentOS, как я понял, работают в основном над своим рабочим окружением Gnomе и стараются поддерживать KDE. Для терминального сервера окружение Gnome и KDE тяжеловаты. Можно установить XFCE, LXDE или MATE но они в урезанном виде и пришлось поковыряться, чтобы настроить нужные элементы на панели не говоря уже о других неудобных моментах в настройке.

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

Предварительна подготовка

Для своего удобства я всегда устанавливаю файловый редактор vim и файловый менеджер mc. Установим выполнив команду:

apt install vim mc

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

По умолчанию считается что действия в консоли выполняются из под пользователя root.

Установка XRDP на Debian 10

К сожалению вы не сможете впоследствии установить на эту систему 1C:Предприятие по причине долгой задержки в поддержке этой версии от разработчиков. Команды и действия полностью эдентичны для установки на Debian 9.

Системные требования «1С:Предприятия 8»

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

apt install xrdp xorgxrdp

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

Для запуска X сервера (отображение экрана) существуют разные права доступа. По умолчанию запуск разрешен всем пользователям с доступом к консоли.

Для изменения прав доступа к запуску X сервера необходимо выполнить следующую команду:

dpkg-reconfigure xserver-xorg-legacy

Xrdp настройка Xfce sevo44-1

Перезагружаем сервис:

service xrdp restart

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

Настройка XRDP

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

Скелет (Skel) позволит при добавлении нового пользователя скопировать все параметры настроенного пользователя.

Двухсторонний буфер обмена XRDP

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

Перезагрузка системы пользователем XRDP

Остановился на варианте когда простому пользователю для выполнения перезагрузки не надо указывать пароль root.

Будем использовать сервис PolicyKit. Все параметры разбиты на секции где есть описание на английском языке. Для применения политик в нужных параметрах указывается необходимое значение.

Откроем нужный файл и сделаем необходимые изминения:

vim /usr/share/polkit-1/actions/org.freedesktop.login1.policy
= часть вывода команды и необходимые изменения =
= вместо auth_admin_keep указываем yes =
<action id="org.freedesktop.login1.reboot">
<description gettext-domain="systemd">Reboot the system</description>
<message gettext-domain="systemd">Authentication is required for rebooting the system.</message>
                <defaults>
                        <allow_any>yes</allow_any>
                        <allow_inactive>yes</allow_inactive>
                        <allow_active>yes</allow_active>
                </defaults>
<annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.set-wall-message</annotate>
</action>

Теперь при перезагрузке система не будет запрашивать пароль root.

Одна сессия для пользователя XRDP

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

Для настройки нам необходимо открыть файл и сделать там необходимые изменения:

vim /etc/xrdp/sesman.ini
= вывод части команды с необходимыми настройками =
[Sessions]
;; X11DisplayOffset - x11 display number offset
; Type: integer
; Default: 10
X11DisplayOffset=10

;; MaxSessions - maximum number of connections to an xrdp server
; Type: integer
; Default: 0
# Выставляем количество пользователей для одновременной работе на сервере 
MaxSessions=3

;; KillDisconnected - kill disconnected sessions
; Type: boolean
; Default: false
; if 1, true, or yes, kill session after 60 seconds
# Не разрываем сеанс при отключении пользователя чтобы потом попасть в туже сессию 
KillDisconnected=false

Запрет авторизации ROOT

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

vim /etc/xrdp/sesman.ini
= необходимое изменение =
[Security]
# Авторизация root. true - разрешено false - запрещено
AllowRootLogin=false

Название подключенной локальной папки

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

vim /etc/xrdp/sesman.ini
= необходимое изменение =
[Chansrv]
; drive redirection, defaults to xrdp_client if not set
# Название монтируемой папки
FuseMountName=Mount_FOLDER

Сертификат при работе сервера XRDP

По умолчанию система работает с сертификатами созданными при установке о чем свидетельствует информация в логе xrdp:

cat /var/log/xrdp.log
= необходимая информация =
[INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied

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

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

adduser xrdp ssl-cert

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

Выпуск собственого сертификата для XRDP

Выпустим свой сертификат по команде указанном в файле настройки xrdp.  Изменим только действие сертификата с 1 года до 10 лет. Создадим папку, перейдем туда и запустим команду генерации ключа:

mkdir /etc/xrdp/certificate/
cd /etc/xrdp/certificate/
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650
= будут заданы вопросы на которые ответьте по аналогии =
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Kostroma
Locality Name (eg, city) []:Kostroma
Organization Name (eg, company) [Internet Widgits Pty Ltd]:sevo44
Organizational Unit Name (eg, section) []:sevo44
Common Name (e.g. server FQDN or YOUR name) []:Administrator
Email Address []:info@sevo44.ru

Отредактируем файл настройки:

vim /etc/xrdp/xrdp.ini
= часть кода с необходимые изменениями =
; 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=/etc/xrdp/certificate/cert.pem 
key_file=/etc/xrdp/certificate/key.pem
; set SSL protocols
; can be comma separated list of 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3'
ssl_protocols=TLSv1.2, TLSv1.3
; set TLS cipher suites
#tls_ciphers=HIGH

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

chown -R xrdp:xrdp /etc/xrdp/certificate/

После перезагрузки сервера и подключения к нему по XRDP cообщений больше в логе об использовании сертификатов по умолчанию нет и сервис работает с нашим сертификатом.

Настройка вида окна авторизации XRDP

Отредактируем параметры отвечающие за отображение формы авторизации пользователей. Отредактируем параметры в файле:

vim /etc/xrdp/xrdp.ini
= часть кода с необходимыми изменениями =

; Login Screen Window Title
ls_title=XRDP server 1C

; top level window background color in RGB format
# Фон
ls_top_window_bg_color=000000

; 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
# Свой логотип в формате bmp размера 240х140
ls_logo_filename=/etc/xrdp/logo_xrdp.bmp
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=60

; 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

= Оставляю сессию только Xorg а остальные коментирую =

;
; 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

Результат моих изменений.

Авторизация XRDP от sevo44.ru

Перезагрузим сервис xrdp для применения всех сделанных настроек:

service xrdp restart

Отключение screensaver

Вначале хотел отключать его у пользователей но подумав решил удалить:

apt-get remove xscreensaver

В системе Debian 10 после базовой установки я не обнаружил пакета xscreensaver.

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

Xrdp настройка Xfce sevo44-9

Настройка базового пользователя

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

Раскладка клавиатуры в XFCE

С раскладками в XRDP приходилось возится больше всего. После добавления нового элемента «Раскладка клавиатуры» на панель и его настройки все работает как положено.

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

Что я только не перепробовал, куда только не писал рекомендованный код, по рекомендациям с разных статей но проблема эта никуда не уходила. Показать пользователю как каждый раз настраивать «Раскладка клавиатуры» не серьезно. Вариант есть дубовый но рабочий на 100 % и при любых обстоятельствах.

Добавил элемент на панель «Запуск приложения» указал там «Терминал Xfce» и внёс туда код:

setxkbmap -layout "us,ru" -model "pc105" -option "grp:alt_shift_toggle,grp_led:scroll"

Обратите внимание на клавиши смены раскладки!

Разместил рядом с флагами поменяв иконку на понравившуюся мне. xrdp_lang_ru_sevo44

Теперь если переключение не работает тыкаем по кнопке и раскладка снова работает.

Решение проблемы с раскладкой клавиатуры

Мне на почту прислал решение Михаил с сайта admin1c.ru
Посл проверки с радостью делись с вами этим решением!

Необходимо в файле /etc/xrdp/xrdp_keyboard.ini добавить необходимый код и переключение работает прекрасна при любых вариантах работы с системой.

vim /etc/xrdp/xrdp_keyboard.ini
= необходимые проверки и дополнения =
В моем случае эти коды были, но лучше проверить их наличие
[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_ru=0x00000419

Всё что ниже добавляем в конце не забывая что переключение происходит сочетанием  клавиш alt+shift
[layouts_map_ru]
rdp_layout_us=ru,us
rdp_layout_ru=ru,us

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
; model=pc105 при необходимости
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

После перезагрузки XRDP проверяем результат.

service xrdp restart

Блокировка настроек XFCE пользователям

В статье выше мы разрешили простым пользователям перезагружать сервер без ввода пароля root. Cделаем запрет на редактирование системных настроек. В папке /etc/xdg/xfce4/xfconf лежат базовые настройки и по умолчанию они не работают так как работают настройки самого пользователя. Добавив параметр в эти файлы пользователь будет использовать именно их.

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

Cделаем запрет на редактирование панели. Скопируем параметры настроенного пользователя:

cp -v /home/настроенный пользователь/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/
= вывод команды =
«/home/настроенный пользователь/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml» -> «/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml»

Откроем и отредактируем файл указав запрет на изменения всем кроме пользователя local:

mcedit /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
= вывод команды с необходимыми изменениями =
<channel name="xfce4-panel" version="1.0" locked="*" unlocked="local">

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

Запрет на изменения настрое XFCE делается редактированием файла:

mcedit /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
= вывод команды с необходимыми изменениями =
<channel name="xsettings" version="1.0" locked="*" unlocked="local">

Настройки XFCE сделанные пользователем не будут применяться но никаких предупреждающих сообщений пользователь не увидит!

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

Изменим вид панели пользователя. Создадим папку и необходимый файл с параметрами:

mkdir /etc/xdg/xfce4/kiosk
mcedit /etc/xdg/xfce4/kiosk/kioskrc
= вывод команды с необходимыми изменениями =
[xfce4-session]
# Указываем пользователей кто может перегрузить сервер или разрешение группе %root
Shutdown=root,sevo44

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

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

Для применения всех параметров перезагрузим сервер:

reboot

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

Xrdp настройка Xfce sevo44-1

У всех остальных будет такой вид.

Xrdp настройка Xfce sevo44-2

 Создание skel (скелета) для новых пользователей

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

Я использую настройки самой XFCE, рабочего стола и списка баз 1С:Предприятие. Выполним действия:

cd /home/Базовый пользователь
 cp -R -f -b .config/ /etc/skel/
 cp -R -f -b Рабочий\ стол/ /etc/skel/
# В случае использования 1С:Предприятие
 cp -R -f -b .1C/ /etc/skel/

Последняя строка кода скопирует настройку окна «Запуск 1С:Предприятие» в которой указываются параметры всех баз.

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

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

В одной из статей я подробно рассмотрел установку и настройку 1С:Предприятие на сервер терминалов который рассматриваем в этом материале.

Управление пользователями Debian

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

Добавление новых пользователей

Добавление производится командой:

adduser user007
= вывод команды с информацией для заполнения =
Добавляется пользователь «user007» ...
Добавляется новая группа «user007» (1007) ...
Добавляется новый пользователь «user007» (1006) в группу «user007» ...
Создаётся домашний каталог «/home/user007» ...
Копирование файлов из «/etc/skel» ...
Введите новый пароль UNIX: 
Повторите ввод нового пароля UNIX: 
passwd: пароль успешно обновлён
Изменение информации о пользователе user007
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
 Полное имя []: user007 
 Номер комнаты []: 
 Рабочий телефон []: 
 Домашний телефон []: 
 Другое []: 
Данная информация корректна? [Y/n] y

Изменении пароля пользователя

passwd user007
= вывод команды =
Введите новый пароль UNIX: 
Повторите ввод нового пароля UNIX: 
passwd: пароль успешно обновлён

Удаление пользователя

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

deluser --remove-home user007
= вывод команды =
Идёт поиск файлов для сохранения/удаления ...
Удаляются файлы ...
Удаляется пользователь «user007» ...
Предупреждение: в группе «user007» нет больше членов.
Готово.

Список пользователей

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

cat /etc/passwd
= часть вывода команды =
test:x:1001:1001:test,,,:/home/test:/bin/bash
sevo44:x:1002:1002:sevo44,,,:/home/sevo44:/bin/bash
usr1cv8:x:999:1003:1C Enterprise 8 server launcher:/home/usr1cv8:/bin/sh
geoclue:x:119:127::/var/lib/geoclue:/bin/false
davfs2:x:120:128::/var/cache/davfs2:/bin/false

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

Подключение локального диска на сервер терминалов

Подключение было проверено на стандартном клиенте Windows и программах LInux Remmina и KRDC. Монтирование и работа с локальным диском подключаемого клиента происходит без проблем.

В случае проблем с подключением дисков необходимо в настройках подключения в локальных ресурсах отключать галочку “Принтеры»

Подключение с Windows

При подключении c систем Windows на странице авторизации не получится переключить раскладку клавиатуры для требуемого языка ввода. В большинстве случаев по умолчанию стоит Русская раскладка а вводит надо на Английском.

Перед подключением с Windows необходимо вначале перейти на раскладку в которой вводится логин и пароль, как правило это EN.

Добавление принтеров

К принтерам у меня особое отношение. Эти аппараты вечно приносят кучу проблем и слава богу что все больше и больше их делают сетевыми что облегчает настройку. Настроить сетевой принтер не вызовет проблем даже у начинающего администратора. С usb принтерами придется повозится до получения бубна мастера по подключению принтера в системах Linux. Подключение  локального принтера используя программу RDP клиента у меня никогда не получалось а по словам опытных программистов работает коряво и не стабильно. Ладно еще если в одном офисе всё а если разные или вообще с дома хотят подключить принтер вообще жжжж….

Для меня есть два варианта решения проблемы для удаленных от офиса пользователей:

  1. В случаях когда принтере не требуется я в семействе бухгалтерских программ 1С настраиваю нормальное сохранения в PDF и все это сохраняется в локальную папку которая без проблем подключается к серверу терминалов во всех популярных клиентах.
  2. Если нужен принтере в работе то необходимо настраивать VPN чтобы удавленный клиент попал в туже сеть.

Управление XRDP

Управление службой стандартное для систем Debian.

service xrdp restart
service xrdp start
service xrdp stop
service xrdp status

Так выглядит статус после старта службы:

service xrdp status
● xrdp.service - xrdp daemon
 Loaded: loaded (/lib/systemd/system/xrdp.service; enabled)
 Active: active (running) since Вт 2017-05-23 15:05:32 MSK; 32s ago
 Docs: man:xrdp(8)
 man:xrdp.ini(5)
 Process: 759 ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS (code=exited, status=0/SUCCESS)
 Process: 730 ExecStartPre=/bin/sh /usr/share/xrdp/socksetup (code=exited, status=0/SUCCESS)
 Main PID: 949 (xrdp)
 CGroup: /system.slice/хrdp.service
 └─949 /usr/sbin/хrdp

май 23 15:05:31 хrdp systemd[1]: PID file /run/xrdp/xrdp.pid not readable (yet?) after start.
май 23 15:05:32 хrdp systemd[1]: Started xrdp daemon.
май 23 15:05:33 хrdp xrdp[949]: (949)(140156439295744)[INFO ] starting хrdp with pid 949
май 23 15:05:45 хrdp xrdp[949]: (949)(140156439295744)[INFO ] listening to port 3389 on 0.0.0.0

Просмотр активных пользователей XRDP

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

ps aux | grep xrdp | grep xorg
= вывод команды =
local      694  3.7  1.9 571540 76992 ?        Sl   22:47   0:29 /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log

Вот мы видим что подключен только один пользователь с логином local и PID 694.

Просто снять этот процесс не достаточно, чтобы полностью завершить работу пользователя на сервере. Выведем список всех процессов сервиса XRDP:

ps aux | grep xrdp
= вывод команды =
root       447  0.0  0.0  13860  3640 ?        S    22:45   0:00 /usr/sbin/xrdp-sesman
xrdp       471  0.0  0.0  12248  2044 ?        S    22:45   0:00 /usr/sbin/xrdp
root       692  0.0  0.0  13616  2300 ?        S    22:47   0:00 /usr/sbin/xrdp-sesman
local      694  3.8  1.9 571540 76992 ?        Sl   22:47   0:36 /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
local      697  0.0  0.0  99512  3412 ?        Sl   22:47   0:00 /usr/sbin/xrdp-chansrv
xrdp       903  4.1  0.6  40076 28176 ?        S    22:47   0:37 /usr/sbin/xrdp
root       982  0.0  0.0   6224   828 pts/0    S+   23:02   0:00 grep xrdp

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

pkill -9 -u local

Ротация логов xrdp

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

Откроем файл и добавим необходимые логи:

mcedit /etc/logrotate.d/rsyslog
=вывод команды с необходимыми дополнениями =
/var/log/syslog
{
 rotate 7
 daily
 missingok
 notifempty
 delaycompress
 compress
 postrotate
 invoke-rc.d rsyslog rotate > /dev/null
 endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
/var/log/хrdp-sesman.log
/var/log/хrdp.log
{
 rotate 4
 weekly
 missingok
 notifempty
 compress
 delaycompress
 sharedscripts
 postrotate
 invoke-rc.d rsyslog rotate > /dev/null
 endscript
}

Результат

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

Вся эта статья была лишь прелюдия для того чтобы рассказать как можно используя Linux настроить легально и надежно стабильную работу сервера  «1С:Предприятие 8.3 на Linux» работающего с файловой базой. Минимальные вложения и максимальная производительность.

Понравилась статья? Поделитесь ей с друзьями!
Пожалуйста, оставляйте свои комментарии

Читая их я получаю информацию которая позволяет мне улучшить качество написания статей. Кроме того, оставляя комментарии вы помогаете сайту получить более высокий рейтинг у поисковых систем. Давайте общаться.

125 комментариев для статьи “XRDP терминальный сервер Linux

  1. В какой-то момент перестало подключаться по RDP — высвечивается чёрный экран, а через несколько секунд и клику мышки по любому месту высвечивается сообщение, что «О, нет! Что-то пошло не так. Произошла ошибка, и системе не удалось восстановиться. Нужно завершить сеанс в войти снова». Само собой, что ничего не помогает, зайти через RDP не получается (так зайти можно). В логах нет ничего криминального, никаких ошибок, которые могли бы быть связанными с этим. Пытался переустановить XRDP — увы, не помогло… Первое время работало, я связываю с обновлениями Debiana, но какими именно — увы… И поиск в сети пока не помог…

    1. Попробуйте в клиенте сразу указать и логин и пароль. Могут быть проблемы как на сервере так и на клиенте.

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

        1. На данный момент использую XRDP на Astra Linux и там пока проблем при обновлениях не замечал. В Debian тоже ловил проблемы при обновлениях 🙁

  2. Добрый день. Время от времени начинает возникать проблема:
    Все пользователи работают только через RDP.
    У некоторых иногда появляется проблема с доступом к подключаемой локальной папке (FuseMountName=Mount_FOLDER)
    При попытке открыть папку появляется сообщение:
    Не удалось открыть каталог «User123».
    Ошибка при получении информации о файле
    «/home/DOMAIN.CORP/ User123/Mount_FOLDER»:
    Конечная точка передачи не подсоединена.

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

    Ни кто не сталкивался с такой проблемой ?

  3. При использовании xRDP возникла следующая проблема:

    Пользователь начал работать на компьютере локально, открыл нужные программы, документы. Через некоторое время пользователь подключился к данному компьютеру удаленно используя RDP. Пользователь не видит свои открытые ранее программы и документы. Пользователь видит новый рабочий стол. Но пользователю нужно продолжить работу с программами и документами открытыми ранее локально. Как это можно исправить?

    Такая же ошибка и в обратную сторону.
    Пользователь присоединился к своему ПК удаленно по RDP и открыл нужные программы, документы. Через некоторое время пользователь продолжил работать локально на компьютере, но не видит свои открытые ранее программы и документы, которые пользователь открыл ранее удаленно. Пользователь видит новый рабочий стол. Но пользователю нужно продолжить работу с программами и документами открытыми ранее удаленно. Как это можно исправить?

    1. Сомневаюсь, что такое можно реализовать. Тут скорее выручит только что ни будь типа AnyDesk или аналоги.
      RDP сессия в Debian запускается не зависимо от рабочего окружения локальных пользователей. Т.е. или всегда работайте в RDP (без локальных подключений), или используйте софт для удаленного управления локальной сессией.

  4. Народ, почему никто не пишет о том, что эта реализация дико потребляет трафик, о том, что тупо не работает сжатие трафика?
    При коннекте с Win на Win по RDP работает нормально и сжатие и трафик в пределах, а при коннекте с Win на Linux трафик возрастает в РАЗЫ.
    Для примера трафик за неделю:
    — по винде: 7Гб
    — по линуху — 105Гб
    Сжатия нет вообще, канал по линух грузится в среднем на 30Мбит, в то время как по винде ~1Мбит!

      1. В том и дело, что условия одинаковые: свободный канал (резервный провайдер), трафик смотрю онлайн в консоли PFSense. При подключении к линуху открываю браузер, лезу на хабр и начинаю листинг — трафик подскакивает до 20-30Мбит, открываю просто PDF и при его листинге трафик ~ 3Мбит. При аналогичном сценарии на Windows трафик не более 1Мбит в среднем.
        Это капец какой-то…я уже все перепробовал, и конфиги крутил и ставил X2GO и XRDP+VNC и NOMACHINE — все одно…Походу при трансляции стола XORG не жмется вообще никак.

        1. Где смотрите в консоли Pfsense можно поподробней? У меня всего скорость канала 20M и проблем со скоростью не замечал. Если смотреть на закладе «Статус —> График трафика» пропускная способность машины с xrdp не более 1M.

          1. Именно там и смотрю и при браузинге скорость скачет вплоть до 30Мбит, причем именно с Linux.

          2. Параметры. Подключаюсь с Linux (Gentoo). Одна Linux CentOS 7 XRDP (настроена по этой статье) вторая Windows 10 RDP. Открываю в Pfsense «Статус —> График трафика».
            Открываю aliexpress и гуляю по ресурсу
            Linux — пиковая пропускная способность один раз подпрыгнула до 18М в основном показывает до 2М
            W10 — как ни старался но выше чем 2M пиковая пропускная способность не поднялась.
            Действительно трафика кушает больше. Надо разбираться если кто разберется дайте знать.

    1. Посмотрел сейчас у себя, действительно, линуксовая RDP сессия потребляет на много больше трафика.
      Для сравнения запустил 2 сессии, винда и линукс, в обеих одна вкладка фаерфокса с одинаковым видео на ютубе.
      линукс — 20Мб/с
      винда — 2Мб/с
      При этом линуксовая сессия в свернутом и развернутом состоянии одинаковый трафик потребляет, виндовая при сворачивании снижает трафик до 600Кб/с.
      Замер делал программой NetLimiter на клиентской машине

  5. Со звуком все хорошо, но появилась следующая задачка 🙂
    В браузере сайты листаются не особо шустро, с небольшим торможением. Пробовал Chromium и Firefox (68 esr в debian 10.5).
    Видео в ютубе тоже не очень хорошо показывает, некоторые ролики прям гладко, как на локальной машине, а некоторые слайд шоу. Звук при этом не тормозит, не отстает, не заикается. Разрешение пробовал разное, чем меньше — тем плавнее.
    В плане железа на сервере все хорошо, проц и память свободные, сеть гигабит (cisco 3560g).
    Перерыл кучу форумов, и понял что xorg не успевает отрисовывать видео поток (при этом он самый быстрый на данный момент, остальные еще хуже … x2go дает примерно такой же результат).
    Но видимо я плохо ищу, и не могу ни где найти описание тонких настроек xorg, касаемо отрисовки изображения. Может там можно где нить, что нить подкрутить ? ослабить шифрование … расширить канал .. поток …

          1. А не подскажите, какой объем трафика потребляет, после применения настроек? А вы не дополните статью? Был бы очень признателен. Спасибо

          2. Постараюсь в течении недели дополнить. Теоретически параметры реально должны помочь, но практика это совсем другое.

  6. Добрый день. Хорошая статья, все легко получилось настроить 🙂
    Вы не разбирались с пробросом звука ?
    У нас RDP, единственный допустимый вариант выхода в интернет, скучно без звука 🙂
    Читал разные статьи по этому поводу, но они все очень старые, как правило описаны на примере убунту 10 .. 12 .. 14, боюсь поломать все. К тому же в Debian 10.5 по умолчанию уже есть pulseaudio 12 , а все статьи рассказывают о старых версиях, в которых нужно все собирать в ручную.

    1. Даже не пробовал пробрасывать звук. Как попробую отпишусь тут. В случае если Вы найдете решение пожалуйста поделитесь.

      1. Нашел решение, но не совсем хорошее на мой взгляд. Настроить смог только с помощью готового скрипта, написанного для Ubuntu 20.04. Что он там делает, что я сам не смог вводя команды в терминале, не понимаю.

        Содержимое скрипта:

        #!/bin/bash
        
        #---------------------------------------------------#
        # Function 4 - Enable Sound Redirection .... 
        #---------------------------------------------------#
        
        {
        echo
        /bin/echo -e "\e[1;33m   !---------------------------------------------!\e[0m"
        /bin/echo -e "\e[1;33m   !   Enabling Sound Redirection...             !\e[0m"
        /bin/echo -e "\e[1;33m   !---------------------------------------------!\e[0m"
        echo
        
        # Step 1 - Enable Source Code Repository
        sudo apt-add-repository -s 'deb http://be.archive.ubuntu.com/ubuntu/ '$codename' main restricted'
        sudo apt-add-repository -s 'deb http://be.archive.ubuntu.com/ubuntu/ '$codename' restricted universe main multiverse'
        sudo apt-add-repository -s 'deb http://be.archive.ubuntu.com/ubuntu/ '$codename'-updates restricted universe main multiverse'
        sudo apt-add-repository -s 'deb http://be.archive.ubuntu.com/ubuntu/ '$codename'-backports main restricted universe multiverse'
        sudo apt-add-repository -s 'deb http://be.archive.ubuntu.com/ubuntu/ '$codename'-security main restricted universe main multiverse'
        sudo apt-get update
        
        # Step 2 - Install Some PreReqs
        sudo apt-get install git libpulse-dev autoconf m4 intltool build-essential dpkg-dev libtool libsndfile-dev libcap-dev -y libjson-c-dev
        sudo apt build-dep pulseaudio -y
        
        # Step 3 -  Download pulseaudio source in /tmp directory - Do not forget to enable source repositories
        cd /tmp
        sudo apt source pulseaudio
        
        # Step 4 - Compile
        pulsever=$(pulseaudio --version | awk '{print $2}')
        cd /tmp/pulseaudio-$pulsever
        sudo ./configure
        
        # step 5 - Create xrdp sound modules
        sudo git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
        cd pulseaudio-module-xrdp
        sudo ./bootstrap 
        sudo ./configure PULSE_DIR="/tmp/pulseaudio-$pulsever"
        sudo make
        
        #Step 6 copy files to correct location (as defined in /etc/xrdp/pulse/default.pa)
        cd /tmp/pulseaudio-$pulsever/pulseaudio-module-xrdp/src/.libs
        sudo install -t "/var/lib/xrdp-pulseaudio-installer" -D -m 644 *.so
        sudo install -t "/usr/lib/pulse-$pulsever/modules" -D -m 644 *.so
        echo
        
        }
  7. Алексей, спасибо за отличную статью!
    Помогите решить проблему: при копировании с локальной директорий на терминальный сервер, процесс «приостанавливается» если не двигать курсором мыши или не вводить данные с клавиатуры. «Принтеры» забирал/додавал — сути не меняет
    Подключение через Remmina c разных систем.
    Терминал — Ubuntu 18.04

    Заранее благодарен!

    1. Пожалуйста. Тема с копированием файлов действительно актуальна и я так и не понял в чем фишка, так как глюки вылазят непредвиденно. В итоге намаявшись я или расшвыриваю папку по сети на терминальном сервере или через облачный ресурс NextCloud делаю.

  8. А как отключить всё или пркатически всё в меню по правой кнопке мыши на рабочем столе?

  9. Включил режим киоск, но для себя и другого человека надо чтоб панель была палноценная. Ка кэто можно сделать

    1. Добавляете всех кто может редактировать панель в файл /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml по типу: unlocked="local".

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

        1. В .xml надо так писать: locked="*" unlocked="local" unlocked="test" unlocked="@wheel"
          Запретили всем кроме пользователей local, test и группы wheel
          В kioskrc надо так писать : Shutdown=%wheel,local,test

  10. KillDisconnected=true
    Данный параметр ВКЛЮЧАЕТ выкидывание с сервера (If set to 1, true or yes, every session will be killed within 60 seconds after the user disconnects.). Чтобы не кикало должно быть false! Имейте ввиду!

    1. Спасибо за замечание. Действительно теперь этот параметр работает как надо. В своё время, когда настраивал на Debian 8, параметр был перепутан. Двое суток потратил для того чтобы вычислить эту ошибку.

  11. Доброго времени суток.
    Настроил xrdp как описано в статье. Debian 10 оболочка cinnamon. Но есть проблема. Если есть запущен сеанс пользователя, то при попытке подключиться по rdp после авторизации вылазит ошибка «Could not acquire name on session bus», и закрыв ошибку закрывает сессию. Если в текущей момент сеанс пользователя не запущен все подключается нормально.
    Как избавиться от ошибки?
    Я так понимаю он не хочет выкидывать залоснившегося пользователя из сеанса.

    1. Посмотрите повнимательней в сторону настроек в vim /etc/xrdp/sesman.ini. Возможно надо искать проблемму в Сinnamon. Именно потому что в XFCE меньше всего глюков её и использую.

  12. Что то ни как настроить так и не могу
    через ремvину, vinagre и MSTSC даже окна ввода логина пароля нет, а через freerdp хоть окно ввода логина пароля появляется, но авторизация не проходит ни доменных ни локальных пользователей
    https://yadi.sk/d/p5EpL7AeQHCZtw

    В логах вот
    tail /var/log/auth.log
    Jan 10 00:57:47 srv-dc sudo: root : TTY=pts/4 ; PWD=/root ; USER=root ; COMMAND=/usr/bin/tail /var/log/хrdp-sesman.log
    Jan 10 00:57:47 srv-dc sudo: pam_unix(sudo:session): session opened for user root by canep(uid=0)
    Jan 10 00:57:47 srv-dc sudo: pam_unix(sudo:session): session closed for user root
    Jan 10 01:00:01 srv-dc CRON[5135]: pam_unix(cron:session): session opened for user root by (uid=0)
    Jan 10 01:00:02 srv-dc CRON[5135]: pam_unix(cron:session): session closed for user root
    Jan 10 01:00:41 srv-dc xrdp-sesman[4809]: pam_winbind(xrdp-sesman:auth): getting password (0x00000040)
    Jan 10 01:00:41 srv-dc xrdp-sesman[4809]: pam_winbind(xrdp-sesman:auth): request wbcLogonUser failed: WBC_ERR_AUTH_ERROR, PAM error: PAM_USER_UNKNOWN (10), NTSTATUS: NT_STATUS_NO_SUCH_USER, Error message was: The specified account does not exist.
    Jan 10 01:01:11 srv-dc xrdp-sesman[4809]: pam_krb5(xrdp-sesman:auth): authentication failure; logname=canep uid=0 euid=0 tty=xrdp-sesman ruser= rhost=
    Jan 10 01:01:11 srv-dc xrdp-sesman[4809]: pam_winbind(xrdp-sesman:auth): getting password (0x00000040)
    Jan 10 01:01:11 srv-dc xrdp-sesman[4809]: pam_winbind(xrdp-sesman:auth): request wbcLogonUser failed: WBC_ERR_AUTH_ERROR, PAM error: PAM_USER_UNKNOWN (10), NTSTATUS: NT_STATUS_NO_SUCH_USER, Error message was: The specified account does not exist.

    1. Наверное надо сообщить людям на чем поднят XRDP?
      Вы пытаетесь подключиться рутом?
      Попытка удаленного подключения производится при уже имеющемся локальном подключении этого же пользователя?

      1. Debian GNU/Linux 10 (buster)
        залогиниться пытаюсь как и писал ранее доменным и локальным пользователем(как под простым так и по рутом, руту в конфигах доступ пока оставил)
        локальные пользователи подключены по ssh

        1. Ну вот попробовал снова поднять xrdp на Debian 10.2.0 x64 c MATE на борту.
          До этого «игрался» с LXDE, LXQT, XFCE и т.д. — XRDP там работает, но не мое: LXDE очень спартанский вариант, LXQT сыроват еще, XFCE затяжелел, а MATE, на мой взгляд, сбалансирована и вылизана. У GNOME3 с XRDP есть проблемы. В этих средах штатный, из репозитория, XRDP v.0.9.9-1 устанавливается и отрабатывает нормально. Сегодня, ради интереса, на чистую систему с MATE, установил из исходников последние XRDP и XORGXRDP (v.0.9.12-1/0.2.12-1) — тоже без проблем. Поэтому считаю что вам надо посмотреть конфигурационные файлы. В работе не использую доменную структуру, поэтому здесь я вам не подсказчик.
          По первому скрину — была такая ошибка, но не помню как решил (кстати у FreeRDP RC есть проблемы с авторизацией), второй — проблемы с сетью, третий — в xrdp.ini, вероятно, что то не так с координатами элементов. Кроме того, что у вас в security_layer? Значение negotiate может не работать, а значение rdp — может.
          Посмотрите мой перманентный мануал и конфиги — может и поможет. Если где-то есть неточности, то не обессудьте 🙂
          https://cloud.mail.ru/public/mKLD/2kzxLVyog

  13. Доброго дня!
    Поднял терминальный сервер на Debian 10.1.0 x64 c MATE (1.20) в качестве DE. На сервере использовались решения как от RX@Etersoft, так и XRDP (0.9.9-1). Все работает замечательно, но столкнулся со следующими проблемами. В терминальной сессии (и NX и XRDP), через меню, в разделе «Система» отсутствуют пункты «Выключить» и «Перегрузить..» и есть только «Завершить сеанс пользователя..». Ну это как бы не главная проблема — есть командная строка для этого. Обнаружилось, что я не могу вручную настроить принтеры (без использования WEB-интерфейса) — «Система»-«Администрирование»-«Настройки принтера». Ни добавить, ни удалить. Только просмотр очереди печати. Сама печать работает. Хотя в Debian 9.x (тот же MATE 1.20) такого не было. И вот возникли вопросы — это новые фичи от 10-ки? AppArmor, DBus, PolicyKit? Понижаются привилегии пользователя при терминальном подключении? И что интересно, так при локальном подключении все эти пункты и возможности присутствуют. Я понимаю что у вас в статье XFCE, и ограничения пользователям через PolicyKit делаете, но это похоже на системное поведение никак не связанное с DE. Или я ошибаюсь? Не сталкивались с этим?

    1. Отвечаю на свой же вопрос.
      Причина такого поведения в последних патчах на MATE, в которых система определяет способ входа пользователя в систему.
      Эта «штука» называется RDA — Remote Desktop Awareness (RDA). Подробнее здесь — https://planet.mate-desktop.org.

  14. Доброго времени суток! Все отлично заработало, спасибо. НО!
    Вопрос про ограничение пользователем выключения, настроек.
    Вначале все взлетело, но, после того как появилась необходимость поменять пользователя которому разрешено выключать, перегружать и настраивать, настройки не применились.
    Т.Е. в конфигах изначально был указан пользователь, которому разрешено выполнять перезагрузку. Например, admin
    Все работало.
    Потом поменяли в конфигах пользователя на vasya.
    reboot
    И все осталось на месте — admin может, Vasya — нет ))))
    Направьте на путь истинный. спасибо!

    1. Проверяйте настройки еще раз. Проверил по статье добавление пользователя, поигрался с правами. Всё работает.

  15. DISTRIB_DESCRIPTION=»DebianEdu/Skolelinux»
    Оболочка LXDE
    Проблем с раскладкой больше нет, лишь необходимо в ручную добавить язык и убрать галочку сохранять настройки по умолчанию.

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

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

    1. Проблем с раскладной действительно больше нет и это радует.
      Настройка политики безопасности тема очень обширная и каждый настраивает по своему. В статье есть информация как запретить пользователю выключать сервер, блокировка настроек рабочего окружения XFCE. Мне этого вполне достаточно.
      Принтер можно и так, но по мне лучше давать доступ по VPN и тогда можно все настраивать гораздо проще, так же это серьезно обезопасит систему.

      1. VPN это да! Но для этого нужно держать VPN сервер, а также настраивать и поправлять если какой нибудь антивирус типа Касперский удалит vpn адаптер в случае OpenVPN. Единственная проблема с раскладкой осталась в окне ввода логина и пароля, при авторизации в RDP там если с Русской раскладкой подключился то поменять нельзя, с начало меняем потом подключаемся. Решить конечно можно и готовым RDP файлом с заранее веденным логином и паролем, но это опять костыль.

        1. Это даже не костыль а самодельная уязвимость высшего уровня 🙂 Согласен что смена раскладки на английскую в Windows это пока самая большая проблема при внедрении 🙂 Ну а VPN …. Пока не поймают через RDP бяку…. бесполезно рассказывать руководству про безопасность.

  16. Здравствуйте.
    Ставлю в контейнер Proxmox, по этой инструкции.
    Захожу по RDP и попадаю в окно терминала, в котором можно запустить mc, он появляется в верхней левой четверти экрана.
    Система Win10, что это может быть?

    1. Попадаете туда после ввода данных авторизации? Какое выбирали рабочее окружение? ХFCE?

      1. да, после авторизации. Рабочее окружение не выбирал, не увидел это в инструкции

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

        1. Думаю надо, но как сделать правильно не подскажу. Очень мало работаю с доменами на Windows.

          1. Управление доменом сейчас уже передано этому сервер

          2. Нет, не работает. но теперь не знаю, переставил xrpd и локальный пользователь перестал подключаться

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

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

    1. Вот прошлая статья работала. А данная статья работает, но не совсем. Пакет dpkg-reconfigure в Debian 10 Buster выпилили. Нет его. Но сервер заработал «из коробки», без настройки. Но возникает вопрос к статье, как работал dpkg-reconfigure, если его нет?! Дальше ещё «не ковырял».

      1. Если при установке выбрать параметры установки XFCE, SSH сервер и стандартные утилиты то пакет dpkg-reconfigure в Debian 10 Buster присутствует. Действительно, пакет можно не настраивать и по умолчанию будет все работать.

        1. Спасибо! Попробую XFCE :). Я с LXDE устанавливал. При установке выбирал стандартные системные утилиты, LXDE, SSH server, webserver, printserver, debian desktop environment.

  18. Здравствуйте! Есть проблема при обновлении xrdp на Debian GNU/Linux 8 (jessie), ошибка похожа на ту что была у вас при установки xrdp на debian 8. Конкретней
    при обновлении

    тут -> https://pastebin.com/MNhaftgM

    Далее смотрю журнал journalctl -xn

    тут -> https://pastebin.com/G2kxgbzW

    Ну понятно не удается запустить ему «не удалось запустить процесс /usr/sbin/xrdp-sesman.»
    иду сюда /usr/sbin/ пытаюсь посмотреть, что в файле xrdp-sesman (там иероглифы, тобишь у меня посмотреть не получится, запускаю ./xrdp-sesman

    он мне в ответ ошибку
    g_mk_temp_dir: /var/run/xrdp/sockdir does not exist

    создаю директорию » /var/run/xrdp/sockdir» и запускаю снова, и что получается он при запуске удаляет эту директорию и пытается к ней обратиться, как выяснить как он ее удаляет и где это исправить?

    И да ваш вариант с добавлением параметра делал не помогло.

    1. Не удалось решить? Попробуйте удалить вначале xrdp перед обновлением. Потом поставите заново.

  19. Решение проблемы с раскладкой клавиатуры мне на почту прислал Михаил с сайта admin1c.ru 
    Добавил информацию в статью. Большое спасибо Михаилу!

  20. Спасибо за статью. На debian 9 нормально работает. Только остается вопрос с пробросом папок, дисков: из Линукса через Remmina нормально работает, из ХР тоже, а вот из Windows 7 не работает. Кто-нибудь сталкивался? Как победить?

    1. Кому интересно сам нашел ответ. Экспериментально установлено, что для windows 7 и windows 10 в настройках подключения в локальных ресурсах надо отключать галочку «Принтеры», тогда диски нормально пробрасываются. У кого есть другой способ поделитесь плиз.

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

    1. Какие то действия делайте не правильно. Вчера статья в некоторых местах была подправлена так как устанавливал сервер в продакшен. Что то мне кажется вы на centos делайте 🙂 там он зачем то просит пароль администратора.

      1. debian 9, мелькает на секунду окно приветствия дебиана и вылетает это если под рутом логинится, под пользователем черный экран с линуксовым курсором, подключаюсь с win10 стандартным rdp клиентом

        1. dpkg-reconfigure xserver-xorg-legacy — это делали? При подключении под пользователем никаких паролей администратора не должен спрашивать. XFCE используйте?

          1. Поставте XFCE и посмотрите что в логах xrdp.

          2. Вот с ним то у меня и не получалось настроить на CentOS. В Debian c ним не пробовал. XFCE хорош тем что все можно заблокировать и получается не убиваемая система для пользователя.

          3. Просьба. Если узнаете как убрать эти требования дайте тут знать, пожалуйста.

  22. Когда к серверу терминалов подключаются более 50 пользователей, то с подключениями к X-дисплеями всегда происходит бардак. Можно ли сделать так, чтобы пользователь user1 подключился к дисплею с номером 11, а user50 — к дисплею с номером 60? Иногда бывают случаи, когда пользователь user1 подключился к рабочему столу user2, работают одновременно за одним и тем же столом, чем мешают друг другу. P.S. Использую AltLinux 6, сейчас перехожу на BaseAlt (AltLinux 8).

    1. А какие параметры в /etc/xrdp/sesman.ini MaxSessions= и KillDisconnected=true? Это всё крутится на AltLinux? Тоже пытался работать с этим продуктом, но ни политика их общения с пользователями ни качество дистрибутива меня не устроили. Да и нет их больше… они продались BaseALT и это уже совсем другая песня не имеющая отношения к истинному свободному программному обеспечению 🙁

        1. KillDisconnected=0 — странно там либо false либо true параметр как мне кажется. Параметр true говорит что если пользователь просто закрыл окно то сессия сохраняется и он попадает туда же при повторном подключении. Очень удобно когда с работы убежал — пришёл домой — подключился и попал на свой рабочий стол на котором работал. Параметр 0 вероятно каждый раз создаёт новую сессию а так как пользователи обычно закрывать просто окно а не завершают сеанс пользователя на термодинамике сессии и плодятся….. У вас сколько пользователей? 200?

          1. Пользователей 60. MaxSessions=200 — это я так выставил во избежание возможных проблем с сессиями. И, как мне кажется, не в этом дело.
            Насчет сессий — у нас каждый раз подключаются к своему рабочему столу даже если просто закрыл терминал, а не завершил сессию. Но бывают иногда случаи, когда подключаются к чужому рабочему столу (попадают на чужую сессию).
            KillDisconnected=0 — это значение было выставлено не мной — так стояло изначально в старом xrdp 6.

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

          3. Ничего не обновлял — ставлю отдельный сервер с новой версией, пытаюсь довести до ума, исключить любые глюки… Старая версия пока функционирует в боевом режиме на старом сервере.

          4. Проблемы на новой версии или на старой?

          5. Проблемы есть в обеих версиях. В новой версии пока в тестовом режиме работают 2 человека, пока что изредка встречаю только одну проблему — бывает, ввели правильный логин и пароль, а в ответ — при подключении к дисплею с номером почему-то «0» — login incorrect. Пришлось решить проблему перезагрузкой сервиса service xrdp restart, после чего нормально логинимся.

          6. Аналогично показывает дисплей «0» — login incorrect, но при наборе правильного пароля пускает без перезагрузки xrdp. У меня Debian 9 и xrdp -v показывает Version 0.9.1. Не может быть чтобы при одинаковых условиях машина вела себя по разному.

          7. Представьте, есть «тонкий клиент» и сервер. На «тонком клиенте» раскладка по умолчанию — EN (в окне подключения к терминалу нет возможности изменить раскладку, хотя в версии 0.6 всегда EN вне зависимости от того, какая раскладка у клиента). После Login incorrect проверил в углу раскладку — стоит EN, трижды ввел один и тот же пароль, не пускает. И даже переключать пробовал — результатов нет. После перезагрузки сервиса на сервере без дополнительных манипуляций на стороне клиента логинился без проблем. Вот такие дела…

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

  23. Не возникает ли у вас проблем, если отключиться от терминального сервера и подключиться вновь, то соединение не проходит? Спустя некоторое время проходит само либо с помощью pkill.

    1. Тут /etc/xrdp/sesman.ini стоят параметры
      # Выставляем количество пользователей для одновременной работе на сервере
      MaxSessions=3
      # Не разрываем сеанс при отключении пользователя чтобы потом попасть в туже сессию
      KillDisconnected=true
      При них и закрываю сеанс и не закрываю… проблем с подключение нет

        1. Может ставили как то по другому? Попробовал я обновить до Debian 9 обновление нормально проходит но вот xrdp не хочет работать…. И на чистую пробовал Debian 9 ставить и пакет вроде такой же но не работает и всё тут…

          1. Компилировал актуальную версию с github, сейчас запустил на виртуалке точно такую же систему, все работает ок, похоже надо перезапустить xrdp.

  24. Не сталкивались с такой проблемой: Примерно раз в неделю один из пользователей не может подключиться к удаленному рабочему столу (остальные при этом подключаются без проблем). Вот лог из syslog проблемного пользователя:

    Sep 7 08:24:30 x-terminal xrdp[5424]: (5424)(140366508189440)[DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0.1 port 3350
    Sep 7 08:24:30 x-terminal xrdp-sesman[19393]: (19393)(140159088006912)[INFO ] A connection received from 127.0.0.1 port 44598
    Sep 7 08:24:31 x-terminal xrdp[5424]: (5424)(140366508189440)[INFO ] xrdp_wm_log_msg: sesman connect ok
    Sep 7 08:24:31 x-terminal xrdp[5424]: (5424)(140366508189440)[DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait…
    Sep 7 08:24:31 x-terminal xrdp[5424]: (5424)(140366508189440)[DEBUG] return value from xrdp_mm_connect 0
    Sep 7 08:24:31 x-terminal xrdp-sesman[19393]: (19393)(140159088006912)[INFO ] ++ created session (access granted): username spu, ip 192.168.0.
    27:37756 — socket: 12
    Sep 7 08:24:31 x-terminal xrdp-sesman[19393]: (19393)(140159088006912)[INFO ] starting Xorg session…
    Sep 7 08:24:31 x-terminal xrdp-sesman[19393]: (19393)(140159088006912)[DEBUG] Closed socket 9 (AF_INET 0.0.0.0:5911)

    Вот лог из xrdplog проблемного пользователя:

    [20170907-08:30:21] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0.1 port 3350
    [20170907-08:30:22] [INFO ] xrdp_wm_log_msg: sesman connect ok
    [20170907-08:30:22] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait…
    [20170907-08:30:22] [DEBUG] return value from xrdp_mm_connect 0
    [20170907-08:30:25] [INFO ] xrdp_wm_log_msg: login failed for display 0
    [20170907-08:30:25] [DEBUG] xrdp_mm_module_cleanup

    Единственное рабочее решение данной проблемы это перезагрузка сервера.

    1. Пользователь один и тот же не может войти? Комп с которого входит один и тот же?

      1. Нашел решение проблемы на github.com По умолчанию в настройках sesman.ini стоит параметр MaxSession=50 это значит, что кол-во доступных сокетов для подключения равняется 50-ти, а теперь мякотка: при отключении пользователя количество свободных сокетов не увеличивается и со временем (у меня раз в неделю) кол-во подключений достигает 50. Данный скрипт (настроил запуск каждый день в cron) производит отчистку сокетов от пользователей «зомби»:

        #!/bin/sh

        SOCKDIR=/tmp/.xrdp
        SESSIONS=$((cd ${SOCKDIR} ; ls -1 xrdp_*) | sed -e ‘s|[^0-9]||g’ | sort -u)
        for i in ${SESSIONS}
        do
        if [ ! -S ${SOCKDIR}/xrdp_display_${i} ]
        then
        (
        cd ${SOCKDIR}
        rm -f xrdp_chansrv_audio_in_socket_${i}
        xrdp_chansrv_audio_out_socket_${i}
        xrdp_chansrv_socket_${i}
        xrdpapi_${i}
        )
        fi
        done

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

        1. Спасибо что отписал решение. С вашего позволения подправлю статью описав этот нюанс. Кстати а параметр такой стоит: KillDisconnected=true ?

          1. Попробуйте поставить true и проверить. У меня стоит ограничение в 3 сессии и не перезагружаю по месяцу. Проблем с авторизацией не возникало.

          2. Пока посмотрю как отрабатывает скрипт, если будут проблемы обязательно попробую ваш способ. Странно, что о нем разработчик xrdp не знает. А систему обновляете? После каждого обновления системы приходится компилировать и настраивать xrdp заново, жуть не удобно.

          3. Обновляю. Ставлю с тестового репозитория jessie-backports и проблем с компилированием не знаю 🙂

          4. Но при этом у вас не самая последняя версия xrdp?

        2. Скрипт переделал, так как он отрабатывал с ошибкой: Syntax error: Missing ‘))’
          Вот рабочий скрипт:

          #!/bin/bash

          SOCKDIR=/tmp/.xrdp
          SESSIONS=`ls -l «${SOCKDIR}»/xrdp_* | sed -e ‘s|[^0-9]||g’ | sort -u`
          for i in ${SESSIONS}
          do
          if [ ! -S ${SOCKDIR}/xrdp_display_${i} ]
          then
          cd ${SOCKDIR}
          rm -f xrdp_chansrv_audio_in_socket_${i}
          xrdp_chansrv_audio_out_socket_${i}
          xrdp_chansrv_socket_${i}
          xrdpapi_${i}
          fi
          done

  25. Какой командой можно завершить удаленный сеанс всем пользователям кроме администраторов (это необходимо для бэкапа домашней директории)?

    1. Отвечу сам на свой вопрос, необходимо перечислить пользователей через запятую, пример: pkill -9 -u user1,user2

  26. Установил актуальную версию xrdp 0.9.3.1 и xorg 0.2.3, но проблема с раскладкой клавиатуры так и осталась, причем проблема проявляется постоянно после установки rdp соединения. Выручает ваш совет с ярлыком в панеле задач, но так хотелось бы устранить этот баг.

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

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