24.11.2024

Доступ по RDP на сервера Linux

Если уже есть графический интерфейс на Linux сервере, то переходим к блоку RDP.

Графический интерфейс

Ubuntu

Этот шаг можно пропустить, если не планируется использовать графический интерфейс.

Для удобства работы программистов 1С придется настроить доступ к графической оболочке Gnome через RDP сервер. Настройка доступа по RDP к Linux серверу описана тут.

apt install -y ubuntu-gnome-desktop gnome-tweaks gnome-shell-extensions

Русификация интерфейса

apt install -y language-pack-ru language-pack-ru-base language-pack-gnome-ru language-pack-gnome-ru-base gnome-user-docs-ru hunspell-ru hyphen-ru mythes-ru

Удалить игры и другие лишние приложения

apt purge -y aisleriot gnome-mahjongg gnome-mines gnome-sudoku
apt purge -y remmina vim cheese thunderbird libreoffice-*
apt autoremove -y
 

Установка

Устанавливаем сервер RDP, для этого понадобится пакет xrdp

apt install -y xrdp

Нужно добавить наш XRDP в группу SSL-сертификатов, чтобы получить к нему правильный доступ, иначе после установления подключения к удаленному рабочему столу будет отображаться только пустой экран

adduser xrdp ssl-cert

Ищем блок и проверяем настройки в файле /etc/xrdp/xrdp.ini

nano /etc/xrdp/xrdp.ini

/etc/xrdp/xrdp.ini (секции [Xorg] и [Xvnc])

[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

Так же в разделе [globals] можно сменить порт rdp используемый для подключения по RDP, по умолчанию 3389. port=3389

Перезапускаем сервис xrdp

service xrdp restart

Решение проблем

Debian 11 и графический интерфейс Gnome

При установке на Debian 11 c графическим интерфейсом Gnome после перезагрузки или сразу возникает ошибка

Oh No ! Something has gone wrong / О, нет ! Что-то пошло не так

После установки пакета xrdp выполнить удаление xorgxrdp и установить другую версию, например для Debian 10, проблема касается только связки Debian 11, Gnome и версии библиотеки xorgxrdp_0.2.12-1

apt purge xorgxrdp
wget http://ftp.de.debian.org/debian/pool/main/x/xorgxrdp/xorgxrdp_0.2.9-1_amd64.deb
dpkg -i xorgxrdp_0.2.9-1_amd64.deb
service xrdp restart
apt-mark hold xorgxrdp

Отключить переход системы в сон

При установке графического интерфейса система может переходить в сон, сообщая следующую информацию

Broadcast message from Debian-gdm@server on tty1 (Tue 2023-08-29 11:36:13 +07):

The system will suspend now!

Поэтому нужно запретить использовать режим сна.

systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
systemctl restart systemd-logind.service

Переключением языка клавиатуры при подключении из Windows

Проверьте наличие 2 секций файла /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
;Alt+Shift
;options=grp:alt_shift_toggle
;Ctrl+Shift
options=grp:grp:ctrl_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

Создание политик

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

Создать политику управления цветом

Необходимо установить 

 apt install polkitd polkitd-pkla -y

Создайте файл:

nano /etc/polkit-1/localauthority.conf.d/45-allow.colord.conf

nano /etc/polkit-1/localauthority/50-local.d/45-allow.colord.pkla

[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes

Создайте файл: nano /etc/polkit-1/rules.d/45-allow-colord.rules

polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.color-manager.create-device" ||
action.id == "org.freedesktop.color-manager.create-profile" ||
action.id == "org.freedesktop.color-manager.delete-device" ||
action.id == "org.freedesktop.color-manager.delete-profile" ||
action.id == "org.freedesktop.color-manager.modify-device" ||
action.id == "org.freedesktop.color-manager.modify-profile") &&
subject.isInGroup("users")) {
return polkit.Result.YES;
}
});

Создать политику диспетчера пакетов

Создайте файл: nano /etc/polkit-1/localauthority/50-local.d/46-allow-packagemanager.pkla

[Allow Package Management all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh;org.freedesktop.packagekit.upgrade-system;org.freedesktop.packagekit.trigger-offline-update
ResultAny=no
ResultInactive=no
ResultActive=yes

Создайте файл: nano /etc/polkit-1/rules.d/46-allow-packagemanager.rules

polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.packagekit.upgrade-system" ||
action.id == "org.freedesktop.packagekit.trigger-offline-update") &&
subject.active == true && subject.local == true &&
subject.isInGroup("users")) {
return polkit.Result.YES;
}
});

Отключение ждущего и спящего режима

Создайте файл: nano /etc/polkit-1/rules.d/10-disable-suspend.rules

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend" ||
        action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
        action.id == "org.freedesktop.login1.hibernate" ||
        action.id == "org.freedesktop.login1.hibernate-multiple-sessions") {
        return polkit.Result.NO;
    }
});

Управление службами systemd

Создайте файл: nano /etc/polkit-1/localauthority/50-local.d/47-allow-manage-units.pkla

[Allow users to manage services]
Identity=unix-user:*
Action=org.freedesktop.systemd1.manage-units
ResultAny=no
ResultInactive=no
ResultActive=yes

Создайте файл: nano /etc/polkit-1/rules.d/50-manage-units.rules

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.systemd1.manage-units"
        && subject.isInGroup("users")) {
        return polkit.Result.YES;
    }
});

Управление Network Manager

Создайте файл: nano /etc/polkit-1/localauthority/50-local.d/48-allow-networkmanager.pkla

[Allow users to manage NetworkManager connections]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.settings.modify.system
ResultAny=no
ResultInactive=no
ResultActive=yes

Создайте файл: nano /etc/polkit-1/rules.d/48-networkmanager.rules

polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" &&
subject.local && subject.active &&
subject.isInGroup ("users") {
return polkit.Result.YES;
}
});

Дополнительная информация

 

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

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