VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04
В Poprzedni artykuł Omówiliśmy uruchomienie serwera VNC na dowolnym typie maszyny wirtualnej. Ta opcja ma wiele wad, z których główną są wysokie wymagania dotyczące przepustowości kanałów transmisji danych. Dzisiaj spróbujemy połączyć się z pulpitem graficznym na… Linux poprzez RDP (Remote Desktop Protocol). System VNC opiera się na przesyłaniu tablic pikseli za pośrednictwem protokołu RFB (Remote Framebuffer), podczas gdy RDP umożliwia przesyłanie bardziej złożonych prymitywów graficznych i poleceń wysokiego poziomu. Jest on zazwyczaj używany do organizowania usług pulpitu zdalnego w Windows, ale serwery dla Linux również dostępne.

Spis treści:

Instalacja środowiska graficznego
Rusyfikacja serwera i instalacja oprogramowania
Instalowanie i konfigurowanie serwera RDP
Konfigurowanie zapory sieciowej
Łączenie z serwerem RDP
Menedżer sesji i sesje użytkowników
Zmiana układu klawiatury

Instalacja środowiska graficznego

Weźmiemy maszynę wirtualną z Ubuntu Serwer 18.04 LTS z dwoma rdzeniami przetwarzającymi, czterema gigabajtami pamięci RAM i dwudziestogigabajtowym dyskiem twardym (HDD). Słabsza konfiguracja nie nadaje się do komputerów stacjonarnych o dużej mocy obliczeniowej, choć zależy to od obciążenia. Nie zapomnij użyć kodu promocyjnego Habrahabr10, aby uzyskać 10% zniżki na zamówienie.

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04
Instalację środowiska graficznego ze wszystkimi zależnościami wykonuje się za pomocą następującego polecenia:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Podobnie jak w poprzednim przypadku wybraliśmy środowisko XFCE ze względu na jego stosunkowo niskie wymagania obliczeniowe.

Rusyfikacja serwera i instalacja oprogramowania

Często maszyny wirtualne są wdrażane wyłącznie z lokalizacją w języku angielskim. Na pulpicie może być potrzebny język rosyjski, który jest łatwy do skonfigurowania. Najpierw zainstalujmy tłumaczenia programów systemowych:

sudo apt-get install language-pack-ru

Skonfigurujmy lokalizację:

sudo update-locale LANG=ru_RU.UTF-8

Ten sam efekt można osiągnąć ręcznie edytując plik /etc/default/locale.

Do lokalizacji GNOME i KDE w repozytorium znajdują się pakiety językowe-gnome-ru i język-pack-kde-ru - będziesz ich potrzebować, jeśli używasz programów z tych środowisk graficznych. W XFCE tłumaczenia są instalowane wraz z aplikacjami. Następnie możesz zainstalować słowniki:

# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru

# Тезаурус для LibreOffice
sudo apt-get install mythes-ru

# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict

Ponadto w przypadku niektórych aplikacji może być wymagana instalacja tłumaczeń:

# Браузер 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

Tym samym przygotowywanie środowiska graficznego zostaje zakończone. Pozostaje tylko skonfigurować serwer RDP.

Instalowanie i konfigurowanie serwera RDP

W repozytoriach Ubuntu Dostępny jest darmowy serwer Xrdp, którego będziemy używać:

sudo apt-get install xrdp

Jeżeli wszystko poszło dobrze, serwer powinien uruchomić się automatycznie:

sudo systemctl status xrdp

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04
Serwer Xrdp działa z uprawnieniami użytkownika xrdp i domyślnie przyjmuje certyfikat /etc/ssl/private/ssl-cert-snakeoil.key, który można zastąpić własnym. Aby uzyskać dostęp do pliku i go odczytać, należy dodać użytkownika do grupy ssl-cert:

sudo adduser xrdp ssl-cert

Domyślne ustawienia można znaleźć w pliku /etc/default/xrdp, natomiast wszystkie pozostałe pliki konfiguracyjne serwera znajdują się w katalogu /etc/xrdp. Główne parametry znajdują się w pliku xrdp.ini i nie ma potrzeby ich zmiany. Konfiguracja jest dobrze udokumentowana, a pakiet zawiera także odpowiednie strony podręcznika:

man xrdp.ini
man xrdp

Pozostaje jedynie edytować skrypt /etc/xrdp/startwm.sh, który jest wykonywany po zainicjowaniu sesji użytkownika. Najpierw zróbmy kopię zapasową skryptu z dystrybucji:

sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh

Aby uruchomić środowisko graficzne XFCE, będziesz potrzebować skryptu wyglądającego mniej więcej tak:

#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4

Uwaga: lepiej jest zapisywać w skryptach pełną ścieżkę do plików wykonywalnych - to dobry nawyk. Uczyńmy skrypt wykonywalnym i tak zakończymy konfigurację serwera Xrdp:

sudo chmod 755 /etc/xrdp/startwm.sh

Uruchom ponownie serwer:

sudo systemctl restart xrdp

Konfigurowanie zapory sieciowej

Domyślnie Xrdp nasłuchuje na porcie TCP 3389 na wszystkich interfejsach. W zależności od konfiguracji serwera wirtualnego, może być konieczne skonfigurowanie zapory Netfilter. Linux Zwykle wykonuje się to za pomocą narzędzia iptables, ale w Ubuntu Lepiej użyć ufw. Jeśli adres IP klienta jest znany, można go skonfigurować za pomocą następującego polecenia:

sudo ufw allow from IP_Address to any port 3389

Możesz zezwolić na połączenia z dowolnego adresu IP w następujący sposób:

sudo ufw allow 3389

Protokół RDP obsługuje szyfrowanie, ale otwieranie dostępu do serwera Xrdp z sieci publicznych nie jest dobrym pomysłem. Jeśli klient nie ma stałego adresu IP, serwer powinien nasłuchiwać tylko na komputerze lokalnym, aby zwiększyć bezpieczeństwo. Lepiej skonfigurować dostęp do niego poprzez tunel SSH, który będzie bezpiecznie przekierowywał ruch z komputera klienckiego. Podejmujemy podobne podejście użyto w poprzednim artykule dla serwera VNC.

Łączenie z serwerem RDP

Aby pracować w środowisku pulpitu, lepiej jest utworzyć osobnego użytkownika bez uprawnień:

sudo adduser rdpuser

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04
Dodajmy użytkownika do grupy sudo, aby mógł wykonywać zadania administracyjne. Jeśli nie ma takiej potrzeby, możesz pominąć ten krok:

sudo gpasswd -a rdpuser sudo

Możesz połączyć się z serwerem przy użyciu dowolnego klienta RDP, w tym wbudowanego klienta usług pulpitu zdalnego. WindowsJeśli Xrdp nasłuchuje na interfejsie zewnętrznym, nie trzeba nic robić. Wystarczy wpisać adres IP VPS, nazwę użytkownika i hasło w ustawieniach połączenia. Po połączeniu zobaczysz coś takiego:

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04
Po wstępnej konfiguracji środowiska graficznego otrzymamy pełnoprawny pulpit. Jak widać, nie zużywa to wielu zasobów, choć w dalszej części wszystko będzie zależało od używanych aplikacji.

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04
Jeśli serwer Xrdp nasłuchuje tylko na komputerze lokalnym, ruch na komputerze klienckim będzie musiał zostać spakowany do tunelu SSH (na serwerze VPS musi działać protokół sshd). Windows Możesz użyć graficznego klienta SSH (na przykład PuTTY), ale w systemach UNIX potrzebne będzie narzędzie ssh:

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

Po zainicjowaniu tunelu klient RDP nie będzie już łączył się ze zdalnym serwerem, lecz z lokalnym hostem.

W przypadku urządzeń mobilnych sytuacja jest bardziej skomplikowana: trzeba kupić klienta SSH umożliwiającego skonfigurowanie tunelu, a w systemach iOS i iPadOS działanie aplikacji innych firm w tle jest utrudnione z powodu zbyt dobrej optymalizacji zużycia energii. iPhone Nie można skonfigurować tunelu na iPadzie za pomocą osobnej aplikacji – potrzebna będzie połączona aplikacja, która może nawiązać połączenie RDP przez SSH. Na przykład: Zdalny Pro.

Menedżer sesji i sesje użytkowników

Możliwość pracy z wieloma użytkownikami jest realizowana bezpośrednio na serwerze Xrdp i nie wymaga dodatkowej konfiguracji. Po uruchomieniu usługi za pośrednictwem systemd, jeden proces działa w trybie demona, nasłuchuje na porcie 3389 i komunikuje się za pośrednictwem localhost z menedżerem sesji.

ps aux |grep xrdp

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04
Menedżer sesji zazwyczaj nie jest widoczny dla użytkowników, ponieważ nazwa użytkownika i hasło określone w ustawieniach klienta są do niego automatycznie przenoszone. Jeżeli tak się nie stanie lub wystąpi błąd uwierzytelniania, zamiast pulpitu pojawi się interaktywne okno logowania.

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04
Automatyczne uruchamianie menedżera sesji jest określone w pliku /etc/default/xrdp, a konfiguracja jest zapisana w /etc/xrdp/sesman.ini. Domyślnie wygląda to mniej więcej tak:

[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]

Nie musisz tutaj niczego zmieniać, musisz jedynie zabronić logowania z uprawnieniami roota (AllowRootLogin=false). Dla każdego użytkownika zalogowanego do systemu uruchamiany jest osobny proces xrdp: jeśli rozłączysz się bez kończenia sesji, procesy użytkownika będą nadal działać domyślnie, a Ty będziesz mógł ponownie nawiązać połączenie z sesją. Ustawienia można zmienić w pliku /etc/xrdp/sesman.ini (sekcja [Sessions]).

Zmiana układu klawiatury

Zwykle nie ma problemów z dwukierunkowym schowkiem, ale w przypadku rosyjskiego układu klawiatury trzeba będzie trochę pomajstrować (ustawienia regionalne rosyjskie powinny być już zainstalowany). Edytujmy ustawienia klawiatury serwera Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Na końcu pliku konfiguracyjnego należy dodać następujące wiersze:

[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

Pozostaje tylko zapisać plik i ponownie uruchomić Xrdp:

sudo systemctl restart xrdp

Jak widać, skonfigurowanie serwera RDP na VPS z systemem Linux nie jest trudne i w Poprzedni artykuł Omówiliśmy już konfigurację VNC. Oprócz tych technologii istnieje jeszcze jedna ciekawa opcja: system X3Go, który wykorzystuje zmodyfikowany protokół NX 2. Zajmiemy się tym w następnej publikacji.

VPS włączony Linux z graficznym interfejsem: uruchomienie serwera RDP na Ubuntu 18.04

Źródło: www.habr.com

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster