Xrdp — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(Доступ доменных пользователей)
 
(не показано 14 промежуточных версий 5 участников)
Строка 1: Строка 1:
= Первоначальная настройка сервера XRDP =
+
= Первоначальная настройка сервера XRDP на сервере =
  
На узле '''xrdpserver''':
 
 
* Установить пакет ''xrdp''.
 
* Установить пакет ''xrdp''.
 
   apt-get install xrdp
 
   apt-get install xrdp
Строка 8: Строка 7:
 
   systemctl start xrdp xrdp-sesman
 
   systemctl start xrdp xrdp-sesman
  
= Права доступа на сервере =
+
Права доступа пользователя:
 
* Для доступа к терминальному сеансу — включить в группу '''tsusers'''
 
* Для доступа к терминальному сеансу — включить в группу '''tsusers'''
 
* Для проброса папки — включить в группу '''fuse'''
 
* Для проброса папки — включить в группу '''fuse'''
Строка 22: Строка 21:
  
 
Если пользователь или пароль не указаны, появится окно входа:
 
Если пользователь или пароль не указаны, появится окно входа:
 +
 +
= Дополнительно =
 +
* Для использования сервером установленной графической оболочки MATE: '''$ echo mate-session >~/.xsession'''
  
 
[[Изображение:Xrdp-login-screen.png]]
 
[[Изображение:Xrdp-login-screen.png]]
 +
 +
= Проброс звука =
 +
 +
Для прослушивания звука из терминального сеанса локально установите '''на терминальный сервер''' пакет {{pkg|pulseaudio-module-xrdp}}:
 +
 +
apt-get install pulseaudio-module-xrdp
 +
 +
При использовании в качестве клиента xfreerdp добавьте параметр {{path|/sound:sys:pulse}}
 +
 +
xfreerdp /v:10.4.4.17 /u:user /p:123 /sound:sys:pulse
 +
 +
= Доступ доменных пользователей =
 +
 +
В раздел домена в файле {{path|/etc/sssd/sssd.conf}} необходимо указать '''ad_gpo_map_service = +xrdp-sesman''':
 +
<source lang="ini">[domain/TEST.ALT]
 +
...
 +
ad_gpo_map_service = +xrdp-sesman
 +
...</source>
 +
 +
Иначе будет возникать ошибка:
 +
pam_acct_mgmt failed: Permission denied
 +
 +
== Локальные группы для доменных пользователей ==
 +
 +
Вариант с локальной группой для доменных пользователей не работает, поэтому для них работает отключение группы (или указание любой нелокальной, даже несуществующей):
 +
 +
В файле {{path|/etc/xrdp/sesman.ini}}
 +
TerminalServerUsers=
 +
 +
После исправления файла запустите
 +
systemctl restart xrdp-sesman
 +
 +
Журнал для sesman (сеансов пользователей) находится в файле {{path|/var/log/xrdp-sesman.log}}.
 +
 +
Данная ситуация возникла потому, что в больших доменах показ всех членов группы нагружает систему, поэтому в /etc/sssd/sssd.conf по умолчанию используется значение '''enumerate = false'''
 +
 +
Если в разделе домена в файле {{path|/etc/sssd/sssd.conf}} явно указать '''enumerate=true''':
 +
<source lang="ini">[domain/TEST.ALT]
 +
id_provider = ad
 +
auth_provider = ad
 +
chpass_provider = ad
 +
default_shell = /bin/bash
 +
fallback_homedir = /home/%d/%u
 +
debug_level = 0
 +
enumerate = true</source>
 +
 +
то в {{path|/etc/xrdp/sesman.ini}} можно указать 
 +
TerminalServerUsers=domain users
 +
 +
{{Note|Доменные группы под Линуксом видны в нижнем регистре.}}
 +
 +
Не забудьте перезапустить службы '''sssd''' и '''xrdp-sesman'''.
 +
 +
= Решение проблем =
 +
 +
== Проблемы соединения с мобильным rdp-клиентом ==
 +
 +
В некоторых мобильных rdp-клиентах, особенно предназначенных для работы на старых версиях Android, если выбрать режим "Воспроизведение звука на стороне клиента"(Или аналогичный) возникает ошибка соединения.
 +
 +
Решается запретом воспроизведения звука в настройках клиента или изменением в xrdp.ini в строке rdpsnd=true, значения true на false. При этом клиент лишается возможности воспроизводить звук, однако в остальном соединение работает.
 +
 +
== Проблема подключения с Windows XP ==
 +
 +
Для подключения рабочих станций с Windows XP необходимо в файле {{path|/etc/xrdp/xrdp.ini}} добавить поддержку протокола TLSv1.1:
 +
 +
ssl_protocols=TLSv1.1, TLSv1.2, TLSv1.3
 +
 +
Эта поддержка была исключена из конфигурации по умолчанию в версии 0.9.8 (https://github.com/neutrinolabs/xrdp/releases/tag/v0.9.8).
 +
 +
== Проблемы соединения с тонким клиентом Dell Wyse 3040 ==
 +
 +
Для подключения тонких клиентов Dell Wyse 3040 в {{path|/etc/xrdp/xrdp.ini}} необходимо выключить звуковую поддержку:
 +
 +
rdpsnd=false
  
 
[[Категория:Удалённый доступ]][[Категория:Терминальный сервер]]
 
[[Категория:Удалённый доступ]][[Категория:Терминальный сервер]]

Текущая версия на 13:23, 20 сентября 2019

Первоначальная настройка сервера XRDP на сервере[править]

  • Установить пакет xrdp.
 apt-get install xrdp
  • Включить сервисы:
 systemctl enable xrdp xrdp-sesman
 systemctl start xrdp xrdp-sesman

Права доступа пользователя:

  • Для доступа к терминальному сеансу — включить в группу tsusers
  • Для проброса папки — включить в группу fuse

Подключение[править]

Пример:

xfreerdp /drive:Epson,/home/cas/epson /v:10.4.129.129 /u:user /p:123

где:

  • Epson — название папки, которая будет показываться в каталоге thinclient_drives в домашней папке терминального пользователя, у локального пользователя пробрасывается папка /home/cas/epson;
  • 10.4.129.129 — адрес терминального сервера;
  • user — имя терминального пользователя;
  • 123 — пароль терминального пользователя.

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

Дополнительно[править]

  • Для использования сервером установленной графической оболочки MATE: $ echo mate-session >~/.xsession

Xrdp-login-screen.png

Проброс звука[править]

Для прослушивания звука из терминального сеанса локально установите на терминальный сервер пакет pulseaudio-module-xrdp:

apt-get install pulseaudio-module-xrdp

При использовании в качестве клиента xfreerdp добавьте параметр /sound:sys:pulse

xfreerdp /v:10.4.4.17 /u:user /p:123 /sound:sys:pulse

Доступ доменных пользователей[править]

В раздел домена в файле /etc/sssd/sssd.conf необходимо указать ad_gpo_map_service = +xrdp-sesman:

[domain/TEST.ALT]
...
ad_gpo_map_service = +xrdp-sesman
...

Иначе будет возникать ошибка:

pam_acct_mgmt failed: Permission denied

Локальные группы для доменных пользователей[править]

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

В файле /etc/xrdp/sesman.ini

TerminalServerUsers=

После исправления файла запустите

systemctl restart xrdp-sesman

Журнал для sesman (сеансов пользователей) находится в файле /var/log/xrdp-sesman.log.

Данная ситуация возникла потому, что в больших доменах показ всех членов группы нагружает систему, поэтому в /etc/sssd/sssd.conf по умолчанию используется значение enumerate = false

Если в разделе домена в файле /etc/sssd/sssd.conf явно указать enumerate=true:

[domain/TEST.ALT]
id_provider = ad
auth_provider = ad
chpass_provider = ad
default_shell = /bin/bash
fallback_homedir = /home/%d/%u
debug_level = 0
enumerate = true

то в /etc/xrdp/sesman.ini можно указать 

TerminalServerUsers=domain users
Примечание: Доменные группы под Линуксом видны в нижнем регистре.


Не забудьте перезапустить службы sssd и xrdp-sesman.

Решение проблем[править]

Проблемы соединения с мобильным rdp-клиентом[править]

В некоторых мобильных rdp-клиентах, особенно предназначенных для работы на старых версиях Android, если выбрать режим "Воспроизведение звука на стороне клиента"(Или аналогичный) возникает ошибка соединения.

Решается запретом воспроизведения звука в настройках клиента или изменением в xrdp.ini в строке rdpsnd=true, значения true на false. При этом клиент лишается возможности воспроизводить звук, однако в остальном соединение работает.

Проблема подключения с Windows XP[править]

Для подключения рабочих станций с Windows XP необходимо в файле /etc/xrdp/xrdp.ini добавить поддержку протокола TLSv1.1:

ssl_protocols=TLSv1.1, TLSv1.2, TLSv1.3

Эта поддержка была исключена из конфигурации по умолчанию в версии 0.9.8 (https://github.com/neutrinolabs/xrdp/releases/tag/v0.9.8).

Проблемы соединения с тонким клиентом Dell Wyse 3040[править]

Для подключения тонких клиентов Dell Wyse 3040 в /etc/xrdp/xrdp.ini необходимо выключить звуковую поддержку:

rdpsnd=false