Π
Talaan ng nilalaman:
Pag-install ng graphical na kapaligiran
Kukuha kami ng virtual machine na may Ubuntu Server 18.04 LTS na may dalawang computing core, apat na gigabytes ng RAM at isang dalawampung gigabyte hard drive (HDD). Ang isang mas mahinang configuration ay hindi angkop para sa isang graphical na desktop, bagama't ito ay depende sa mga gawaing niresolba. Huwag kalimutang gamitin ang promo code na Habrahabr10 para makakuha ng 10% discount sa iyong order.
Ang pag-install ng desktop environment kasama ang lahat ng dependencies ay ginagawa gamit ang sumusunod na command:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Tulad ng sa nakaraang kaso, pinili namin ang XFCE dahil sa medyo mababang computing resource kinakailangan nito.
Russification ng server at pag-install ng software
Kadalasan, ang mga virtual machine ay na-deploy lamang sa English localization. Sa desktop maaaring kailanganin mo ang Russian, na madaling i-set up. Una, mag-install tayo ng mga pagsasalin para sa mga system program:
sudo apt-get install language-pack-ru
I-set up natin ang localization:
sudo update-locale LANG=ru_RU.UTF-8
Ang parehong epekto ay maaaring makamit sa pamamagitan ng manu-manong pag-edit ng /etc/default/locale.
Para sa localization ng GNOME at KDE, ang repository ay mayroong language-pack-gnome-ru at language-pack-kde-ru packages - kakailanganin mo ang mga ito kung gagamit ka ng mga program mula sa mga desktop environment na ito. Sa XFCE, naka-install ang mga pagsasalin kasama ng mga application. Susunod na maaari mong i-install ang mga diksyunaryo:
# Π‘Π»ΠΎΠ²Π°ΡΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΡΠΎΠ³ΡΠ°ΡΠΈΠΈ
sudo apt-get install hunspell hunspell-ru
# Π’Π΅Π·Π°ΡΡΡΡ Π΄Π»Ρ LibreOffice
sudo apt-get install mythes-ru
# ΠΠ½Π³Π»ΠΎ-ΡΡΡΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DICT
sudo apt-get install mueller7-dict
Bilang karagdagan, maaaring kailanganin ang pag-install ng mga pagsasalin para sa ilang mga application program:
# ΠΡΠ°ΡΠ·Π΅Ρ 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
Kinukumpleto nito ang paghahanda ng desktop environment, ang natitira na lang ay i-configure ang RDP server.
Pag-install at pag-configure ng isang RDP server
Ang mga repositoryo ng Ubuntu ay may malayang ipinamamahaging Xrdp server, na gagamitin namin:
sudo apt-get install xrdp
Kung naging maayos ang lahat, dapat na awtomatikong magsimula ang server:
sudo systemctl status xrdp
Gumagana ang Xrdp server na may mga karapatan ng gumagamit ng xrdp at bilang default ay kinukuha ang /etc/ssl/private/ssl-cert-snakeoil.key certificate, na maaaring palitan ng iyong sarili. Upang magkaroon ng access na basahin ang file, kailangan mong idagdag ang user sa ssl-cert group:
sudo adduser xrdp ssl-cert
Ang mga default na setting ay matatagpuan sa /etc/default/xrdp file, at lahat ng iba pang mga file ng configuration ng server ay matatagpuan sa /etc/xrdp na direktoryo. Ang mga pangunahing parameter ay nasa xrdp.ini file, na hindi kailangang baguhin. Ang config ay mahusay na dokumentado, at ang kaukulang mga manpage ay kasama:
man xrdp.ini
man xrdp
Ang natitira na lang ay i-edit ang /etc/xrdp/startwm.sh script, na isasagawa kapag sinimulan ang session ng user. Una, gumawa tayo ng backup na kopya ng script mula sa pamamahagi:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh
Upang simulan ang XFCE desktop environment, kakailanganin mo ng script na tulad nito:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4
Mangyaring tandaan: sa mga script mas mahusay na isulat ang buong landas sa mga maipapatupad na file - ito ay isang magandang ugali. Gawin nating executable ang script at sa puntong ito ay maituturing na kumpleto ang setup ng Xrdp server:
sudo chmod 755 /etc/xrdp/startwm.sh
I-restart ang server:
sudo systemctl restart xrdp
Pagse-set up ng firewall
Bilang default, nakikinig ang Xrdp sa TCP port 3389 sa lahat ng mga interface. Depende sa configuration ng virtual server, maaaring kailanganin mong i-configure ang isang Netfilter firewall. Sa Linux ito ay karaniwang ginagawa gamit ang iptables utility, ngunit sa Ubuntu mas mainam na gumamit ng ufw. Kung ang IP address ng kliyente ay kilala, ang pagsasaayos ay isinasagawa gamit ang sumusunod na utos:
sudo ufw allow from IP_Address to any port 3389
Maaari mong payagan ang mga koneksyon mula sa anumang IP tulad nito:
sudo ufw allow 3389
Sinusuportahan ng RDP protocol ang pag-encrypt, ngunit ang paglalantad ng Xrdp server sa mga pampublikong network ay isang masamang ideya. Kung ang kliyente ay walang nakapirming IP, ang server ay dapat lamang makinig sa localhost upang madagdagan ang seguridad. Pinakamainam na i-access ito sa pamamagitan ng isang SSH tunnel, na ligtas na magre-redirect ng trapiko mula sa computer ng kliyente. Mayroon kaming isang katulad na diskarte
Kumokonekta sa isang RDP server
Upang gumana sa kapaligiran ng desktop, mas mahusay na lumikha ng isang hiwalay na walang pribilehiyo na gumagamit:
sudo adduser rdpuser
Idagdag natin ang user sa sudo group para magawa niya ang mga gawaing nauugnay sa administrasyon. Kung walang ganoong pangangailangan, maaari mong laktawan ang hakbang na ito:
sudo gpasswd -a rdpuser sudo
Maaari kang kumonekta sa server gamit ang anumang RDP client, kabilang ang built-in na Windows Remote Desktop Services client. Kung ang Xrdp ay nakikinig sa panlabas na interface, walang karagdagang mga aksyon na kakailanganin. Ito ay sapat na upang tukuyin ang VPS IP address, username at password sa mga setting ng koneksyon. Pagkatapos kumonekta, makakakita tayo ng ganito:
Pagkatapos ng paunang pag-setup ng desktop environment, makakakuha tayo ng ganap na desktop. Tulad ng nakikita mo, hindi ito kumonsumo ng maraming mapagkukunan, kahit na ang lahat ay nakasalalay sa mga application na ginamit.
Kung ang Xrdp server ay nakikinig lamang sa localhost, ang trapiko sa client computer ay kailangang ma-package sa isang SSH tunnel (ang sshd ay dapat na tumatakbo sa VPS). Sa Windows, maaari kang gumamit ng graphical na SSH client (halimbawa, PuTTY), at sa UNIX system kailangan mo ng ssh utility:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip
Pagkatapos masimulan ang tunnel, hindi na kumonekta ang RDP client sa malayong server, ngunit sa lokal na host.
Mas mahirap ito sa mga mobile device: Ang mga kliyente ng SSH na may kakayahang magtaas ng tunnel ay kailangang bilhin, at sa iOS at iPadOS, mahirap ang pagpapatakbo sa background ng mga third-party na application dahil sa napakahusay na pag-optimize ng pagkonsumo ng enerhiya. Sa iPhone at iPad, hindi ka makakagawa ng tunnel sa isang hiwalay na application; kakailanganin mo ng harvester application na makakapagtatag mismo ng RDP connection sa pamamagitan ng SSH. Tulad ng, halimbawa
Session Manager at User Session
Direktang ipinapatupad sa Xrdp server ang kakayahang gumawa ng maraming user at hindi nangangailangan ng karagdagang configuration. Pagkatapos simulan ang serbisyo sa pamamagitan ng systemd, ang isang proseso ay tumatakbo sa daemon mode, nakikinig sa port 3389 at nakikipag-ugnayan sa pamamagitan ng localhost sa session manager.
ps aux |grep xrdp
sudo netstat -ap |grep xrdp
Ang session manager ay karaniwang hindi nakikita ng mga user, dahil ang login at password na tinukoy sa mga setting ng client ay awtomatikong inililipat dito. Kung hindi ito nangyari o may error sa panahon ng pagpapatunay, isang interactive na window sa pag-log in ang lalabas sa halip na ang desktop.
Ang awtomatikong paglunsad ng session manager ay tinukoy sa /etc/default/xrdp file, at ang configuration ay naka-store sa /etc/xrdp/sesman.ini. Bilang default, ganito ang hitsura nito:
[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]
Hindi mo kailangang baguhin ang anuman dito, kailangan mo lang i-disable ang pag-login gamit ang mga karapatan sa ugat (AllowRootLogin=false). Para sa bawat user na pinahintulutan sa system, ang isang hiwalay na proseso ng xrdp ay inilunsad: kung ididiskonekta mo nang hindi tinatapos ang session, ang mga proseso ng user ay patuloy na tatakbo bilang default, at maaari kang kumonekta muli sa session. Maaaring baguhin ang mga setting sa /etc/xrdp/sesman.ini file ([Sessions] section).
Pagpapalit ng mga layout ng keyboard
Karaniwang walang mga problema sa isang two-way na clipboard, ngunit sa layout ng keyboard ng Russian kailangan mong maglaro nang kaunti (ang lokal na Russian ay dapat na
sudo nano /etc/xrdp/xrdp_keyboard.ini
Kailangan mong idagdag ang mga sumusunod na linya sa dulo ng configuration file:
[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
Ang natitira na lang ay i-save ang file at i-restart ang Xrdp:
sudo systemctl restart xrdp
Tulad ng nakikita mo, hindi mahirap mag-set up ng RDP server sa isang Linux VPS, ngunit
Pinagmulan: www.habr.com