- Установка и настройка xrdp для использования удаленного рабочего стола в Ubuntu
- Предварительные требования
- Установка среды рабочего стола на виртуальной машине Linux
- Установка и настройка сервера удаленных рабочих столов
- Настройка пароля локальной учетной записи пользователя
- Создание правила группы безопасности сети, разрешающего трафик с удаленного рабочего стола
- Подключение к виртуальной машине Linux с помощью клиента удаленного рабочего стола
- Диагностика
- Дальнейшие действия
- VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04
- Оглавление:
- Установка графического окружения
- Русификация сервера и установка ПО
- Установка и настройка сервера RDP
- Настройка межсетевого экрана
- Подключение к серверу RDP
- Менеджер сессий и сеансы пользователей
- Переключение раскладок клавиатуры
Установка и настройка xrdp для использования удаленного рабочего стола в Ubuntu
Применимо к: ✔️ виртуальные машины Linux ✔️ гибкие масштабируемые наборы
Управление виртуальными машинами Linux в Azure обычно осуществляется из командной строки с помощью подключения Secure Shell (SSH). Если вы только начинаете работу с Linux или хотите быстро устранить неполадки, проще всего использовать удаленный рабочий стол. В этой статье описывается установка и настройка среды рабочего стола (xfce) и удаленного рабочего стола (xrdp) для виртуальной машины Linux под управлением Ubintu.
Эта статья была написана и протестирована для виртуальной машины под управлением Ubuntu 18.04.
Предварительные требования
Для работы с этой статьей требуется существующая виртуальная машина Ubuntu 18.04 LTS в Azure. Если требуется создать виртуальную машину, используйте один из следующих методов:
Установка среды рабочего стола на виртуальной машине Linux
На большинстве виртуальных машин Linux в Azure по умолчанию не установлена среда рабочего стола. Управление виртуальными машинами Linux обычно осуществляется через SSH-подключения, а не с помощью рабочего стола. В Linux можно использовать различные среды рабочего стола. Выбранная среда рабочего стола может занимать 1–2 ГБ места на диске, а для установки и настройки всех необходимых пакетов может потребоваться 5–10 минут.
С помощью приведенного ниже примера кода можно установить упрощенную среду рабочего стола xfce4 на виртуальной машине Ubuntu 18.04 LTS. Команды для других дистрибутивов незначительно отличаются. Например, для установки на виртуальной машине Red Hat Enterprise Linux используйте yum и настройте соответствующие правила selinux , а для установки на виртуальной машине SUSE используйте zypper .
Сначала установите SSH-подключение к виртуальной машине. Следующий пример подключается к виртуальной машине myvm.westus.cloudapp.azure.com с использованием имени пользователя azureuser. Используйте собственные значения:
Если вы используете Windows и нуждаетесь в дополнительных сведениях об использовании SSH, см. статью Использование SSH с Windows в Azure.
Затем установите xfce с помощью apt следующим образом:
Установка и настройка сервера удаленных рабочих столов
После установки среды рабочего стола настройте службу удаленного рабочего стола для прослушивания входящих подключений. xrdp — это сервер RDP с открытым исходным кодом, доступный в большинстве дистрибутивов Linux и совместимый с xfce. Установите xrdp на виртуальной машине Ubuntu следующим образом:
Укажите, какую среду рабочего стола должен использовать сервер xrdp при запуске сеанса. Настройте xrdp для использования xfce в качестве среды рабочего стола с помощью следующего кода:
Перезапустите службу xrdp, чтобы изменения вступили в силу:
Настройка пароля локальной учетной записи пользователя
Если вы создали пароль для учетной записи пользователя при создании виртуальной машины, пропустите этот шаг. Если вы используете только проверку подлинности с помощью ключа SSH и пароль локальной учетной записи не задан, укажите пароль, прежде чем использовать xrdp для входа на виртуальную машину. xrdp не принимает ключи SSH для проверки подлинности. В следующем примере задается пароль для учетной записи пользователя azureuser.
После указания пароля конфигурация SSHD не обновится таким образом, чтобы разрешить вход с помощью пароля, если такая возможность в настоящее время не настроена. С точки зрения безопасности лучше подключиться к виртуальной машине через туннель SSH с помощью проверки подлинности на основе ключа, а затем подключиться к xrdp. В таком случае можно пропустить следующий шаг по созданию правила группы безопасности сети, разрешающего трафик с удаленного рабочего стола.
Создание правила группы безопасности сети, разрешающего трафик с удаленного рабочего стола
Чтобы трафик с удаленного рабочего стола мог поступать на виртуальную машину Linux, необходимо создать правило группы безопасности сети, разрешающее использовать протокол TCP на порту 3389 для доступа к виртуальной машине. Дополнительные сведения о правилах групп безопасности сети см. в статье Безопасность сети. Вы также можете создать правило группы безопасности сети с помощью портала Azure.
В следующем примере создается правило группы безопасности сети с именем az vm open-port на порту 3389. Из Azure CLI, а не сеанса SSH с виртуальной машиной, откройте следующее правило группы безопасности сети:
Подключение к виртуальной машине Linux с помощью клиента удаленного рабочего стола
Откройте локальный клиент удаленного рабочего стола и подключитесь с помощью IP-адреса или DNS-имени виртуальной машины Linux.
Введите имя пользователя и пароль для учетной записи пользователя на виртуальной машине:
После проверки подлинности загрузится среда рабочего стола xfce. Она будет выглядеть примерно так:
Если локальный RDP-клиент использует проверку подлинности на уровне сети (NLA), то может потребоваться отключить эту настройку подключения. В настоящее время XRDP не поддерживает NLA. Вы можете также воспользоваться альтернативными решениями для RDP, которые поддерживают NLA, такими как FreeRDP.
Диагностика
Если не удается подключиться к виртуальной машине Linux с помощью клиента удаленного рабочего стола, используйте netstat на виртуальной машине Linux, чтобы убедиться, что она прослушивает RDP-подключения:
В следующем примере показана виртуальная машина, прослушивающая TCP-порт 3389, как и ожидалось:
Если служба xrdp-sesman не выполняет прослушивание, перезапустите службу на виртуальной машине Ubuntu следующим образом:
Просмотрите журналы в папке /var/log на виртуальной машине Ubuntu, чтобы узнать, почему служба не отвечает. Вы также можете проверять системный журнал на предмет ошибок во время попыток подключения к удаленному рабочему столу:
В других дистрибутивах Linux, например Red Hat Enterprise Linux и SUSE, способы перезапуска служб и расположение файла журнала могут отличаться.
Если ответ не поступает в клиент удаленного рабочего стола, а события не отображаются в системном журнале, это означает, что трафик с удаленного рабочего стола не достигает виртуальной машины. Проверьте правила групп безопасности сети и убедитесь, что в их числе есть правило, разрешающее трафик по протоколу TCP через порт 3389. Дополнительные сведения см. в статье Устранение проблем с подключением к приложениям на виртуальных машинах Linux в Azure.
Дальнейшие действия
Дополнительные сведения о создании и использовании ключей SSH на виртуальных машинах Linux см. в статье Создание пары из открытого и закрытого ключей SSH для виртуальных машин Linux.
Сведения об использовании SSH в Windows см. в статье Использование SSH с Windows в Azure.
Источник
VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04
В предыдущей статье мы разобрали запуск сервера VNC на виртуальной машине любого типа. У этого варианта масса недостатков, основным из которых являются высокие требования к пропускной способности каналов передачи данных. Сегодня мы попробуем подключиться к графическому рабочему столу на Linux по RDP (Remote Desktop Protocol). Система VNC основана на передаче массивов пикселей по протоколу RFB (Remote Framebuffer), а RDP позволяет отправлять более сложные графические примитивы и высокоуровневые команды. Обычно он используется для организации служб удаленных рабочих столов в Windows, но серверы для Linux также доступны.
Оглавление:
Установка графического окружения
Мы возьмем виртуальную машину с Ubuntu Server 18.04 LTS с двумя вычислительными ядрами, четырьмя гигабайтами оперативной памяти и жестким диском (HDD) на двадцать гигабайт. Более слабая конфигурация плохо подходит для графического десктопа, хотя это зависит от решаемых задач. Не забывайте использовать промокод Habrahabr10 для получения скидки в 10% при заказе.
Установка окружения рабочего стола со всеми зависимостями выполняется следующей командой:
Как и в предыдущем случае, мы выбрали XFCE из-за относительно невысоких требований к вычислительным ресурсам.
Русификация сервера и установка ПО
Часто виртуальные машины разворачиваются только с английской локализацией. На десктопе может потребоваться русская, настроить которую несложно. Сначала установим переводы для системных программ:
Того же эффекта можно достичь, отредактировав вручную файл /etc/default/locale.
Для локализации GNOME и KDE в репозитории есть пакеты language-pack-gnome-ru и language-pack-kde-ru — они понадобятся, если вы будете использовать программы из этих сред рабочего стола. В XFCE переводы устанавливаются вместе с приложениями. Дальше можно инсталлировать словари:
Кроме того, инсталляция переводов может потребоваться для некоторых прикладных программ:
На этом подготовка окружения рабочего стола завершена, осталось настроить сервер RDP.
Установка и настройка сервера RDP
В репозиториях Ubuntu есть распространяемый свободно сервер Xrdp, которым мы и воспользуемся:
Если все прошло нормально, сервер должен запуститься автоматически:
Сервер Xrdp запускается с правами пользователя xrdp и по умолчанию берет cертификат /etc/ssl/private/ssl-cert-snakeoil.key, который можно заменить собственным. Для доступа на чтение файла нужно добавить пользователя в группу ssl-cert:
Настройки по умолчанию можно найти в файле /etc/default/xrdp, а все прочие конфигурационные файлы сервера лежат в каталоге /etc/xrdp. Основные параметры находятся в файле xrdp.ini, который можно не менять. Конфиг хорошо документирован, к тому же в комплекте имеется соответствующие manpages:
Осталось только отредактировать скрипт /etc/xrdp/startwm.sh, который исполняется при инициализации пользовательской сессии. Предварительно сделаем резервную копию скрипта из дистрибутива:
Чтобы запустить окружение рабочего стола XFCE, потребуется сценарий примерно такого содержания:
Обратите внимание: в скриптах лучше прописывать полный путь к исполняемым файлам — это хорошая привычка. Сделаем скрипт исполняемым и на этом настройку сервера Xrdp можно считать законченной:
Настройка межсетевого экрана
По умолчанию Xrdp слушает TCP-порт 3389 на всех интерфейсах. В зависимости от конфигурации виртуального сервера может потребоваться настройка межсетевого экрана Netfilter. В Linux это обычно делается с помощью утилиты iptables, но в Ubuntu лучше использовать ufw. Если IP-адрес клиента известен, настройка осуществляется следующей командой:
Разрешить соединения с любого IP можно так:
Протокол RDP поддерживает шифрование, но открывать доступ к серверу Xrdp из сетей общего пользования — плохая идея. Если у клиента нет фиксированного IP, для повышения уровня безопасности сервер должен слушать только localhost. Доступ к нему лучше настроить через туннель SSH, который безопасно перенаправит трафик с клиентского компьютера. Аналогичный подход мы использовали в предыдущей статье для сервера VNC.
Подключение к серверу RDP
Для работы с окружением рабочего стола лучше создать отдельного непривилегированного пользователя:
Добавим пользователя в группу sudo, чтобы он мог решать связанные с администрированием задачи. Если такой потребности нет, этот шаг можно пропустить:
Подключиться к серверу можно с помощью любого клиента RDP, включая встроенный клиент службы удаленных рабочих столов Windows. Если Xrdp слушает внешний интерфейс, никаких дополнительных телодвижений не понадобится. Достаточно указать в настройках соединения IP-адрес VPS, имя пользователя и пароль. После подключения мы увидим примерно такую картину:
После первичной настройки окружения рабочего стола мы получим полноценный десктоп. Как видите, он потребляет не так много ресурсов, хотя дальше все будет зависеть от используемых приложений.
Если сервер Xrdp слушает только localhost, на клиентском компьютере трафик придется упаковать в туннель SSH (на VPS должен быть запущен sshd). Под Windows можно использовать графический клиент SSH (например, PuTTY), а в UNIX-системах нужна утилита ssh:
После инициализации туннеля клиент RDP будет подключаться уже не к удаленному серверу, а к локальному хосту.
С мобильными устройствами сложнее: способные поднять туннель клиенты SSH придется покупать, к тому же в iOS и iPadOS фоновая работа сторонних приложений затруднена из-за слишком хорошей оптимизации энергопотребления. На iPhone и iPad поднять туннель в отдельном приложении не получится — потребуется приложение-комбайн, которое само умеет устанавливать соединение RDP через SSH. Такое, например, как Remoter Pro.
Менеджер сессий и сеансы пользователей
Возможность многопользовательской работы реализована непосредственно в сервере Xrdp и не требует дополнительной настройки. После запуска сервиса через systemd один процесс работает в режиме демона, слушает порт 3389 и взаимодействует через localhost с менеджером сессий.
Менеджер сеансов пользователям обычно не виден, потому что заданные в настройках клиента логин и пароль передаются ему автоматически. Если этого не произошло или при аутентификации возникла ошибка, вместо рабочего стола появится интерактивное окно для входа в систему.
Автоматический запуск менеджера сессий прописан в файле /etc/default/xrdp, а конфигурация хранится в /etc/xrdp/sesman.ini. По умолчанию выглядит она примерно так:
Здесь можно ничего не менять, стоит только запретить вход с правами root (AllowRootLogin=false). Для каждого авторизовавшегося в системе пользователя запускается отдельный процесс xrdp: если отсоединиться не завершив сеанс, пользовательские процессы по умолчанию продолжат работать, а к сеансу можно будет подключиться заново. Настройки можно изменить в файле /etc/xrdp/sesman.ini (секция [Sessions]).
Переключение раскладок клавиатуры
С двухсторонним буфером обмена проблем обычно не возникает, а вот с русской раскладкой клавиатуры придется немного пошаманить (русская локаль должна быть уже установлена). Отредактируем клавиатурные настройки сервера Xrdp:
В конец конфигурационного файла нужно добавить следующие строки:
Остается сохранить файл и перезапустить Xrdp:
Как видите, поднять сервер RDP на линуксовом VPS несложно, а в предыдущей статье мы уже разобрали настройку VNC. Помимо этих технологий, есть еще один интересный вариант: использующая модифицированный протокол NX 3 система X2Go. С ней мы разберемся в следующей публикации.
Источник