В
Bekreftelse:
Installere det grafiske miljøet
Vi tar en virtuell maskin med Ubuntu Server 18.04 LTS med to datakjerner, fire gigabyte RAM og en tjue gigabyte harddisk (HDD). En svakere konfigurasjon er ikke egnet for et grafisk skrivebord, selv om dette avhenger av oppgavene som løses. Ikke glem å bruke kampanjekoden Habrahabr10 for å få 10 % rabatt på bestillingen din.
Installasjon av skrivebordsmiljøet med alle avhengigheter gjøres med følgende kommando:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Som i forrige tilfelle, valgte vi XFCE på grunn av dets relativt lave krav til dataressurser.
Russifisering av server og programvareinstallasjon
Ofte distribueres virtuelle maskiner bare med engelsk lokalisering. På skrivebordet trenger du kanskje russisk, som er enkelt å sette opp. Først, la oss installere oversettelser for systemprogrammer:
sudo apt-get install language-pack-ru
La oss sette opp lokalisering:
sudo update-locale LANG=ru_RU.UTF-8
Den samme effekten kan oppnås ved å manuelt redigere /etc/default/locale.
For lokalisering av GNOME og KDE har depotet pakkene language-pack-gnome-ru og language-pack-kde-ru - du trenger dem hvis du bruker programmer fra disse skrivebordsmiljøene. I XFCE er oversettelser installert med applikasjoner. Deretter kan du installere ordbøkene:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict
I tillegg kan installasjon av oversettelser være nødvendig for noen applikasjonsprogrammer:
# Браузер 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
Dette fullfører forberedelsen av skrivebordsmiljøet, alt som gjenstår er å konfigurere RDP-serveren.
Installere og konfigurere en RDP-server
Ubuntu-lagrene har en fritt distribuert Xrdp-server, som vi vil bruke:
sudo apt-get install xrdp
Hvis alt gikk bra, bør serveren starte automatisk:
sudo systemctl status xrdp
Xrdp-serveren kjører med xrdp-brukerrettigheter og tar som standard /etc/ssl/private/ssl-cert-snakeoil.key-sertifikatet, som kan erstattes med ditt eget. For å få tilgang til å lese filen, må du legge til brukeren i ssl-cert-gruppen:
sudo adduser xrdp ssl-cert
Standardinnstillingene finnes i /etc/default/xrdp-filen, og alle andre serverkonfigurasjonsfiler er plassert i /etc/xrdp-katalogen. Hovedparametrene er i xrdp.ini-filen, som ikke trenger å endres. Konfigurasjonen er godt dokumentert, og de tilsvarende manpagene er inkludert:
man xrdp.ini
man xrdp
Alt som gjenstår er å redigere /etc/xrdp/startwm.sh-skriptet, som kjøres når brukerøkten initialiseres. La oss først lage en sikkerhetskopi av skriptet fra distribusjonen:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh
For å starte XFCE-skrivebordsmiljøet, trenger du et skript som dette:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4
Vær oppmerksom på: i skript er det bedre å skrive hele banen til de kjørbare filene - dette er en god vane. La oss gjøre skriptet kjørbart og på dette tidspunktet kan oppsettet av Xrdp-serveren anses som fullført:
sudo chmod 755 /etc/xrdp/startwm.sh
Start serveren på nytt:
sudo systemctl restart xrdp
Brannmurkonfigurasjon
Som standard lytter Xrdp til TCP-port 3389 på alle grensesnitt. Avhengig av den virtuelle serverkonfigurasjonen, kan det hende du må konfigurere en Netfilter-brannmur. På Linux gjøres dette vanligvis ved å bruke iptables-verktøyet, men på Ubuntu er det bedre å bruke ufw. Hvis klientens IP-adresse er kjent, utføres konfigurasjonen med følgende kommando:
sudo ufw allow from IP_Address to any port 3389
Du kan tillate tilkoblinger fra hvilken som helst IP som dette:
sudo ufw allow 3389
RDP-protokollen støtter kryptering, men å utsette Xrdp-serveren for offentlige nettverk er en dårlig idé. Hvis klienten ikke har en fast IP, bør serveren kun lytte til localhost for å øke sikkerheten. Det er best å få tilgang til den via en SSH-tunnel, som sikkert vil omdirigere trafikk fra klientdatamaskinen. Vi har en lignende tilnærming
Kobler til en RDP-server
For å jobbe med skrivebordsmiljøet er det bedre å opprette en egen uprivilegert bruker:
sudo adduser rdpuser
La oss legge brukeren til sudo-gruppen slik at han kan utføre administrasjonsrelaterte oppgaver. Hvis det ikke er et slikt behov, kan du hoppe over dette trinnet:
sudo gpasswd -a rdpuser sudo
Du kan koble til serveren ved å bruke en hvilken som helst RDP-klient, inkludert den innebygde Windows Remote Desktop Services-klienten. Hvis Xrdp lytter til det eksterne grensesnittet, vil ingen ytterligere handlinger være nødvendig. Det er nok å spesifisere VPS IP-adresse, brukernavn og passord i tilkoblingsinnstillingene. Etter tilkobling vil vi se noe slikt:
Etter det første oppsettet av skrivebordsmiljøet vil vi få et fullverdig skrivebord. Som du kan se, bruker det ikke mange ressurser, selv om alt vil avhenge av applikasjonene som brukes.
Hvis Xrdp-serveren kun lytter til localhost, må trafikken på klientdatamaskinen pakkes inn i en SSH-tunnel (sshd må kjøres på VPS). På Windows kan du bruke en grafisk SSH-klient (for eksempel PuTTY), og på UNIX-systemer trenger du ssh-verktøyet:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip
Etter at tunnelen er initialisert, vil ikke RDP-klienten lenger koble til den eksterne serveren, men til den lokale verten.
Det er vanskeligere med mobile enheter: SSH-klienter som er i stand til å heve en tunnel må kjøpes, og i iOS og iPadOS er bakgrunnsdriften til tredjepartsapplikasjoner vanskelig på grunn av for god optimalisering av energiforbruket. På iPhone og iPad vil du ikke kunne lage en tunnel i en egen applikasjon; du trenger en innhøstingsapplikasjon som selv kan opprette en RDP-forbindelse via SSH. Slik som for eksempel
Session Manager og brukerøkter
Muligheten til flerbrukerarbeid implementeres direkte i Xrdp-serveren og krever ikke ytterligere konfigurasjon. Etter å ha startet tjenesten via systemd, kjører en prosess i daemon-modus, lytter på port 3389 og kommuniserer gjennom localhost med sesjonsbehandleren.
ps aux |grep xrdp
sudo netstat -ap |grep xrdp
Sesjonsbehandleren er vanligvis ikke synlig for brukere, fordi påloggingsinformasjonen og passordet som er spesifisert i klientinnstillingene, overføres til den automatisk. Hvis dette ikke skjer eller det er en feil under autentisering, vil et interaktivt påloggingsvindu vises i stedet for skrivebordet.
Automatisk oppstart av øktbehandlingen er spesifisert i filen /etc/default/xrdp, og konfigurasjonen lagres i /etc/xrdp/sesman.ini. Som standard ser det omtrent slik ut:
[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]
Du trenger ikke å endre noe her, du må bare deaktivere pålogging med rotrettigheter (AllowRootLogin=false). For hver bruker som er autorisert i systemet, startes en egen xrdp-prosess: Hvis du kobler fra uten å avslutte økten, vil brukerprosesser fortsette å kjøre som standard, og du kan koble til økten igjen. Innstillinger kan endres i filen /etc/xrdp/sesman.ini ([Sessions]-delen).
Bytte tastaturoppsett
Det er vanligvis ingen problemer med et toveis utklippstavle, men med det russiske tastaturoppsettet må du leke litt (den russiske lokaliteten bør allerede være
sudo nano /etc/xrdp/xrdp_keyboard.ini
Du må legge til følgende linjer på slutten av konfigurasjonsfilen:
[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
Alt som gjenstår er å lagre filen og starte Xrdp på nytt:
sudo systemctl restart xrdp
Som du kan se, er det ikke vanskelig å sette opp en RDP-server på en Linux VPS, men
Kilde: www.habr.com