Подробный гайд: Astra Linux 1.8: полная инструкция по настройке стабильного XRDP-доступа

Инструкция по настройке XRDP в Astra Linux 1.8. Решаем обрыв сессий: правка sesman.ini, создание xsession, политики безопасности, выбор оболочки и анализ логов.

2026.05.12                


Astra Linux 1.8: полная инструкция по настройке стабильного XRDP-доступаAstra Linux 1.8: полная инструкция по настройке стабильного XRDP-доступа

Шаг 1. Установка базовых пакетов

sudo apt update
sudo apt install xrdp xorgxrdp dbus-x11
sudo systemctl enable --now xrdp
sudo adduser xrdp ssl-cert   # доступ к TLS-сертификатам

xorgxrdp обязателен для корректного проброса графического буфера. Без него сессия падает на этапе инициализации X-сервера.


Шаг 2. Подготовка файла запуска сессии

XRDP сначала ищет ~/.xsession в домашней директории пользователя.

Если его нет или он не исполняемый, сессия завершается с кодом 0 или 1.

# Для оболочки Fly (по умолчанию в Astra)
echo '#!/bin/sh
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
exec dbus-run-session fly-wm' > ~/.xsession
chmod +x ~/.xsession

Если используете несколько пользователей, файл ~/.xsession нужно создать для каждого из них.


Шаг 3. Настройка sesman.ini (управление сессиями)

Откройте /etc/xrdp/sesman.ini и приведите секцию [Globals] и [Xorg] к виду:

[Globals]
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Xorg]
param=Xorg
param=-config
param=xrdp/xorg.conf
param=-noreset
param=-nolisten
param=tcp
param=-logfile
param=/var/log/xrdp.log
param=-loglevel
param=4
param=-seat
param=seat0
param=-verbose
param=1
param=X11DisplayOffset=10
param=X11DisplayNumber=10
param=IdleTimeout=0
param=DisconnectedTimeout=0
param=KillDisconnected=false
param=MaxSessions=50

Ключевые моменты:

  • KillDisconnected=false – предотвращает аварийное завершение сессии при кратковременном обрыве сети.
  • IdleTimeout=0 и DisconnectedTimeout=0 – отключают автоматический таймаут.
  • X11DisplayOffset=10 – стандартное значение, не меняйте без необходимости.

Шаг 4. Учёт политик безопасности Astra Linux

Astra Linux использует мандатный контроль доступа (Parsec) и строгие профили безопасности. XRDP часто блокируется на уровне PAM или контекста.

1. Проверьте текущий уровень безопасности:
   sudo pcplite -c
   # или через графический интерфейс: Пуск → Администрирование → Безопасность
2. Для отладки временно переключите в режим Свободный (не для продакшена!):
   sudo fly-admin-security --set-level free
3. PAM-настройки: откройте /etc/pam.d/xrdp-sesman и убедитесь, что есть строки:
   session    required     pam_limits.so
   session    optional     pam_mktemp.so
   # Если сессия падает сразу после входа, закомментируйте строку:
   # session    required     pam_systemd.so
4. Создайте каталог runtime (если отсутствует):
   sudo mkdir -p /run/user/$(id -u)
   sudo chown $USER:$USER /run/user/$(id -u)

Шаг 5. Фаервол и перезапуск служб

sudo ufw allow 3389/tcp
sudo systemctl restart xrdp xrdp-sesman
sudo systemctl status xrdp xrdp-sesman

Шаг 6. Диагностика (если сессия всё ещё закрывается)

Смотрите логи в реальном времени во время подключения:

sudo journalctl -u xrdp -u xrdp-sesman -f
tail -f /var/log/xrdp.log /var/log/xrdp-sesman.log
cat ~/.xsession-errors

Типичные ошибки и решения:

Ошибка в логе Причина Решение
X server for display 10 startup timeout Нет xorgxrdp или конфликт с локальной сессией Установите xorgxrdp, убедитесь, что пользователь не залогинен локально
login failed for display 10 Ошибка PAM или контекст безопасности Проверьте /etc/pam.d/xrdp-sesman, временно снимите усиленный режим
session closed for user сразу после ввода пароля ~/.xsession не исполняемый / нет XDG_RUNTIME_DIR chmod +x ~/.xsession, добавьте export XDG_RUNTIME_DIR
Cannot open display Конфликт с Wayland или активный сеанс в TTY7 Переключитесь на TTY3 (Ctrl+Alt+F3), завершите локальную сессию: sudo loginctl terminate-user $USER

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

Оболочка Fly в Astra 1.8 использует собственные компоненты, которые не всегда корректно работают через XRDP.

Для продакшн-серверов и удалённой работы рекомендуется XFCE:

sudo apt install xfce4 xfce4-goodies
echo '#!/bin/sh
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
exec startxfce4' > ~/.xsession
chmod +x ~/.xsession

После замены ~/.xsession перезапустите xrdp. Сессии через XFCE в Astra 1.8 работают стабильно в 95% случаев.


Чек-лист быстрого восстановления

  1. Установлены xrdp, xorgxrdp, dbus-x11
  2. Пользователь добавлен в группу ssl-cert
  3. ~/.xsession существует, исполняемый, содержит export XDG_RUNTIME_DIR и exec ...
  4. В sesman.ini KillDisconnected=false, таймауты 0
  5. Пользователь не залогинен локально или в другой XRDP-сессии
  6. Уровень безопасности не блокирует запуск X-серверов (для теста: free)
  7. Службы перезапущены: sudo systemctl restart xrdp xrdp-sesman

Примечания для Astra Linux 1.8

  • Версия XRDP в официальных репозиториях: 0.9.12. Известные баги с Fly частично исправлены в обновлениях безопасности 2024–2025 гг. Рекомендуется sudo apt full-upgrade.
  • Если система работает в режиме Усиленной безопасности, XRDP потребует явного разрешения в политике Parsec или использования сертифицированных шлюзов. Для внутренних сетей достаточно режима Стандартный или Свободный.
  • Для автоматизации развёртывания на нескольких хостах используйте ansible или salt с шаблонизацией ~/.xsession и sesman.ini.

Удачи в настройке!