Подробный гайд по установке и настройке xrdp в Astra Linux

Пошаговая установка xrdp в Astra Linux для удалённого доступа через RDP. Настройка рабочего стола, PAM, брандмауэра и безопасности.

2026.04.07                  


Подробный гайд по установке и настройке xrdp в Astra LinuxПодробный гайд по установке и настройке xrdp в Astra Linux

Важно:

  • xrdp не входит в сертифицированные конфигурации Astra Linux Special Edition (Смоленск). В редакции Common Edition (Орёл/Воронеж) решение работает стабильно, но в SE могут потребоваться дополнительные настройки политик безопасности Parsec. Используйте данный гайд с учётом требований вашей инфраструктуры.

Требования

  • Astra Linux 1.7 или 1.8 (Common или Special Edition)
  • Доступ к терминалу с правами root или sudo
  • Открытый порт 3389/tcp в локальной сети
  • Желательно: отдельный пользователь для удалённого доступа

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

sudo apt update && sudo apt full-upgrade -y
sudo reboot

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

Шаг 2. Установка xrdp и зависимостей

sudo apt install xrdp xorgxrdp -y

Пакет xorgxrdp обеспечивает аппаратное ускорение и стабильную работу с X-сервером.

Добавьте пользователя xrdp в группу сертификатов SSL:

sudo usermod -aG ssl-cert xrdp

Шаг 3. Настройка рабочего стола (критично для Astra Linux)

Astra Linux по умолчанию использует среду Fly, которая плохо совместима с xrdp.

Рекомендуется один из двух вариантов:

Вариант А: Использовать XFCE (рекомендуется)

sudo apt install xfce4 xfce4-goodies -y

Создайте файл ~/.xsession для пользователя, который будет подключаться:

echo "exec startxfce4" > ~/.xsession
chmod +x ~/.xsession

Вариант Б: Попытаться запустить Fly

Сделайте резервную копию оригинального скрипта:

sudo cp /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh.bak

Отредактируйте /etc/xrdp/startwm.sh и добавьте перед последней строкой exec /etc/X11/Xsession:

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
export DESKTOP_SESSION=fly

Работоспособность Fly через xrdp не гарантируется. При чёрном экране или мгновенном отключении переключайтесь на XFCE.

Шаг 4. Настройка xrdp

Основной конфиг:

  • /etc/xrdp/xrdp.ini

Конфиг сессий:

  • /etc/xrdp/sesman.ini

Часто меняемые параметры:

/etc/xrdp/xrdp.ini:

[Globals]
port=3389
crypt_level=high
allow_channels=true
use_compression=yes

/etc/xrdp/sesman.ini:

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350

[Security]
AllowRootLogin=false
MaxLoginRetry=4
TerminalServerUsers=xrdp
TerminalServerAdmins=

[Sessions]
MaxSessions=10
KillDisconnected=false
IdleTimeLimit=0
DisconnectedTimeLimit=0

Рекомендация:

  • оставьте AllowRootLogin=false в целях безопасности. Подключайтесь под обычным пользователем.

Шаг 5. Настройка PAM (особенно важно для Astra Linux SE)

Отредактируйте /etc/pam.d/xrdp-sesman и убедитесь, что присутствуют строки:

@include common-auth
@include common-account
@include common-session

Если система использует Parsec-метки, может потребоваться временно отключить мандатный контроль для службы xrdp или настроить политики доступа. В Common Edition это обычно не требуется.

Шаг 6. Брандмауэр

Для ufw (если используется):

sudo ufw allow 3389/tcp
sudo ufw reload

Для iptables:

sudo iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
sudo netfilter-persistent save

Настоятельно рекомендуется не открывать порт 3389 в интернет. Используйте SSH-туннель.

Шаг 7. Запуск и автозагрузка

sudo systemctl enable xrdp
sudo systemctl restart xrdp
sudo systemctl status xrdp

Проверьте логи:

journalctl -u xrdp -f
journalctl -u xrdp-sesman -f

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

  1. На Windows: Win + Rmstsc → введите IP-адрес Astra Linux
  2. В окне xrdp выберите сессию Xorg, введите логин и пароль пользователя
  3. При успешном подключении вы увидите рабочий стол

Ограничение:

  • xrdp по умолчанию не позволяет одному пользователю иметь одновременно локальную и удалённую сессию. Если нужно подключиться, сначала выйдите из системы на физическом терминале.

Рекомендации по безопасности

Мера Команда / Действие
Смена порта В xrdp.ini измените port=3389 на port=3390 (не забудьте открыть в фаерволе)
Блокировка подбора паролей Установите fail2ban и создайте jail для xrdp
Ограничение по IP В xrdp.ini добавьте ip_allow=192.168.1.0/24 (или используйте фаервол)
Отключение root AllowRootLogin=false в sesman.ini
Шифрование crypt_level=high (по умолчанию)

Пример fail2ban jail (/etc/fail2ban/jail.local):

[xrdp]
enabled  = true
port     = 3389
filter   = xrdp
logpath  = /var/log/xrdp.log
maxretry = 3
bantime  = 3600

Диагностика типовых проблем

Симптом Возможная причина Решение
Чёрный экран после логина Неправильный DE или отсутствуют .xsession Проверьте ~/.xsession, установите XFCE
Сессия закрывается через 2-3 сек Конфликт с локальной сессией или ошибки PAM Выйдите из локальной сессии, проверьте /var/log/xrdp-sesman.log
Нет звука/буфера обмена Не установлены модули или отключены в конфиге Установите pulseaudio-module-xrdp (если доступно), проверьте enable_compression=yes
Отказ в подключении Брандмауэр или служба не запущена sudo systemctl status xrdp, проверьте ufw/iptables
Ошибка Parsec / Мандатный контроль Astra Linux SE блокирует запуск сессии Настройте политики безопасности или используйте сертифицированные средства удалённого доступа

Примечание по сертификации

  • В Astra Linux Common Edition xrdp работает стабильно и подходит для внутренних задач.
  • В Astra Linux Special Edition использование xrdp выводит систему из сертифицированной конфигурации.

Для государственных и корпоративных систем, требующих соответствия ФСТЭК, рекомендуется использовать:

  • Встроенные средства Astra (VNC с аутентификацией через Parsec)
  • Сертифицированные решения удалённого доступа (например, РуТерминал, Termidesk, Astra Linux Remote Desktop)
  • SSH + X11 Forwarding или Web-решения с аудитом