Ubuntu Cloud · 4 min read · Feb 05, 2026

Установка Ubuntu Cloud с поддержкой RDP в оффлайн-окружении Openstack

В этом руководстве мы будем развертывать Linux-хост с поддержкой RDP, который будет служить удаленным рабочим столом в среде с ограниченным доступом (без подключения к интернету). Дополнительным требованием является возможность использования одних и тех же учетных данных несколькими пользователями для этого хоста.

Для этой цели мы будем использовать два зеркальных экземпляра серверов Ubuntu Cloud, один онлайн и другой оффлайн, чтобы на оффлайн-сервер можно было развернуть правильные пакеты. Также был выбран рабочий стол Xfce4 из-за его возможности открытия нескольких сеансов для одного пользователя. На момент написания руководства Gnome не поддерживал эту функцию.

Оффлайн установка

Чтобы разрешить установку в оффлайн-системе, мы будем развертывать идентичную систему в онлайн VirtualBox, используя следующую последовательность команд для каждого пакета:

На онлайн-системе:

sudo apt-get install --download-only 

Скопируйте пакеты из онлайн /var/cache/apt/archives на ПК (используя либо клиент sftp, либо общую папку VirtualBox) и с ПК на оффлайн-систему. Затем на обеих системах:

dpkg -i /var/cache/apt/archives/*.deb

Наконец, очистите архивы apt:

apt-get clean

Скачайте образ Ubuntu Cloud

Используйте эту ссылку. Для OpenStack мы будем использовать расширение img, эквивалентное qcow2. Для VirtualBox нам нужен ova, который уже содержит файл диска vmdk.

Создайте две виртуальные машины

В OpenStack:

Загрузите изображение в glance:

glance image-create --name "Ubuntu Cloud image" --file ubuntu-18.04-server-cloudimg-amd64.img --is-public False --container-format bare --disk-format qcow2

Создайте горячий шаблон, вот пример с одним фиксированным IP и дополнительным дисковым пространством:

heat_template_version: 2018-04-30  
  
description: Развертывание удаленного рабочего стола  
  
resources:  
  
 port_vm:  
    type: OS::Neutron::Port  
    properties:  
      network:   
      fixed_ips:  
         - subnet:   
           ip_address:   
  
 server:  
    type: OS::Nova::Server  
    properties:  
      name:   
      flavor:   
      availability_zone:   
      networks:  
        - port: { get_resource: port_vm }  
  
   new_volume:  
      type: OS::Cinder::Volume  
      properties:  
        size:   
  
   volume_attachment:  
      type: OS::Cinder::VolumeAttachment  
      properties:  
        volume_id: { get_resource: new_volume }  
        instance_uuid: { get_resource: server }

Создайте стек, экземпляр автоматически запустится:

heat stack-create -f  -e  

Подключитесь к консоли, убедитесь, что ВМ успешно загрузилась. Перезагрузите с помощью Ctrl-Alt Del и нажмите Left-Shift, чтобы получить доступ к режиму восстановления и изменить пароль root.

В VirtualBox:

Импортируйте файл ova как новое устройство. Убедитесь, что активирован последовательный порт, он может оставаться отключенным, он используется для обхода одного из шагов во время инициализации облака. Также убедитесь, что выбрали сетевой адаптер в режиме моста и связали его с сетевым интерфейсом хоста, который имеет доступ в интернет.

Загрузитесь с нажатой клавишей Left-Shift и получите доступ к режиму восстановления GRUB. Там вы можете изменить пароль root на любой, который вам нравится. Загрузитесь и войдите в систему нормально на этот раз.

Запустите parted, чтобы исправить данные раздела:

Разделение с использованием parted

Примите исправление GPT, затем используйте “resizepart”, чтобы использовать все существующее пространство на диске:

Изменение размера раздела

Выйдите из parted и используйте resize2fs для настройки файловой системы:

Теперь df -h должен отображать 10G доступного.

Проверьте IP-соединение

Несмотря на то, что Openstack может предоставить правильный IP-адрес через DHCP, мы будем настраивать статический в обеих средах. Создайте файл с расширением yaml в /etc/netplan, установите IP-адрес и шлюз соответственно:

network:  
       version: 2  
       renderer: networkd  
       ethernets:  
               enp0s3:  
                       dhcp4: no  
                       addresses: [192.168.1.100/24]  
                       gateway4: 192.168.1.1  
                       nameservers:  
                               addresses: [192.168.1.1]

Примените новую конфигурацию:

netplan apply

Теперь соединение должно работать от ВМ к шлюзу и от вашего ПК к обеим ВМ.

Как только интернет-соединение будет предоставлено в VirtualBox ВМ, обязательно обновите apt:

apt-get update

Обратите внимание, что если вы решите установить Gnome вместо рабочего стола Xfce4, вам нужно будет заменить networkd на NetworkManager, как только вы закончите эту установку.

Настройка SSH

Мы будем включать доступ root по ssh. Отредактируйте файл по умолчанию /etc/ssh/sshd_config:

  • Включите все 3 HostKeys
  • Установите PermitRootLogin в yes
  • Отключите HostBasedAuthentication
  • Включите пароль в открытом виде (PasswordAuthentication yes, PermitEmptyPasswords no)

Также проверьте /etc/ssh на наличие файлов hostkey, в VirtualBox они обычно отсутствуют. Сгенерируйте новые с помощью ssh-keygen:

ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ""  
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -t ecdsa -N ""  
ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -t ed25519 -N ""

Перезапустите службу:

service sshd restart

Теперь вы должны иметь возможность ssh к новым ВМ. Если хотите, вы можете сгенерировать пару ключей (приватный/публичный), чтобы заменить пароль в открытом виде.

Установка Xfce4

Это шаги для установки рабочего стола xfce4 в Ubuntu.

В VirtualBox:

apt-get update  
apt-get install --download-only xfce4 xfce4-terminal gnome-icon-theme-full tango-icon-theme  
dpkg -i /var/cache/apt/archives/*.deb

Затем скопируйте deb-пакеты из /var/cache/apt/archives на Openstack ВМ. Не забудьте очистить /var/cache/apt/archives.

В Openstack:

dpkg -i /var/cache/apt/archives/*.deb  
apt-get clean

После этого для двух ВМ добавьте нового пользователя ubuntu и добавьте его в группу sudo:

adduser ubuntu  
usermod -aG sudo ubuntu

Просто нажмите ENTER для всех вопросов, и на этом все. Домашний каталог добавляется автоматически.

Установка XRDP

Смените пользователя на ubuntu, чтобы XRDP выполнил необходимую конфигурацию в /home/ubuntu.

В VirtualBox:

sudo apt-get install --download-only xrdp  
sudo dpkg -i /var/cache/apt/archives/*.deb

Скопируйте deb-пакеты из /var/cache/apt/archives на Openstack ВМ. Очистите /var/cache/apt/archives.

В Openstack:

sudo dpkg -i /var/cache/apt/archives/*.deb  
sudo apt-get clean

Настройте XRDP на обеих:

Отредактируйте /etc/xrdp/sesman.ini и установите Policy=UBDC. Это позволяет использовать несколько сеансов с одним и тем же именем пользователя.

Отредактируйте /etc/xrdp/startwm.sh, добавив startxfce4 в конец:

#!/bin/sh  
  
if [ -r /etc/default/locale ]; then  
. /etc/default/locale  
export LANG LANGUAGE  
fi  
  
unset SESSION_MANAGER  
unset DBUS_SESSION_BUS_ADDRESS  
startxfce4

Перезапустите службу XRDP:

sudo service xrdp restart

Установка веб-браузеров

Веб-браузеры необходимо добавить в Xfce4. Найдите deb Google Chrome в интернете и установите его с помощью dpkg.

Вы можете получить Firefox напрямую из репозиториев Ubuntu.

В VirtualBox:

sudo apt-get install --download-only firefox  
sudo dpkg -i /var/cache/apt/archives/*.deb

Скопируйте deb-пакеты из /var/cache/apt/archives на Openstack ВМ. Очистите /var/cache/apt/archives.

В Openstack:

sudo dpkg -i /var/cache/apt/archives/*.deb  
sudo apt-get clean

Добавьте ярлыки для каждого браузера на панель задач и/или рабочий стол.

И на этом все. Откройте несколько RDP-сессий к серверу и проверьте, что все работает.

Ура!

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.