VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04
В предишната статия Разгледахме старта на VNC сървър на виртуална машина от всякакъв тип. Този вариант има много недостатъци, основният от които са високите изисквания към пропускната способност на каналите за предаване на данни. Днес ще се опитаме да се свържем с графичния работен плот на Linux чрез RDP (Remote Desktop Protocol). Системата VNC е базирана на предаване на масиви от пиксели чрез протокола RFB (Remote Framebuffer), докато RDP позволява изпращането на по-сложни графични примитиви и високонаправленски команди. Обикновено се използва за организация на услуги за отдалечен работен плот в Windows, но сървъри за Linux също са налични.

Съдържание:

Инсталиране на графично обкръжение
Русификация на сървъра и инсталиране на софтуер
Инсталиране и конфигуриране на RDP сървър
Конфигуриране на защитна стена
Свързване с RDP сървър
Мениджър на сесии и сесии на потребители
Превключване на клавиатурни разположения

Инсталиране на графично обкръжение

Ще вземем виртуална машина с Ubuntu Server 18.04 LTS с два процесорни ядра, четири гигабайта оперативна памет и хард диск (HDD) с капацитет от двадесет гигабайта. По-слабата конфигурация не е подходяща за графичен десктоп, въпреки че това зависи от решаваните задачи. Не забравяйте да използвате промокод Habrahabr10, за да получите 10% отстъпка при поръчка.

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04
Инсталирането на работната среда с всички зависимости се извършва със следната команда:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Както в предишния случай, избрахме XFCE поради относително ниските изисквания към изчислителните ресурси.

Русификация на сървъра и инсталиране на софтуер

Често виртуалните машини се разгръщат само с английска локализация. На десктопа може да се изисква руски, което не е трудно за настройка. Първо ще инсталираме преводите за системните програми:

sudo apt-get install language-pack-bg

Нека настроим локализацията:

sudo update-locale LANG=bg_BG.UTF-8

Същия ефект може да се постигне, като редактирате ръчно файла /etc/default/locale.

За локализация на GNOME и KDE в репозиториите има пакети language-pack-gnome-bg и language-pack-kde-bg — те ще са необходими, ако ще използвате програми от тези работни среди. В XFCE преводите се инсталират заедно с приложенията. След това може да инсталирате речници:

# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru

# Тезаурус для LibreOffice
sudo apt-get install mythes-ru

# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict

Освен това, инсталацията на преводи може да е необходима за някои приложения:

# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru

# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru

# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru

С това подготовката на работния плот е завършена, остава да настроим RDP сървъра.

Инсталиране и конфигуриране на RDP сървър

В репозиториите на Ubuntu има свободно разпространяващ се Xrdp сървър, от който ще се възползваме:

sudo apt-get install xrdp

Ако всичко е преминало гладко, сървърът трябва да стартира автоматично:

sudo systemctl status xrdp

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04
Сървърът Xrdp стартира с права на потребителя xrdp и по подразбиране взема сертификат от /etc/ssl/private/ssl-cert-snakeoil.key, който може да бъде заменен с ваш собствен. За достъп до файла е необходимо да добавите потребителя към групата ssl-cert:

sudo adduser xrdp ssl-cert

Настройките по подразбиране могат да бъдат намерени в файла /etc/default/xrdp, а всички други конфигурационни файлове на сървъра са в директорията /etc/xrdp. Основните параметри са в файла xrdp.ini, който не е необходимо да се променя. Конфигурацията е добре документирана и включва съответстващите manpages:

man xrdp.ini
man xrdp

Остана само да редактираме скрипта /etc/xrdp/startwm.sh, който се изпълнява при инициализация на потребителската сесия. Първо ще направим резервно копие на скрипта от дистрибуцията:

sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh

За да стартирате XFCE работната среда, ще е необходим скрипт със следното съдържание:

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

Обърнете внимание: в скриптовете е най-добре да посочвате пълния път до изпълнимите файлове — това е добра практика. Ще направим скрипта изпълняем и с това конфигурацията на Xrdp сървъра може да се счита за завършена:

sudo chmod 755 /etc/xrdp/startwm.sh

Рестартираме сървъра:

sudo systemctl restart xrdp

Конфигуриране на защитна стена

По подразбиране Xrdp слуша TCP порт 3389 на всички интерфейси. В зависимост от конфигурацията на виртуалния сървър може да се наложи настройване на защитната стена Netfilter. В Linux това обикновено се прави чрез инструмента iptables, но в Ubuntu е по-добре да се използва ufw. Ако IP адресът на клиента е известен, настройването се извършва със следната команда:

sudo ufw allow from IP_Address to any port 3389

Разрешаването на връзки от всякакъв IP може да стане така:

sudo ufw allow 3389

RDP протоколът поддържа шифроване, но отварянето на достъпа до сървъра Xrdp от публични мрежи е лоша идея. Ако клиентът няма фиксиран IP, за повишаване на сигурността сървърът трябва да слуша само на localhost. Достъпът до него е по-добре да се настрои чрез SSH тунел, който безопасно пренасочва трафика от клиентския компютър. Подобен подход ние използвахме в предишната статия за VNC сървъра.

Свързване с RDP сървър

За работа с работната среда е по-добре да създадете отделен непривилегирован потребител:

sudo adduser rdpuser

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04
Добавяме потребителя в групата sudo, за да може да решава свързани с администрирането задачи. Ако няма такава необходимост, тази стъпка може да бъде пропусната:

sudo gpasswd -a rdpuser sudo

Можете да се свържете със сървъра с помощта на всеки RDP клиент, включително вградения клиент за услуги на отдалечени работни места на Windows. Ако Xrdp слуша на външния интерфейс, няма нужда от допълнителни действия. Достатъчно е да посочите IP адреса на VPS, потребителското име и паролата в настройките за връзка. След свързването ще видим нещо подобно:

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04
След първоначалната настройка на работната среда ще получим напълно функциониращ десктоп. Както виждате, той не консумира много ресурси, макар че всичко ще зависи от използваните приложения.

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04
Ако сървърът Xrdp слуша само localhost, на клиентския компютър трафикът трябва да бъде опакован в SSH тунел (на VPS трябва да е стартиран sshd). Под Windows можете да използвате графичен SSH клиент (например, PuTTY), а в UNIX-системите е необходима утилита ssh:

ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip

След инициализацията на тунела клиентът на RDP няма да се свързва с отдалечения сървър, а с локалния хост.

С мобилни устройства е по-трудно: клиентите, способни да създадат тунел, трябва да се закупят, освен това в iOS и iPadOS фоновата работа на трети приложения е затруднена поради много добрата оптимизация на енергопотреблението. На iPhone и iPad не е възможно да се създаде тунел в отделно приложение — необходимо е приложение-комбайн, което само умеес да установява RDP свързване през SSH. Например, такова приложение е Remoter Pro.

Мениджър на сесии и сесии на потребители

Възможността за работа с множество потребители е реализирана директно в сървъра Xrdp и не изисква допълнителна настройка. След стартиране на услугата чрез systemd един процес работи в режим на демон, слуша порт 3389 и взаимодейства чрез localhost с мениджъра на сесии.

ps aux |grep xrdp

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04
Мениджърът на сесии обикновено не е видим за потребителите, защото зададените в настройките на клиента име и парола се предават автоматично. Ако това не се е случило или при удостоверяване е възникнала грешка, вместо работния плот ще се появи интерактивен прозорец за вход в системата.

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04
Автоматичното стартиране на мениджъра на сесии е описано в файла /etc/default/xrdp, а конфигурацията се съхранява в /etc/xrdp/sesman.ini. По подразбиране изглежда приблизително така:

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; Когато AlwaysGroupCheck=false, достъпът ще бъде позволен
; ако групата TerminalServerUsers не е дефинирана.
AlwaysGroupCheck=false

[Sessions]

Тук можете да не променяте нищо, само е необходимо да забраните входа с права на root (AllowRootLogin=false). За всеки упълномощен в системата потребител се стартира отделен процес xrdp: ако се изключите, без да приключите сесията, потребителските процеси по подразбиране ще продължат да работят, а до сесията ще можете да се свържете отново. Настройките могат да бъдат променени в файла /etc/xrdp/sesman.ini (секция [Sessions]).

Превключване на клавиатурни разположения

С двете страни на буфера за обмен не би трябвало да има проблеми, но с руската клавиатурна разпоредба ще трябва да се поработи малко (руската локализация трябва да е вече инсталирана). Нека редактираме клавиатурните настройки на сървъра Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

В края на конфигурационния файл трябва да добавим следните редове:

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru

Следва да запазим файла и да рестартираме Xrdp:

sudo systemctl restart xrdp

Както виждате, повдигането на RDP сървър на Linux VPS не е трудно, а в предишната статия ние вече разгледахме настройката на VNC. Освен тези технологии, има и още една интересна опция: системата X2Go, която използва модифициран протокол NX 3. С нея ще се запознаем в следващата публикация.

VPS на Linux с графичен интерфейс: стартиране на RDP сървър на Ubuntu 18.04

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster