Настройка RDP для подключения к Ubuntu/CentOS/Debian

Введение

С помощью протокола удаленного рабочего стола (RDP) вы можете получить доступ к графическому интерфейсу удаленного сервера Windows из любого места, где есть сетевое соединение. RDP работает по модели клиент-сервер, где клиент RDP установлен на локальной машине, а сервер RDP работает на удаленной машине.

Этот руководство проведет вас через процесс настройки RDP для подключения к Ubuntu, CentOS или Debian. Вы узнаете, как настроить и получить доступ к удаленному серверу Linux с использованием соединения RDP.

Пошаговое руководство по настройке RDP и среды рабочего стола на Ubuntu/CentOS/Debian

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

Сначала подключитесь к серверу через SSH и обновите список пакетов:

1) Подключитесь к виртуальному серверу через SSH и обновите систему:

Ubuntu/Debian

sudo apt-get update

CentOS

sudo yum -y update

2) Установите необходимые пакеты:

Ubuntu/Debian

sudo apt-get install xrdp

CentOS

sudo yum install -y epel-release
sudo yum install -y xrdp

3) Включите и запустите службу xRDP:

sudo systemctl enable xrdp
sudo systemctl start xrdp

4) Откройте порт RDP для удаленных подключений:

Ubuntu/Debian

sudo ufw allow 3389/tcp

CentOS

Если используется FirewallD, откройте порт 3389/TCP для RDP:

sudo firewall-cmd --add-port=3389/tcp --permanent
sudo firewall-cmd --reload

5) Перезапустите сервер xRDP, чтобы применить изменения:

sudo /etc/init.d/xrdp restart

Подключение к рабочему столу

Для подключения откройте приложение Подключение к удаленному рабочему столу в Windows. Введите IP-адрес сервера и имя пользователя, затем нажмите Подключить.

Интерфейс подключения к удаленному рабочему столу

Во время подключения может появиться предупреждение безопасности из-за подключения к системе на базе Linux. Нажмите "Да", чтобы продолжить.

В окне входа выберите Xorg как сессию, введите пароль пользователя и нажмите OK.

Выбор сессии Xorg

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

После входа вы получите доступ к среде рабочего стола Ubuntu/CentOS/Debian.

Проверка подключения RDP

Чтобы проверить подключение с помощью клиента подключения к удаленному рабочему столу в Windows, выполните следующие действия:

  1. Запустите приложение Подключение к удаленному рабочему столу, найдя его в меню "Пуск" или введя mstsc в окне "Выполнить" (Windows + R) и нажав Enter.
  2. В окне подключения к удаленному рабочему столу введите публичный IP-адрес удаленного сервера в поле Компьютер.
  3. Введите имя пользователя, связанное с вашим удаленным сервером, в поле Имя пользователя.
  4. Чтобы сохранить эти настройки для дальнейшего использования, нажмите Сохранить как и укажите имя файла для подключения.
  5. Нажмите Подключить, чтобы начать подключение.

Установка среды рабочего стола

Почему нужна среда рабочего стола?

RDP требует графической среды рабочего стола для отображения интерфейса. Серверные версии Linux, такие как Ubuntu Server или CentOS Minimal, обычно не включают графический интерфейс, предлагая только терминал. Без среды рабочего стола, такой как Xfce, GNOME или KDE, xRDP не сможет отобразить рабочий стол, что может привести к ошибкам, например, черному экрану.

Установка среды рабочего стола

Рекомендуем использовать легкую среду рабочего стола, такую как Xfce, которая эффективна с точки зрения ресурсов для серверов. Используйте следующие команды для ее установки:

Дистрибутив Команда установки Xfce
Ubuntu/Debian
sudo apt-get install xfce4 xfce4-goodies
CentOS/Rocky Linux/AlmaLinux
sudo dnf install -y epel-release && sudo dnf groupinstall -y "Xfce"

После установки Xfce убедитесь, что менеджер дисплея, такой как lightdm или gdm, установлен и настроен. Менеджер дисплея управляет графическими входами. Обычно он устанавливается автоматически с Xfce, но вы можете проверить его наличие с помощью:

sudo systemctl status lightdm
# или
sudo systemctl status gdm

Если менеджер дисплея не установлен, установите один:

  • Для Ubuntu/Debian:
    sudo apt-get install lightdm
  • Для CentOS/Rocky Linux/AlmaLinux:
    sudo dnf install gdm
    (или
    sudo dnf install lightdm
    для Xfce)

После установки перезапустите сервер или службу xRDP:

sudo systemctl restart xrdp

Выбор сессии

При подключении через клиент RDP (например, Microsoft Remote Desktop) выберите сессию "Xorg" в меню входа. Выбор неправильной сессии может вызвать проблемы с отображением.

Повышение безопасности

Почему важна безопасность?

RDP, особенно когда порт 3389 общедоступен, является частой мишенью для атак. Без надлежащих мер безопасности, таких как защита от атак методом грубой силы или шифрование, соединения RDP уязвимы для несанкционированного доступа, утечки данных или атак типа "человек посередине". Вот несколько рекомендаций по безопасности:

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

  1. Сильные пароли Используйте сложные пароли для всех учетных записей, используемых для доступа к RDP.
  2. Ограничение доступа по IP Настройте брандмауэр, чтобы разрешать подключения RDP только с определенных IP-адресов, что снижает риск атак методом грубой силы. Примеры команд:
    Дистрибутив Команды для ограничения доступа
    Ubuntu/Debian
    sudo ufw allow from <IP_ADDRESS> to any port 3389
    CentOS/Rocky Linux/AlmaLinux
    sudo firewall-cmd --add-port=3389/tcp --permanent
    sudo firewall-cmd --add-source=<IP_ADDRESS> --permanent
    sudo firewall-cmd --reload

    Замените <IP_ADDRESS> на IP-адрес вашего клиента.

  3. Регулярные обновления Регулярно обновляйте систему и пакет xRDP, чтобы устранить известные уязвимости:
    • Для Ubuntu/Debian:
      sudo apt-get update && sudo apt-get upgrade
    • Для CentOS/Rocky Linux/AlmaLinux:
      sudo dnf update
  4. Использование VPN или бастионного хоста Для дополнительной безопасности настройте доступ к RDP через VPN (например, Tailscale или OpenVPN), чтобы скрыть порт 3389 от общего доступа в Интернете. Альтернативно используйте бастионный хост для безопасных подключений.
  5. Отключение RDP, когда он не используется Если RDP не нужен постоянно, отключите службу xRDP:
    sudo systemctl stop xrdp
    Включите ее снова, когда она понадобится:
    sudo systemctl start xrdp
  6. Шифрование соединений Убедитесь, что xRDP настроен на использование шифрования. По умолчанию xRDP поддерживает 128-битное шифрование. Проверьте настройки в /etc/xrdp/xrdp.ini, убедившись, что security_layer установлен на rdp или tls.

Решение распространенных проблем

Распространенные проблемы

Даже при правильной конфигурации могут возникнуть проблемы с xRDP. Вот наиболее распространенные проблемы и их решения:

  1. Ошибки подключения Если появляется сообщение "Удаленный рабочий стол не может подключиться к удаленному компьютеру", проверьте следующее:
    • Убедитесь, что служба xRDP работает:
      sudo systemctl status xrdp
      . Если она неактивна, запустите ее:
      sudo systemctl start xrdp
      .
    • Проверьте, открыт ли порт 3389 в брандмауэре:
      • Для Ubuntu/Debian:
        sudo ufw status
      • Для CentOS/Rocky Linux/AlmaLinux:
        sudo firewall-cmd --list-ports
        Если он закрыт, откройте его:
        • Для Ubuntu/Debian:
          sudo ufw allow 3389/tcp
        • Для CentOS/Rocky Linux/AlmaLinux:
          sudo firewall-cmd --add-port=3389/tcp --permanent && sudo firewall-cmd --reload
  2. Черный или пустой экран Черный экран после входа может быть вызван:
    • Отсутствием среды рабочего стола. Убедитесь, что установлен Xfce или другая среда.
    • Неправильным выбором сессии. Выберите "Xorg" в меню входа клиента RDP.
    • Проблемами с конфигурацией xRDP. Отредактируйте /etc/xrdp/xrdp.ini и установите max_bpp=24:
      sudo nano /etc/xrdp/xrdp.ini
      Найдите секцию [xrdp1] и добавьте или измените:
      max_bpp=24
      Перезапустите xRDP:
      sudo systemctl restart xrdp
  3. Проблемы с аутентификацией Если вход не удается, проверьте:
    • Правильность имени пользователя и пароля.
    • Разрешения на графический вход для пользователя. Убедитесь, что учетная запись не ограничена только доступом через терминал.
    • Настройки в /etc/xrdp/xrdp.ini. Убедитесь, что address установлен на 0.0.0.0:
      address=0.0.0.0
  4. Проблемы, специфичные для дистрибутива Некоторые версии, например Ubuntu 18.04.2, имеют известные проблемы с xRDP, такие как зеленые или черные экраны. В таких случаях:
    • Убедитесь, что установлена последняя версия xRDP:
      • Для Ubuntu/Debian:
        sudo apt-get install xrdp
      • Для CentOS/Rocky Linux/AlmaLinux:
        sudo dnf install xrdp
    • Попробуйте альтернативную среду рабочего стола, например GNOME, если Xfce не работает.
  5. Низкая производительность или задержки Если соединение RDP медленное, проверьте:
    • Скорость сетевого соединения.
    • Настройки графики xRDP. Уменьшение глубины цвета (например, до 16 бит) в /etc/xrdp/xrdp.ini может улучшить производительность, но снизит качество изображения.

Настройка звука в xRDP

Перенаправление звука через xRDP может быть сложным и зависит от дистрибутива. Ниже приведены рекомендуемые методы для Ubuntu Server 22.04, 24.04 и Debian 11, 12.

Ubuntu Server 22.04, 24.04 и Debian 11, 12 (рекомендуется для RDP со звуком)

Самый простой и надежный метод — использовать Ubuntu Server 22.04, 24.04 или Debian 11, 12 и установить xRDP с поддержкой звука с помощью скрипта xrdp-installer.

Инструкции шаг за шагом:
  1. Обновление системы:
    sudo apt update -y && sudo apt upgrade -y
    sudo reboot
  2. Установка среды рабочего стола:
    • Для Ubuntu Server 22.04, 24.04:
      sudo apt install ubuntu-desktop        # GNOME
      sudo apt install xubuntu-desktop       # Xfce
      sudo apt install kubuntu-desktop       # KDE
      sudo reboot
    • Для Debian 11, 12:
      sudo apt install gnome                 # GNOME
      sudo apt install xfce4                 # Xfce
      sudo apt install plasma-desktop        # KDE
      sudo reboot
  3. Скачайте и распакуйте скрипт:
    wget https://www.c-nergy.be/downloads/xRDP/xrdp-installer-1.5.3.zip
    unzip xrdp-installer-1.5.3.zip
  4. Сделайте скрипт исполняемым:
    chmod +x xrdp-installer-1.5.3.sh
  5. Запустите скрипт от имени пользователя, не являющегося root:
    ./xrdp-installer-1.5.3.sh -s
  6. Перезапустите сервер:
    sudo reboot

После перезапуска подключитесь через клиент RDP (например, Microsoft Remote Desktop). Звук должен работать автоматически, если он включен в клиенте.

Альтернатива: Ручная настройка для Ubuntu/Debian

Если вы не хотите использовать скрипт xrdp-installer, вы можете настроить звук вручную:

  1. Установите PulseAudio и модуль перенаправления:
    sudo apt-get install pulseaudio pulseaudio-module-xrdp
  2. Включите PulseAudio для пользователя:
    systemctl --user enable pulseaudio
    systemctl --user start pulseaudio
  3. Перезапустите xRDP:
    sudo systemctl restart xrdp

⚠️ Примечание: В некоторых версиях Ubuntu пакет pulseaudio-module-xrdp может быть недоступен в стандартных репозиториях. Рекомендуется использовать скрипт.

Системы на базе RHEL: Rocky Linux, AlmaLinux, CentOS 8+, Fedora

Поддержка звука в системах на базе RHEL требует ручной компиляции модуля pulseaudio-module-xrdp, что является сложным и не всегда стабильным.

Основные шаги (обзор):
  1. Установите инструменты разработки:
    sudo dnf groupinstall "Development Tools"
    sudo dnf install rpmdevtools dnf-utils pulseaudio-libs-devel
  2. Включите PowerTools (для AlmaLinux/Rocky):
    sudo dnf config-manager --set-enabled powertools
  3. Скачайте и скомпилируйте источники PulseAudio.
  4. Клонируйте и скомпилируйте репозиторий pulseaudio-module-xrdp:
    git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
    cd pulseaudio-module-xrdp
    ./bootstrap
    ./configure
    make
    sudo make install
  5. Перезапустите систему:
    sudo reboot

⚠️ Этот процесс не рекомендуется для неопытных пользователей. Рассмотрите использование RDP без звука или подключение через SSH/VNC.

Решение проблем со звуком
  1. Проверьте, включен ли звук в клиенте RDP (например, в Microsoft Remote Desktop проверьте вкладку "Локальные ресурсы").
  2. Проверьте статус PulseAudio:
    systemctl --user status pulseaudio
  3. Проверьте устройства xrdp-sink и xrdp-source:
    • Установите и откройте pavucontrol (если доступно).
    • Убедитесь, что звук не выключен, а выход правильно настроен.
  4. Проверьте настройки в /etc/pulse/daemon.conf:
    default-sample-rate = 44100
    После изменений:
    systemctl --user restart pulseaudio
  5. Проверьте разрешения пользователя: Убедитесь, что пользователь принадлежит к группе audio и имеет доступ к аудиоустройствам.