Подробный гайд по установке и настройке 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. Подключение и проверка
- На Windows:
Win + R→mstsc→ введите IP-адрес Astra Linux - В окне xrdp выберите сессию
Xorg, введите логин и пароль пользователя - При успешном подключении вы увидите рабочий стол
Ограничение:
- 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-решения с аудитом