В
авление:
Het installeren van de grafische omgeving
We nemen een virtuele machine met Ubuntu Server 18.04 LTS met twee rekenkernen, vier gigabyte RAM en een harde schijf (HDD) van twintig gigabyte. Een zwakkere configuratie is niet geschikt voor een grafische desktop, hoewel dit afhankelijk is van de taken die worden opgelost. Vergeet niet de promotiecode Habrahabr10 te gebruiken om 10% korting te krijgen op uw bestelling.
Het installeren van de desktopomgeving met alle afhankelijkheden gebeurt met het volgende commando:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Net als in het vorige geval hebben we voor XFCE gekozen vanwege de relatief lage vereisten voor computerbronnen.
Russificatie van de server en software-installatie
Vaak worden virtuele machines alleen ingezet met Engelse lokalisatie. Op de desktop heb je mogelijk Russisch nodig, wat eenvoudig in te stellen is. Laten we eerst vertalingen voor systeemprogramma's installeren:
sudo apt-get install language-pack-ru
Laten we lokalisatie instellen:
sudo update-locale LANG=ru_RU.UTF-8
Hetzelfde effect kan worden bereikt door het bestand /etc/default/locale.
Voor de lokalisatie van GNOME en KDE heeft de repository de pakketten taalpakket-gnome-ru en taalpakket-kde-ru - u zult deze nodig hebben als u programma's uit deze bureaubladomgevingen gebruikt. In XFCE worden vertalingen bij applicaties geïnstalleerd. Vervolgens kunt u de woordenboeken installeren:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict
Bovendien kan voor sommige toepassingsprogramma's de installatie van vertalingen vereist zijn:
# Браузер 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
Hiermee is de voorbereiding van de desktopomgeving voltooid, het enige dat overblijft is het configureren van de RDP-server.
Een RDP-server installeren en configureren
De Ubuntu-repository's hebben een vrij gedistribueerde Xrdp-server, die we zullen gebruiken:
sudo apt-get install xrdp
Als alles goed is gegaan, zou de server automatisch moeten opstarten:
sudo systemctl status xrdp
De Xrdp-server draait met xrdp-gebruikersrechten en gebruikt standaard het /etc/ssl/private/ssl-cert-snakeoil.key-certificaat, dat kan worden vervangen door uw eigen certificaat. Om toegang te krijgen om het bestand te lezen, moet u de gebruiker toevoegen aan de ssl-cert groep:
sudo adduser xrdp ssl-cert
De standaardinstellingen zijn te vinden in het bestand /etc/default/xrdp, en alle andere serverconfiguratiebestanden bevinden zich in de directory /etc/xrdp. De belangrijkste parameters bevinden zich in het xrdp.ini-bestand, dat niet hoeft te worden gewijzigd. De configuratie is goed gedocumenteerd en de bijbehorende manpagina's zijn inbegrepen:
man xrdp.ini
man xrdp
Het enige dat overblijft is het bewerken van het script /etc/xrdp/startwm.sh, dat wordt uitgevoerd wanneer de gebruikerssessie wordt geïnitialiseerd. Laten we eerst een back-up maken van het script uit de distributie:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh
Om de XFCE-desktopomgeving te starten, hebt u een script als dit nodig:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4
Let op: in scripts is het beter om het volledige pad naar de uitvoerbare bestanden te schrijven - dit is een goede gewoonte. Laten we het script uitvoerbaar maken en op dit punt kan de installatie van de Xrdp-server als voltooid worden beschouwd:
sudo chmod 755 /etc/xrdp/startwm.sh
Start de server opnieuw op:
sudo systemctl restart xrdp
Een firewall instellen
Standaard luistert Xrdp op alle interfaces naar TCP-poort 3389. Afhankelijk van de configuratie van de virtuele server moet u mogelijk een Netfilter-firewall configureren. Op Linux gebeurt dit meestal met behulp van het hulpprogramma iptables, maar op Ubuntu is het beter om ufw te gebruiken. Als het IP-adres van de client bekend is, wordt de configuratie uitgevoerd met het volgende commando:
sudo ufw allow from IP_Address to any port 3389
U kunt verbindingen vanaf elk IP-adres als volgt toestaan:
sudo ufw allow 3389
Het RDP-protocol ondersteunt encryptie, maar het blootstellen van de Xrdp-server aan openbare netwerken is een slecht idee. Als de client geen vast IP-adres heeft, moet de server alleen naar localhost luisteren om de veiligheid te vergroten. U kunt er het beste toegang toe krijgen via een SSH-tunnel, die het verkeer vanaf de clientcomputer veilig omleidt. Wij hebben een vergelijkbare aanpak
Verbinding maken met een RDP-server
Om met de desktopomgeving te werken, is het beter om een aparte gebruiker zonder rechten aan te maken:
sudo adduser rdpuser
Laten we de gebruiker toevoegen aan de sudo-groep, zodat hij beheergerelateerde taken kan uitvoeren. Als dit niet nodig is, kunt u deze stap overslaan:
sudo gpasswd -a rdpuser sudo
U kunt verbinding maken met de server via elke RDP-client, inclusief de ingebouwde Windows Remote Desktop Services-client. Als Xrdp naar de externe interface luistert, zijn er geen aanvullende acties nodig. Het volstaat om het VPS IP-adres, de gebruikersnaam en het wachtwoord op te geven in de verbindingsinstellingen. Nadat we verbinding hebben gemaakt, zien we zoiets als dit:
Na de eerste installatie van de desktopomgeving krijgen we een volwaardige desktop. Zoals u kunt zien, verbruikt het niet veel bronnen, hoewel alles afhangt van de gebruikte applicaties.
Als de Xrdp-server alleen naar localhost luistert, zal het verkeer op de clientcomputer in een SSH-tunnel moeten worden verpakt (sshd moet op de VPS draaien). Op Windows kunt u een grafische SSH-client gebruiken (bijvoorbeeld PuTTY), en op UNIX-systemen heeft u het ssh-hulpprogramma nodig:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip
Nadat de tunnel is geïnitialiseerd, zal de RDP-client niet langer verbinding maken met de externe server, maar met de lokale host.
Met mobiele apparaten is het moeilijker: SSH-clients die een tunnel kunnen bouwen, zullen moeten worden aangeschaft, en in iOS en iPadOS is de achtergrondwerking van applicaties van derden moeilijk vanwege een te goede optimalisatie van het energieverbruik. Op iPhone en iPad kun je geen tunnel in een aparte applicatie maken; je hebt een harvester-applicatie nodig die zelf een RDP-verbinding via SSH tot stand kan brengen. Zoals bijvoorbeeld
Sessiebeheer en gebruikerssessies
De mogelijkheid om met meerdere gebruikers te werken wordt rechtstreeks in de Xrdp-server geïmplementeerd en vereist geen aanvullende configuratie. Na het starten van de dienst via systemd draait één proces in daemon-modus, luistert op poort 3389 en communiceert via localhost met de sessiebeheerder.
ps aux |grep xrdp
sudo netstat -ap |grep xrdp
De sessiebeheerder is meestal niet zichtbaar voor gebruikers, omdat de login en het wachtwoord die zijn opgegeven in de clientinstellingen er automatisch naartoe worden overgebracht. Als dit niet gebeurt of als er een fout optreedt tijdens de authenticatie, verschijnt er een interactief inlogvenster in plaats van het bureaublad.
Het automatisch starten van de sessiebeheerder wordt gespecificeerd in het bestand /etc/default/xrdp, en de configuratie wordt opgeslagen in /etc/xrdp/sesman.ini. Standaard ziet het er ongeveer zo uit:
[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]
Je hoeft hier niets te veranderen, je hoeft alleen maar het inloggen met rootrechten uit te schakelen (AllowRootLogin=false). Voor elke in het systeem geautoriseerde gebruiker wordt een afzonderlijk xrdp-proces gestart: als u de verbinding verbreekt zonder de sessie te beëindigen, blijven de gebruikersprocessen standaard actief en kunt u opnieuw verbinding maken met de sessie. Instellingen kunnen worden gewijzigd in het bestand /etc/xrdp/sesman.ini (sectie [Sessies]).
Toetsenbordindelingen wijzigen
Er zijn meestal geen problemen met een tweerichtingsklembord, maar met de Russische toetsenbordindeling zul je een beetje moeten spelen (de Russische landinstelling zou al moeten zijn
sudo nano /etc/xrdp/xrdp_keyboard.ini
U moet de volgende regels toevoegen aan het einde van het configuratiebestand:
[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
Het enige dat overblijft is het bestand opslaan en Xrdp opnieuw opstarten:
sudo systemctl restart xrdp
Zoals je ziet is het niet moeilijk om een RDP-server op een Linux VPS op te zetten, maar
Bron: www.habr.com