В VNC zerbitzari bat edozein motatako makina birtual batean exekutatzea eztabaidatu genuen. Aukera honek desabantaila asko ditu, eta horietako nagusia datu-transmisioko kanalen errendimenduaren eskakizun handiak dira. Gaurkoan, Linux-en mahaigain grafiko batera konektatzen saiatuko gara RDP (Urrutiko Mahaiaren Protokoloa) bidez. VNC sistema RFB (Remote Framebuffer) protokoloa erabiliz pixel arrayak transmititzean oinarritzen da, eta RDP-k grafiko primitibo konplexuagoak eta maila altuko komandoak bidaltzeko aukera ematen du. Normalean Windows-en Urruneko mahaigaineko zerbitzuak ostatatzeko erabiltzen da, baina Linuxerako zerbitzariak ere eskuragarri daude.
Edukien taula:
Ingurune grafikoa instalatzea
Ubuntu Server 18.04 LTS duen makina birtual bat hartuko dugu bi konputazio nukleoekin, lau gigabyte RAM eta hogei gigabyteko disko gogor batekin (HDD). Konfigurazio ahulagoa ez da egokia mahaigain grafiko baterako, konpontzen diren zereginen araberakoa bada ere. Ez ahaztu Habrahabr10 promozio kodea erabiltzea zure eskaeran %10eko deskontua lortzeko.

Mahaigaineko ingurunea mendekotasun guztiekin instalatzea komando honekin egiten da:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utilsAurreko kasuan bezala, XFCE aukeratu genuen baliabide informatikoen eskakizun nahiko baxuak direla eta.
Zerbitzariaren eta softwarearen instalazioaren errusifikazioa
Askotan makina birtualak ingelesezko lokalizazioarekin soilik zabaltzen dira. Mahaigainean errusiera beharko duzu, erraz konfiguratzen dena. Lehenik eta behin, instala ditzagun sistema-programetarako itzulpenak:
sudo apt-get install language-pack-ruKonfigura dezagun lokalizazioa:
sudo update-locale LANG=ru_RU.UTF-8Efektu bera lor daiteke /etc/default/locale eskuz editatuz.
GNOME eta KDE lokalizaziorako, biltegiak language-pack-gnome-ru eta language-pack-kde-ru paketeak ditu - horiek beharko dituzu mahaigaineko ingurune hauetako programak erabiltzen badituzu. XFCEn, itzulpenak aplikazioekin instalatzen dira. Ondoren, hiztegiak instala ditzakezu:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dictGainera, itzulpenak instalatzea beharrezkoa izan daiteke aplikazio-programa batzuetan:
# Браузер 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-ruHonek mahaigaineko ingurunearen prestaketa amaitzen du, RDP zerbitzaria konfiguratzea besterik ez da geratzen.
RDP zerbitzari bat instalatzea eta konfiguratzea
Ubuntu biltegiek libreki banatutako Xrdp zerbitzari bat dute, eta guk erabiliko dugu:
sudo apt-get install xrdpDena ondo joan bada, zerbitzariak automatikoki abiatu beharko luke:
sudo systemctl status xrdp 
Xrdp zerbitzariak xrdp erabiltzaile-eskubideekin exekutatzen du eta, modu lehenetsian, /etc/ssl/private/ssl-cert-snakeoil.key ziurtagiria hartzen du, zurearekin ordezkatu daitekeena. Fitxategia irakurtzeko sarbidea izateko, erabiltzailea ssl-cert taldean gehitu behar duzu:
sudo adduser xrdp ssl-certEzarpen lehenetsiak /etc/default/xrdp fitxategian aurki daitezke, eta zerbitzariaren gainerako konfigurazio fitxategi guztiak /etc/xrdp direktorioan daude. Parametro nagusiak xrdp.ini fitxategian daude, eta hori ez da aldatu behar. Konfigurazioa ondo dokumentatuta dago, eta dagozkien eskuliburuak sartzen dira:
man xrdp.ini
man xrdp/etc/xrdp/startwm.sh script-a editatzea besterik ez da geratzen, erabiltzailearen saioa hastean exekutatzen dena. Lehenik eta behin, egin dezagun banaketaren script-aren babeskopia:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.shXFCE mahaigaineko ingurunea abiarazteko, honelako script bat beharko duzu:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4Kontuan izan: scriptetan hobe da fitxategi exekutagarrien bide osoa idaztea - hori ohitura ona da. Egin dezagun script-a exekutagarria eta une honetan Xrdp zerbitzariaren konfigurazioa amaitutzat jo daiteke:
sudo chmod 755 /etc/xrdp/startwm.shBerrabiarazi zerbitzaria:
sudo systemctl restart xrdp
Suebaki bat konfiguratzea
Lehenespenez, Xrdp-k TCP 3389 ataka entzuten du interfaze guztietan. Zerbitzari birtualaren konfigurazioaren arabera, baliteke Netfilter suebaki bat konfiguratu behar izatea. Linux-en normalean iptables utilitatea erabiliz egiten da, baina Ubuntun hobe da ufw erabiltzea. Bezeroaren IP helbidea ezagutzen bada, konfigurazioa komando honekin egiten da:
sudo ufw allow from IP_Address to any port 3389Edozein IPtako konexioak baimendu ditzakezu honela:
sudo ufw allow 3389RDP protokoloak enkriptatzea onartzen du, baina Xrdp zerbitzaria sare publikoetara erakustea ideia txarra da. Bezeroak IP finkorik ez badu, zerbitzariak localhost bakarrik entzun beharko luke segurtasuna areagotzeko. Hobe da SSH tunel baten bidez sartzea, eta horrek segurtasunez birbideratuko du trafikoa bezeroaren ordenagailutik. Antzeko ikuspegia dugu VNC zerbitzarirako.
RDP zerbitzari batera konektatzea
Mahaigaineko ingurunearekin lan egiteko, hobe da pribilegiorik gabeko erabiltzaile bereizi bat sortzea:
sudo adduser rdpuser 
Gehi dezagun erabiltzailea sudo taldean, administrazioarekin lotutako zereginak egin ditzan. Beharrik ez badago, urrats hau salta dezakezu:
sudo gpasswd -a rdpuser sudoZerbitzariarekin konekta zaitezke edozein RDP bezero erabiliz, Windows Urruneko Mahaigaineko Zerbitzuen bezeroa barne. Xrdp kanpoko interfazea entzuten ari bada, ez da ekintza gehigarririk beharko. Nahikoa da konexio-ezarpenetan VPS IP helbidea, erabiltzaile-izena eta pasahitza zehaztea. Konektatu ondoren, honelako zerbait ikusiko dugu:

Mahaigaineko ingurunearen hasierako konfigurazioa egin ondoren, mahaigain osoa lortuko dugu. Ikusten denez, ez du baliabide asko kontsumitzen, nahiz eta dena erabilitako aplikazioen araberakoa izango den.

Xrdp zerbitzariak localhost bakarrik entzuten badu, bezeroaren ordenagailuko trafikoa SSH tunel batean bildu beharko da (sshd VPS-n exekutatu behar da). Windows-en, SSH bezero grafiko bat erabil dezakezu (adibidez, PuTTY), eta UNIX sistemetan ssh utilitatea behar duzu:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ipTunela hasieratu ondoren, RDP bezeroa ez da gehiago urruneko zerbitzariarekin konektatuko, ostalari lokalera baizik.
Gailu mugikorrekin zailagoa da: tunel bat altxatzeko gai diren SSH bezeroak erosi beharko dira, eta iOS eta iPadOS-en, hirugarrenen aplikazioen atzeko planoko funtzionamendua zaila da, energia-kontsumoa oso ondo optimizatu delako. iPhone eta iPad-n, ezin izango duzu tunel bat sortu aparteko aplikazio batean; SSH bidez RDP konexioa ezarri dezakeen bilketa-aplikazio bat beharko duzu. Hala nola, adibidez .
Saioen kudeatzailea eta erabiltzaileen saioak
Erabiltzaile anitzeko lan egiteko gaitasuna Xrdp zerbitzarian zuzenean ezartzen da eta ez du konfigurazio gehigarririk behar. Systemd bidez zerbitzua hasi ondoren, prozesu bat daemon moduan exekutatzen da, 3389 atakan entzuten du eta localhost bidez komunikatzen da saio-kudeatzailearekin.
ps aux |grep xrdp 
sudo netstat -ap |grep xrdp 
Saio-kudeatzailea normalean ez da erabiltzaileentzat ikusten, bezeroaren ezarpenetan zehaztutako saioa eta pasahitza automatikoki transferitzen zaizkiolako. Hau gertatzen ez bada edo autentifikazioan erroreren bat badago, saio-hasierako leiho interaktibo bat agertuko da mahaigainaren ordez.

Saio-kudeatzailearen abiarazte automatikoa /etc/default/xrdp fitxategian zehazten da eta konfigurazioa /etc/xrdp/sesman.ini-n gordetzen da. Berez, honelako itxura du:
[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]Hemen ez duzu ezer aldatu behar, root eskubideekin saioa desgaitu besterik ez duzu egin behar (AllowRootLogin=false). Sisteman baimendutako erabiltzaile bakoitzarentzat, xrdp prozesu bereizi bat abiarazten da: saioa amaitu gabe deskonektatzen bazara, erabiltzaile-prozesuek lehenespenez exekutatzen jarraituko dute, eta berriro konekta zaitezke saiora. Ezarpenak /etc/xrdp/sesman.ini fitxategian alda daitezke ([Saioak] atalean).
Teklatuaren diseinuak aldatzea
Normalean ez dago arazorik bi norabideko arbelarekin, baina Errusiako teklatuaren diseinuarekin pixka bat jokatu beharko duzu (errusiako lokalizazioa dagoeneko egon beharko litzateke ). Editatu ditzagun Xrdp zerbitzariaren teklatuaren ezarpenak:
sudo nano /etc/xrdp/xrdp_keyboard.iniKonfigurazio fitxategiaren amaieran lerro hauek gehitu behar dituzu:
[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,ruFitxategia gorde eta Xrdp berrabiarazi besterik ez da geratzen:
sudo systemctl restart xrdpIkus dezakezunez, ez da zaila RDP zerbitzari bat Linux VPS batean konfiguratzea, baina Dagoeneko eztabaidatu dugu VNC konfigurazioaz. Teknologia horiez gain, badago beste aukera interesgarri bat: X3Go sistema aldatutako NX 2 protokoloa erabiliz. Hurrengo argitalpenean jorratuko dugu.
Iturria: www.habr.com
