Настройка xrdp-сервера
Установка и настройка сервера
Перед установкой и настройкой сервера необходимо предварительно перейти в сеанс пользователя root:
su -
Дальнейшие указанные действия должны выполняться с правами пользователя root или администратора системы, если не указано иное.
1. Установите сервер xrdp командой:
dnf install xrdp xorgxrdp pulseaudio-module-xrdp
2. Создайте пользователя test и установите ему пароль:
useradd -m test
passwd test
3. Создайте группу tsusers и добавьте пользователя в эту группу:
groupadd tsusers
usermod -aG tsusers test
4. Настройте предпочитаемую графическую оболочку по умолчанию:
для mate выполните:
sed -i '/PREFERRED=/d' /etc/sysconfig/desktop 2>/dev/null; echo 'PREFERRED="$(type -p mate-session)"' >> /etc/sysconfig/desktop
для cinnamon выполните:
sed -i '/PREFERRED=/d' /etc/sysconfig/desktop 2>/dev/null; echo 'PREFERRED="$(type -p cinnamon-session)"' >> /etc/sysconfig/desktop
5. Измените файл /etc/xrdp/sesman.ini следующим образом:
sed -i 's/param=Xorg/param=\/usr\/libexec\/Xorg/' /etc/xrdp/sesman.ini
6. Раскомментируйте тип сессии Xorg в /etc/xrdp/xrdp.ini:
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
7. Тип сессии Xvnc закомментируйте:
#[Xvnc]
#name=Xvnc
#lib=libvnc.so
#username=ask
#password=ask
#ip=127.0.0.1
#port=-1
8. Запустите сервер xrdp и добавьте его в автозапуск:
systemctl enable xrdp --now
9. Xrdp позволяет создавать новые сессии пользователей через запуск X-сервера, но не может подключаться к уже существующей сессии. Если сессия xrdp активна, то пользователь не сможет войти в нее снова.
При получении ошибки «Could not acquire name on session bus» необходимо на сервере создать файл /etc/X11/Xsession.d/99dbus-session со следующим содержимым:
unset DBUS_SESSION_BUS_ADDRESS
Для применения внесенных изменений необходимо перезагрузить систему.
Решение проблемы с переключением языка клавиатуры при подключении из Windows
Откройте файл:
nano /etc/xrdp/xrdp_keyboard.ini
Добавьте в конец файла следующее содержимое:
[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
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru
В данной конфигурации раскладка переключается сочетанием клавиш Alt+Shift.
Чтобы отключить определённый тип сессии (Xvnc или Xorg), закомментируйте в файле /etc/xrdp/xrdp.ini соответствующий раздел: [Xvnc] или [Xorg].
Для применения настроек перезагрузите сервер xrdp:
systemctl restart xrdp
Проброс локального диска и принтера при подключении из Windows
Для успешного подключения локального диска к удаленному рабочему столу необходимо убрать в настройках RDP-клиента галочку «Принтеры».
Подключение на клиенте
Для подключения из Windows используйте «Подключение к удаленному рабочему столу».
Для подключения из РЕД ОС используйте приложение «Remmina» («Главное меню» — «Интернет» — «Remmina»).
Выберите протокол RDP, впишите узел и нажмите клавишу Enter, чтобы подключиться.
Для подключения в открывшемся окне впишите имя пользователя и пароль.
Для применения настроек перезагрузите сервер xrdp:
systemctl restart xrdp
Устранение ошибки при настройке удаленного доступа с Windows 7/XP на РЕД ОС
При возникновении ошибки такого вида:
Откройте файл:
nano /etc/xrdp/xrdp.ini
Измените значение параметра security_layer:
security_layer=rdp
Для применения настроек перезагрузите сервер xrdp:
systemctl restart xrdp
Аутентификация под доменным пользователем
Для разрешения аутентификации доменных пользователей требуется изменить файл:
nano /etc/xrdp/sesman.ini
Закомментировав следующие строки:
#TerminalServerUsers=tsusers
#TerminalServerAdmins=tsadmins
Перезапустите сервер:
systemctl restart xrdp
Чтобы разрешить определенным доменным пользователям доступ к RDP-серверу, достаточно в группу tsusers добавить доменных пользователей.
Добавление в группу tsusers пользователя bob производится командой:
usermod -aG tsusers bob
где bob - это доменный пользователь,
В файл /etc/xrdp/sesman.ini в секцию [Security] необходимо добавить строки:
TerminalServerUsers=tsusers
AlwaysGroupCheck=true
Еще один вариант - в качестве локальной группы указать доменную:
TerminalServerUsers=rdp
здесь rdp - группа безопасности на вашем контроллере домена, в которую могут входить необходимые вам пользователи xrdp-сервера.
После этого перезапустите сервер:
systemctl restart xrdp
systemctl restart sssd
Дополнительная настройка SELinux
После тестового подключения к xrdp-серверу нужно выполнить настройку SELinux, выполните следующие команды на сервере:
ausearch -c 'krb5_child' --raw | audit2allow -M my-krb5child
semodule -X 300 -i my-krb5child.pp
Завершение всех процессов при выходе из сеанса
Для того чтобы при выходе из системы прекращались все процессы, явно или неявно запущенные от имени авторизованного пользователя, в файле /etc/systemd/logind.conf необходимо раскомментировать параметр KillUserProcesses и установить значение yes.
После изменения значения данного параметра необходимо либо перезагрузить компьютер, либо выполнить команду перезапуска сервиса logind для применения настроек:
systemctl restart systemd-logind
Оптимизация производительности
Оптимизацию использования ресурсов RDP-сервера (процессора, оперативной памяти, каналов связи) можно произвести представленными ниже изменениями конфигурации.
при использовании MATE:
Для отключения композитного менеджера путем задания значения по умолчанию параметра dconf следует создать файл
/etc/dconf/db/local.d/10_mate_nocomp со следующим содержимым (с правами пользователя root):
nano /etc/dconf/db/local.d/10_mate_nocomp
[org/mate/marco/general]
compositing-manager=false
Для того чтобы ограничить возможность изменения данного параметра пользователем, то есть принудительно применить настройку, следует выполнить команду:
echo "/org/mate/marco/general/compositing-manager" > /etc/dconf/db/local.d/locks/10_mate_nocomp
при использовании CINNAMON:
Для отключения композитного режима следует выполнить команду:
sed -i '/PREFERRED=/d' /etc/sysconfig/desktop 2>/dev/null; echo 'PREFERRED="$(type -p cinnamon-session-cinnamon2d)"' >> /etc/sysconfig/desktop