Linux для виртуального сервера

Содержание
  1. Создаем виртуальный сервер на базе KVM
  2. Шаг 1. Устанавливаем ОС и необходимое программное обеспечение
  3. Установка операционной системы и программного обеспечения
  4. Определяем, поддерживает ли процессор работу с KVM
  5. Проверяем правильность установки программного обеспечения
  6. Шаг 2. Создаем виртуальный сервер
  7. Создаем образ диска в формате raw
  8. Устанавливаем операционную систему на образ диска
  9. Теперь запустите ваш виртуальный сервер
  10. Шаг 3: Конфигурирование сетевых настроек виртуального сервера
  11. Установка пакета bridge-util
  12. Создание сетевого интерфейса типа «мост»
  13. Создание скрипта управления сетью
  14. Запуск гостевой операционной системы
  15. Конфигурирование сетевых настроек гостевой операционной системы
  16. VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04
  17. Оглавление:
  18. Установка графического окружения
  19. Русификация сервера и установка ПО
  20. Установка и настройка сервера RDP
  21. Настройка межсетевого экрана
  22. Подключение к серверу RDP
  23. Менеджер сессий и сеансы пользователей
  24. Переключение раскладок клавиатуры

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

Краткое содержание: С помощью трех сравнительно простых шагов вы можете с помощью технологии полной виртуализации создать виртуальный сервер на Linux-гипервизоре KVM.

Виртуальная машина, созданная на базе ядра Linux (KVM), является бесплатным программным обеспечением для Linux, имеющим открытый код и предназначенным для использовании технологии виртуализации. KVM основывается на расширенных возможностях, реализованных аппаратно (Intel VT-X и AMD-V), и на модифицированной версии QEMU. KVM является загружаемым модулем ядра kvm.ko, с помощью которого реализуется основная инфраструктура виртуализации серверов, а модули, реализованные под конкретные процессоры — kvm-intel.ko и kvm-amd.ko, разработаны для обеспечения полной аппаратной эмуляции, что требуется для загрузки большого количества операционных систем в немодифицированном виде.

С помощью KVM можно запустить несколько виртуальных машин, которые сами могут быть немодифицированными образами Linux, Windows или Mac OS X. Каждая виртуальная машина имеет свои собственные виртуальные аппаратные средства, такие как сетевая карта, диск, графический адаптер и т.д.

В настоящей статье используется сервер IBM® Blade Server HS21 с SUSE 11 в качестве операционной системы. В сервере HS21 поддерживается расширенная технология Intel VT, а версия ядра, используемая в SUSE 11, — 2.6.27.13, в котором уже есть гипервизор KVM (гипервизор KVM входит в ядро начиная с версии 2.6.20).

Для того, чтобы создать виртуальных сервер, нужно выполнить следующие три шага:

  1. Установить операционную систему и необходимое программное обеспечение
  2. Создать виртуальный сервер
  3. Сконфигурировать сеть виртуального сервера

Шаг 1. Устанавливаем ОС и необходимое программное обеспечение

В этой части рассматриваются следующие вопросы:

  1. Установка операционной системы и требуемого программного обеспечения
  2. Определение, поддерживает ли процессор работу с KVM
  3. Проверка правильности установки программного обеспечения

Установка операционной системы и программного обеспечения

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

Затем выберите и установите пакеты kvm и kvm-kmp-default (в состав которых уже входит модифицированный QEMU для эмуляции аппаратных средств ввода/вывода). Смотрите рис.1, выберите эти пакеты и щелкните по Accept для того, чтобы их установить:

Рис.1. Поиск модулей установленного ядра

Версия kvm-kmp-default — 78_2.6.27.13_1-11.3 (78 — это версия KVM , а остальная часть указывает версию ядра).

Типичный вариант гипервизора KVM содержит следующие компоненты:

  • Драйвер устройств для управления виртуальным аппаратным обеспечением; этот драйвер предоставляет свои возможности через символьное устройство /dev/kvm
  • Компонента пользовательского пространства для эмуляции аппаратного обеспечения персонального компьютера; в настоящий момент она обрабатывается в пользовательском пространстве и является слегка модифицированным процессом QEMU
  • Модель ввода/вывода, которая непосредственно следует из модели QEMU с поддержкой образов копирования и записи на диск и других особенностей QEMU

Определяем, поддерживает ли процессор работу с KVM

KVM зависит от наличия расширенных команд виртуализации x86. Для того, чтобы проверить совместимость, запустите команду grep vmx /proc/cpuinfo (на AMD, запустите команду grep svm /proc/cpuinfo ). Если результат выдачи будет похож на листинг 1, то это означает, что ваш процессор поддерживает использование KVM; в противном случае ваш процессор не поддерживает работу KVM.

Читайте также:  View from kitchen windows

Листинг 1. Проверка процессора на предмет поддержки KVM

Проверяем правильность установки программного обеспечения

Запустите команду lsmod | grep kvm для того, чтобы проверить, что модуль KVM установлен успешно. Если результат аналогичен тому, что показан ниже, то модуль KVM установлен успешно:

Шаг 2. Создаем виртуальный сервер

В этой части рассматриваются следующие вопросы:

  1. Создаем образ диска в формате raw
  2. Устанавливаем ОС на этот образ
  3. Запускаем виртуальный сервер

Создаем образ диска в формате raw

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

С помощью этой команды вы создаете образ размером 10 Гбайт и с именем kvmtest.img.

Устанавливаем операционную систему на образ диска

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

Поскольку вы устанавливаете пакет KVM, а не создаете модуль KVM из исходного кода самостоятельно, вы должны использовать команду qemu-kvm , а не команду qemu-system-x86_64 .

-boot d означает, что мы будем создавать виртуальный сервер, загружая его с CDROM. -m 1024 означает, что мы выделяем для виртуального сервера 1 Гбайт памяти.

После того, как эта команда будет запущена, появится экран установки операционной системы, такой как показано на рис.2:

Рис.2. Экран установки ОС

Далее установите операционную систему так, как вы это обычно делаете.

Теперь запустите ваш виртуальный сервер

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

Ваш сервер должен работать точно также, как обычный сервер работает на физически реализованном аппаратном обеспечении.

Шаг 3: Конфигурирование сетевых настроек виртуального сервера

Теперь вы знаете, как правильно создавать виртуальный сервер, но не сетевое соединение для виртуального сервера. Рассмотрим, как создать виртуальное соединение типа «мост»:

  1. Устанавливаем пакет bridge-util
  2. Создаем сетевой интерфейс типа «мост»
  3. Создаем скрипт для управления сетью
  4. Запускаем сеть гостевой операционной системы
  5. Конфигурируем сеть гостевой операционной системы

Установка пакета bridge-util

Нам нужно создать сетевое соединение типа «мост», поэтому нам нужно в операционной системе в разделе управления программным обеспечением выбрать для установки пакет bridge-util.

Рис.3. Установка пакета bridge-util

Создание сетевого интерфейса типа «мост»

На экране настройки сетевых соединений щелкните по ссылке Add a new network interface (Добавить новый сетевой интерфейс) (см.рис.4):

Рис.4. Добавление нового сетевого интерфейса

Должно появиться диалоговое окно настройки аппаратного обеспечения, такое как изображено на рис.5:

Рис.5. Диалог настройки аппаратного обеспечения, используемого для нового сетевого интерфейса

Выберите Bridge («Мост») в качестве типа устройства; щелкните по ссылке Next («Далее») для того, чтобы продолжить конфигурирование сети. Вы должны увидеть экран конфигурирования такой, как изображено на рис. 6:

Рис.6. Экран конфигурирования сети

В разделе «Bridged Devices» выберите вариант eth0 и укажите статический IP адрес для интерфейса типа «мост», который должен быть такой же, как и у eth0 (см. рис. 7).

Рис.7. Конфигурирование статического IP адреса для интерфейса типа «мост»

После того, как вы это сделаете, конфигурация для eth0 должна быть сброшена, поэтому щелкните по ссылке Next («Далее») для того, чтобы продолжить, и вы вернетесь в экран конфигурирования сетевых настроек. Вы увидите, что был создан новый сетевой интерфейс типа «мост» и что интерфейс eth0 был очищен.

Создание скрипта управления сетью

Содержимое скрипта управления сетью должно выглядеть приблизительно так, как показано на листинге 2:

Читайте также:  Windows 10 kw9 00265 что это

Листинг 2. Скрипт управления сетью

Запуск гостевой операционной системы

Запустите гостевую операционную систему с сетевым интерфейсом с помощью следующей команды:

Когда вы запускаете виртуальный сервер, вы можете указать сетевой интерфейс.

Конфигурирование сетевых настроек гостевой операционной системы

После того, как гостевая операционная система будет загружена, сконфигурируйте ее сетевые настройки так, как вы это делаете обычно.

Поздравляем! Вы успешно создали виртуальный сервер, построенный на основе KVM.

Ссылки на другие статьи по теме виртуализации вы найдете в разделе «Технологии и средства виртуализации» нашей Библиотеки.

Источник

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-адрес клиента известен, настройка осуществляется следующей командой:

Читайте также:  Windows максимальная это какая

Разрешить соединения с любого 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. С ней мы разберемся в следующей публикации.

Источник

Оцените статью