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% случаев.
Чек-лист быстрого восстановления
- Установлены
xrdp,xorgxrdp,dbus-x11 - Пользователь добавлен в группу
ssl-cert ~/.xsessionсуществует, исполняемый, содержитexport XDG_RUNTIME_DIRиexec ...- В
sesman.iniKillDisconnected=false, таймауты0 - Пользователь не залогинен локально или в другой XRDP-сессии
- Уровень безопасности не блокирует запуск X-серверов (для теста:
free) - Службы перезапущены:
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.
Удачи в настройке!