- VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04
- Оглавление:
- Установка графического окружения
- Русификация сервера и установка ПО
- Установка и настройка сервера RDP
- Настройка межсетевого экрана
- Подключение к серверу RDP
- Менеджер сессий и сеансы пользователей
- Переключение раскладок клавиатуры
- Чек лист: Как настроить виртуальный сервер VPS/VDS
- Начнем с терминов
- Шаг 1.1 — Можно ли корректно оценить процессор до покупки выделенного сервера/VPS
- Шаг 1.2 — Проверьте IP виртуального сервера на блокировку
- Шаг 2 — Первоначальная настройка сервера VPS/VDS
- VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04
- Оглавление:
- Выбор сервера VNC
- Установка и настройка
- Запуск службы через systemd
- Подключение к рабочему столу
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. С ней мы разберемся в следующей публикации.
Источник
Чек лист: Как настроить виртуальный сервер VPS/VDS
Чек-лист, инструкция, напоминалка и просто необходимая вещь по настройке виртуального сервера с нуля. Не важно какие разновидности операционных систем Unix ты настраиваешь Debian, CentOS, Ubuntu, FreeBSD или RouterOS основные этапы одинаковые — это настройка безопасности, удаленного управления, стандартные сервисы LAMP и так далее.
Начнем с терминов
Виртуальные сервера VPS (Virtual Private Server) и VDS (Virtual Dedicated Server) это одно и то же — это синонимы. Если какой-либо хостинг предлагает вам VPS и VDS как разные услуги — это должно вас насторожить, что-то тут не так.
Список хостинг провайдеров с которыми я работаю оформлен в виде рейтинга хостингов. Нужна будет консультация по хостингу — пишите мне.
Шаг 1.1 — Можно ли корректно оценить процессор до покупки выделенного сервера/VPS
Эту инструкцию я просто скопировал у самого адекватного (как по цене, так и уровню техподдержки) украинского хостинг провайдера СХОСТ.
При выборе выделенного сервера и VPS/VDS очень важно обратить внимание на процессор. Не все знают, что большие показатели CPU и количества ядер не всегда гарантируют большую мощность. В частности, более современный процессор 1.6 ГГц может ощутимо превосходить процессор 4 ГГц.
Существует проверенный способ оценить реальную мощность практически любого процессора до покупки выделенного сервера/ВПС:
Рассмотрим, как работает сервис на примере. Мы сравнили два процессора – Intel Xeon X5675 @ 3.07GHz (процессор А) и Intel Xeon E5-2680 v2 @ 2.80GHz (процессор В).
При том что мощность (поле Clockspeed) процессора А равна 3.1 ГГц, а мощность процессора В – 2.8 ГГц, рейтинг одного ядра (поле Single Thread Rating) процессора В составляет 1826, а процессора А – лишь 1392. Что касается суммарного рейтинга (поле CPU Mark), то и здесь процессор В показал лучшие результаты: 15904 против 8124.
Вывод: у процессора 2.8 ГГц каждое ядро почти на 50% мощнее, чем у процессора 3.1 ГГц. Следовательно, так как ядер больше, процессор В почти в два раза сильнее, чем процессор В.
Шаг 1.2 — Проверьте IP виртуального сервера на блокировку
Не надо спешить что либо настраивать, первым делом убедитесь что хостер выдал вам незаблокированный IP. Вы понимаете, что если ваш IP проблемный, то никаких почтовых серверов вы установить не сможете или продвинуть ваш сайт по SEO или получите «Обход системы» в Google реклама.
Ниже привожу сервисы, которыми пользуюсь я. Если кто-то знает аналогичные сервисы напишите мне на почту — я добавлю.
Шаг 2 — Первоначальная настройка сервера VPS/VDS
Обычно я использую на серверах Debian или Ubuntu, поэтому команды будут приводиться для этих систем. Для остальных ОС буду приводить ссылки, если есть различия.
На начальном этапе у нас есть свежеустановленная операционная система на VPS/VDS и доступ по SSH. Логинимся на сервер под пользователем root.
1) Обновление операционной системы. Для Debian, Ubuntu рекомендую использовать встроенные менеджер пакетов APT, альтернатива Aptitude, dpkg.
Добавим системные утилиты:
2) Настройка переменных локализации в Linux удаление локалей и локализаций, проверка языка консоли вашего VDS.
3) Настройка времени и часового пояса при помощи tzdata.
4) Имя сервера проверьте командой hostname с ключом f. Вы должны увидеть имя в формате FQDN (без точки в конце), например
Если вы хотите установить почтовый сервер также проверьте обратную запись DNS. В самом простом случае достаточно чтобы ваш VPS был доступен по доменному имени.
5) Настройка SSH доступа, для повышения безопасности и удобства использования вашего сервера — дадут вам прочную основу для последующих действий.
6) Настройка брандмауэра (firewall, файрвол) в разных дистрибутивах отличается или же используются разные программные надстройки на ними:
Источник
VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04
Некоторые пользователи арендуют относительно недорогие VPS с Windows для запуска сервиса удаленных рабочих столов. То же самое можно сделать и на Linux без размещения в датацентре собственного железа или аренды выделенного сервера. Кому-то нужна привычная графическая среда для тестов и разработки или удаленный десктоп с широким каналом для работы с мобильных устройств. Есть масса вариантов применения основанной на протоколе Remote FrameBuffer (RFB) системы Virtual Network Computing (VNC). В небольшой статье мы расскажем, как настроить ее на виртуальной машине с любым гипервизором..
Оглавление:
Выбор сервера VNC
Сервис VNC может быть встроен в систему виртуализации, при этом гипервизор свяжет его с эмулируемыми устройствами и никакой дополнительной настройки не потребуется. Этот вариант предполагает значительные накладные расходы и поддерживается далеко не всеми провайдерами — даже в менее ресурсоемкой реализации, когда вместо эмуляции реального графического устройства виртуальной машине передается упрощенная абстракция (фреймбуфер). Иногда VNC-сервер привязывается к работающему X-серверу, но этот способ больше подходит для доступа к физической машине, а на виртуальной он создает ряд технических сложностей. Проще всего установить VNC-сервер со встроенным X-сервером. Он не требует наличия физических устройств (видеоадаптера, клавиатуры и мыши) или их эмуляции с помощью гипервизора, а потому подходит для VPS любого типа.
Установка и настройка
Нам потребуется виртуальная машина с Ubuntu Server 18.04 LTS в конфигурации по умолчанию. В стандартных репозиториях этого дистрибутива есть несколько серверов VNC: TightVNC, TigerVNC, x11vnc и прочие. Мы остановились на TigerVNC — актуальном форке не поддерживаемого разработчиком TightVNC. Настройка других серверов выполняется сходным образом. Также нужно выбрать окружение рабочего стола: оптимальным, на наш взгляд, вариантом будет XFCE из-за относительно невысоких требований к вычислительным ресурсам. Желающие могут установить другой DE или WM: тут все зависит от личных предпочтений, однако выбор ПО напрямую влияет на потребность в оперативной памяти и вычислительных ядрах.
Установка окружения рабочего стола со всеми зависимостями выполняется следующей командой:
Дальше необходимо инсталлировать сервер VNC:
Запускать его с правами суперпользователя — плохая идея. Создаем пользователя и группу:
Добавим пользователя в группу sudo, чтобы он мог решать связанные с администрированием задачи. Если такой потребности нет, этот шаг можно пропустить:
На следующем шаге нужно запустить сервер VNC с привилегиями пользователя vnc, чтобы создать безопасный пароль и конфигурационные файлы в каталоге
/.vnc/. Длина пароля может быть от 6 до 8 символов (лишние обрезаются). При необходимости также задается пароль только для просмотра, т.е. без доступа к клавиатуре и мыши. Следующие команды выполняются от имени пользователя vnc:
По умолчанию протокол RFB использует диапазон TCP-портов от 5900 до 5906 — это т.н. порты дисплея, каждый из которых соответствует экрану X-сервера. При этом порты ассоциированы с экранами от :0 по :6. Запущенный нами экземпляр сервера VNC слушает порт 5901 (экран :1). Прочие экземпляры могут работать на других портах с экранами :2, :3 и т. д. Перед дальнейшей настройкой нужно остановить сервер:
Команда должна вывести примерно такое сообщение: «Killing Xtigervnc process ID 18105… success!».
При запуске TigerVNC выполняет сценарий
/.vnc/xstartup для настройки параметров конфигурации. Создадим собственный скрипт, предварительно сохранив резервную копию имеющегося, если он существует:
Сеанс окружения рабочего стола XFCE запускается следующим скриптом xstartup:
Команда xrdb необходима, чтобы система VNC прочитала файл .Xresources в домашнем каталоге. Там пользователь может определить различные параметры графического рабочего стола: рендеринг шрифтов, цвета терминала, темы курсора и т.д. Сценарий необходимо сделать исполняемым:
На этом настройка сервера VNC завершена. Если запустить его командой vncserver -localhost no (от имени пользователя vnc), можно будет подключиться с заданным ранее паролем и увидеть такую картину:
Запуск службы через systemd
Ручной запуск сервера VNC плохо подходит для боевого применения, поэтому мы настроим системную службу. Команды выполняются от имени root (используем sudo). Для начала создаем новый юнит-файл для нашего сервера:
Символ @ в имени позволяет передавать аргумент для настройки службы. В нашем случае он задает порт дисплея VNC. Юнит-файл состоит из нескольких разделов:
Затем нужно уведомить systemd о появлении нового файла и активировать его:
Цифра 1 в имени задает номер экрана.
Останавливаем сервер VNC, запускаем его как службу и проверяем статус:
Если служба работает, мы должны получить примерно такой результат.
Подключение к рабочему столу
Наша конфигурация не использует шифрование, поэтому сетевые пакеты могут быть перехвачены злоумышленниками. К тому же в VNC-серверах достаточно часто находят уязвимости, так что открывать их для доступа из интернета не стоит. Для безопасного подключения на локальном компьютере нужно упаковать трафик в туннель SSH, а затем настроить клиент VNC. Под Windows можно использовать графический клиент SSH (например, PuTTY). Для безопасности TigerVNC на сервере слушает только localhost и недоступен напрямую из сетей общего пользования:
В Linux, FreeBSD, OS X и прочих UNIX-подобных ОС туннель с клиентского компьютера делается с помощью утилиты ssh (на сервере VNC должен быть запущен sshd):
Опция -L привязывает порт 5901 удаленного подключения к порту 5901 на localhost. Опция -C включает сжатие, а -N указывает утилите ssh на отсутствие необходимости выполнять удаленную команду. Опция -l задает login для удаленного входа в систему.
После настройки туннеля на локальном компьютере необходимо запустить клиент VNC и установить соединение с хостом 127.0.0.1:5901 (localhost:5901), использовав для доступа к серверу VNC заданный ранее пароль. Теперь мы можем безопасно взаимодействовать через шифрованный туннель с графическим окружением рабочего стола XFCE на VPS. На скриншоте в эмуляторе терминала запущена утилита top, чтобы показать незначительное потребление виртуальной машиной вычислительных ресурсов. Дальше все будет зависеть от пользовательских приложений.
Источник