VPS дар Linux бо интерфейси графикӣ: оғоз кардани сервери RDP дар Ubuntu 18.04

VPS дар Linux бо интерфейси графикӣ: оғоз кардани сервери RDP дар Ubuntu 18.04
В мақолаи қаблӣ мо кор кардани сервери VNC-ро дар мошини виртуалии ҳама гуна намуд муҳокима кардем. Ин вариант камбудиҳои зиёде дорад, ки яке аз онҳо талаботи баланд барои интиқоли каналҳои интиқоли маълумот мебошад. Имрӯз мо кӯшиш мекунем, ки ба мизи кории графикӣ дар Linux тавассути RDP (Protocol Desktop Remote) пайваст шавем. Системаи VNC ба интиқоли массивҳои пикселҳо бо истифода аз протоколи RFB (Remote Framebuffer) асос ёфтааст ва RDP ба шумо имкон медиҳад, ки примитивҳои графикаи мураккабтар ва фармонҳои сатҳи баланд фиристед. Он маъмулан барои ҷойгиркунии хидматҳои мизи кории дурдаст дар Windows истифода мешавад, аммо серверҳо барои Linux низ дастрасанд.

Мундариҷа:

Насб кардани муҳити графикӣ
Русикунонии сервер ва насби нармафзор
Насб ва танзим кардани сервери RDP
Танзими девори девор
Пайвастшавӣ ба сервери RDP
Менеҷери сессия ва ҷаласаҳои корбар
Гузаронидани тарҳҳои клавиатура

Насб кардани муҳити графикӣ

Мо як мошини маҷозӣ бо Ubuntu Server 18.04 LTS бо ду ядрои компютерӣ, чаҳор гигабайт RAM ва бист гигабайт диски сахт (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-ru

Биёед локализатсияро танзим кунем:

sudo update-locale LANG=ru_RU.UTF-8

Ҳамин таъсирро тавассути таҳрири дастӣ /etc/default/locale ба даст овардан мумкин аст.

Барои локализатсияи GNOME ва KDE, анбор дорои бастаҳои language-pack-gnome-ru ва language-pack-kde-ru - ба шумо лозим меояд, ки агар шумо барномаҳоро аз ин муҳитҳои мизи корӣ истифода баред. Дар 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 ҳастанд, ки тағир додан лозим нест. Конфигуратсия хуб ҳуҷҷатгузорӣ карда шудааст ва саҳифаҳои мувофиқ дохил карда шудаанд:

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 Remote Desktop Services. Агар Xrdp интерфейси берунаро гӯш кунад, ягон амали иловагӣ лозим нахоҳад шуд. Дар танзимоти пайвастшавӣ нишон додани суроғаи IP VPS, номи корбар ва парол кофӣ аст. Пас аз пайвастшавӣ, мо чунин чизеро мебинем:

VPS дар Linux бо интерфейси графикӣ: оғоз кардани сервери RDP дар Ubuntu 18.04
Пас аз насби ибтидоии муҳити мизи корӣ, мо мизи кории мукаммал мегирем. Тавре ки шумо мебинед, он захираҳои зиёдеро истеъмол намекунад, гарчанде ки ҳама чиз аз замимаҳои истифодашуда вобаста аст.

VPS дар Linux бо интерфейси графикӣ: оғоз кардани сервери RDP дар Ubuntu 18.04
Агар сервери Xrdp танҳо хости маҳаллиро гӯш кунад, трафик дар компютери муштарӣ бояд ба нақби SSH баста шавад (sshd бояд дар VPS кор кунад). Дар Windows шумо метавонед муштарии графикии SSH-ро истифода баред (масалан, PuTTY) ва дар системаҳои UNIX ба шумо утилитаи ssh лозим аст:

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

Пас аз ба кор андохтани нақб, муштарии RDP дигар на ба сервери дурдаст, балки ба мизбони маҳаллӣ пайваст мешавад.

Бо дастгоҳҳои мобилӣ ин мушкилтар аст: муштариёни SSH, ки қодиранд нақб бардоранд, бояд харидорӣ шаванд ва дар 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
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false

[Sessions]

Ба шумо лозим нест, ки чизеро дар ин ҷо тағир диҳед, шумо танҳо бояд вурудро бо ҳуқуқи реша хомӯш кунед (AllowRootLogin=false). Барои ҳар як корбаре, ки дар система ваколатдор шудааст, раванди xrdp-и алоҳида оғоз мешавад: агар шумо бидуни анҷоми сессия ҷудо шавед, равандҳои корбар ба таври нобаёнӣ кор мекунанд ва шумо метавонед дубора ба сессия пайваст шавед. Танзимотро дар файли /etc/xrdp/sesman.ini (қисмати [Иҷлосияҳо]) тағир додан мумкин аст.

Гузаронидани тарҳҳои клавиатура

Одатан бо буфери дуҷониба мушкилот вуҷуд надорад, аммо бо тарҳбандии клавиатураи русӣ шумо бояд каме бозӣ кунед (маҳалли русӣ бояд аллакай бошад. насб карда шудааст). Биёед танзимоти клавиатураи сервери 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-ро муҳокима кардем. Илова ба ин технологияҳо, боз як варианти ҷолиб вуҷуд дорад: системаи X3Go бо истифода аз протоколи тағирёфтаи NX 2. Мо бо он дар нашри оянда сару кор хоҳем кард.

VPS дар Linux бо интерфейси графикӣ: оғоз кардани сервери RDP дар Ubuntu 18.04

Манбаъ: will.com

Илова Эзоҳ