🇬🇧 Go to english version of this post / Przejdź do angielskiej wersji tego wpisu
Zakładam, że fraza zdalny pulpit nie jest nikomu obca. Jest to bardzo wygodny sposób na dostęp (sterowanie) do komputera działającego w innym miejscu świata lub po prostu będącego serwerem działającym bez podpiętych peryferiów. Na hasło zdalny pulpit wiele, nawet nietechnicznych osób, pomyśli na pewno Team Viewer albo AnyDesk, jednak królem w tym obszarze jest protokół VNC (skrót od Virtual Network Computing, z ang. Wirtualna Sieciowa Komunikacja). Jest mnóstwo programów działających w oparciu właśnie o VNC (RealVNC, TightVNC, UltraVNC, TigerVNC, Vinagre, … i wiele wiele innych), a zdecydowana większość z nich opiera się na konieczności zainstalowania dwóch aplikacji – jednej na serwerze (komputerze, którym będziemy sterować) i drugiej na kliencie (komputerze, z którego będziemy sterować). Tego typu narzędzia to podstawowe narzędzie pracy każdego administratora sieci składającej się z więcej niż jednego komputera, więc każdemu zaczynającemu przygodę jako Sysadmin (administrator systemów) powinien przynajmniej wiedzieć z czym to się je.
W tym wpisie chciałbym wskazać jedną usługę, która według mnie niejako wyróżnia się z tłumu tym, że po pierwsze działa przez przeglądarkę, po drugie jest darmowa w podstawowym zakresie (a i płatne plany są atrakcyjne cenowo) i po trzecie kod źródłowy klienta jest udostępniony jako otwarte oprogramowanie (open-source). Tym narzędziem jest DWService.net!
Ale jak przez przeglądarkę?
Tak jak napisałem wcześniej to co wyróżnia DWService względem konkurencji to interfejs działający przez każdą, zwykłą przeglądarkę. Oczywiście istnieje konieczność zainstalowania specjalnego agenta (klienta) na komputerze/serwerze, którym będziemy sterować, ale samo sterowanie z drugiego urządzenia odbywa się już w całości przy użyciu interfejsu webowego, bez konieczności instalowania jakiegokolwiek dodatkowe oprogramowania.
Poniżej kilka zrzutów ekranu pokazujących jak to wygląda dla jednego z moich serwerów:
Rejestracja konta i utworzenie agenta
Zacznijmy od założenia konta na DWService. Po jego utworzeniu i zalogowaniu się wybieramy z menu przycisk Grupy i na górnym pasku odnajdujemy przycisk + podpisany Nowa. Wyskoczy skromny kreator, w którym wystarczy w polu Nazwa podać dowolną nazwę dla naszej pierwszej grupy (może to być np. Serwery). Wracamy do menu głównego i tym razem wybieramy przycisk Agenci, gdzie tak samo odnajdujemy przycisk + podpisany Nowy. W tym równie skromnym kreatorze wybieramy wcześniej utworzoną grupę i w polu poniżej podajemy nazwę dla agenta, które za chwilę zainstalujemy. Po utworzeniu nowego agenta pojawi nam się on na liście wraz z 9-cyfrowym ciągiem na żółtym tle. Ten ciąg to tzw. Installation Code i będzie nam on potrzebny podczas instalacji, więc polecam gdzieś go zapisać.
Rozważ włączenie 2FA
Rekomenduję uszczelnić swoje konto przy pomocy TOTP (Time-based One-Time Password algorithm, z ang. algorytm jednorazowych haseł opartych na czasie), czyli jednej z form uwierzytelnienia dwuskładnikowego. Jest to zabezpieczenie, które przy logowaniu wymaga, oprócz loginu i hasła, podania dodatkowego jednorazowego kodu. Używam tego rozwiązania wszędzie gdzie mam taką możliwość, a realizuję to poprzez aplikację Authy, dostępną zarówno na Androidzie jak i iOS. TOTP włącza się w zakładce Moje konto.
Instalacja agenta
Instalację można wykonać zarówno przy użyciu interfejsu graficznego jak i z poziomu terminala. Zacznijmy od pobrania skryptu instalacyjnego agenta. W przypadku instalacji przy pomocy interfejsu graficznego wystarczy wejść na stronę https://www.dwservice.net/pl/download.html i pobrać instalator dla odpowiedniego dla siebie systemu. Dla instalacji w CLI najpierw wejdźmy do odpowiedniego folderu:
cd /usr/src
A następnie pobierzmy skrypt instalacyjny przy użyciu wget:
wget https://www.dwservice.net/download/dwagent.sh
Musimy jeszcze nadać pobranemu skryptowi uprawienia do uruchamiania się:
chmod +x dwagent.sh
Przyszedł czas na uruchomienie skryptu. Od tego momentu wszystkie czynności będą praktycznie identyczne dla wariantu instalacji graficznej i CLI.
./dwagent.sh
W pierwszej kolejności zostaniemy zapytani jakie działanie chcemy wykonać. Mamy do wyboru:
- Install – standardowa instalacja,
- Run – uruchomienie jednorazowe,
- I do not accept – to opcja dla tych, którzy przeczytali licencję, regulamin użytkowania i politykę prywatności, nie zgadzają się z nimi i chcą zrezygnować.
My wybieramy oczywiście Install, czyli wpisujemy z klawiatury 1 i kontynuujemy ENTERem.
1. Install
2. Run
3. I do not accept
Option (3): 1
Następnie zostaniemy poproszeni o wskazanie ścieżki, gdzie ma zostać zainstalowany agent. Domyślnie podpowiadana ścieżka to /usr/share/dwagent, co nam odpowiada, więc nie zmieniamy nic i potwierdzamy ENTERem. Następnie zostaniemy poproszeni o potwierdzenie tego wyboru, więc wpisujemy z klawiatury 1 i kontynuujemy ENTERem.
Select the installation path:
Path (/usr/share/dwagent): [ENTER]
Waiting…
Would you want install DWAgent to '/usr/share/dwagent'?
1. Yes
2. No
Option (2): 1
Ostatnim krokiem jest wskazanie jak chcemy skonfigurować agenta, wybieramy opcję 1, co oznacza, że chcemy użyć wcześniej wygenerowanego kodu (Installation Code, o którym mowa była w poprzednim rozdziale), co potwierdzamy ENTERem. Następnie zostaniemy poproszeni o podanie tego kodu, wiec oczywiście wpisujemy go (łącznie z myślnikami w odpowiednich miejscach), co również na końcu potwierdzamy ENTERem.
How would you like to configure the agent?
1. Enter the installation code
2. Creating a new agent
Option (1): 1
Waiting…
Enter the installation code
Code: [wpisz kod ze strony]
Gotowe. Agent powinien zostać prawidłowo zainstalowany, a z poziomu interfejsu webowego po odświeżeniu powinniśmy zamiast żółtego tła widzieć zielone. Po kliknięciu w tego agenta zostaniemy przeniesieni do panelu zarządzania, z którego rzuty ekranu pokazałem powyżej w tym wpisie.
Na koniec polecam także posprzątać po instalacji, a więc usunąć pobrany skrypt instalacyjny, który już na tym etapie nie będzie nam potrzebny:
rm /usr/src/dwagent.sh
Znany problem z XWaylands
U niektórych użytkowników próba uzyskania dostępu do ekranu komputera zdalnego może zakończyć się wyświetlenie błędu:
Error: XWayland is not supported.
To znany problem, wynikający z tego, że tak jak głosi komunikat – DWService nie radzi sobie z XWayland. Można go bardzo prosto rozwiązać poprzez wyłączenie XWayland na serwerze, a co ciekawe można to zrobić z poziomu samego DWService.
Wracamy do głównego menu zarządzania agentem i naciskamy przycisk Pliki i foldery. To nic innego jak menedżer plików, w którym przechodzimy do folderu /etc/gdm3/. W tym folderze musimy znaleźć plik o nazwie custom.conf lub daemon.conf. Otwieramy go w edytorze tekstu. Teraz musimy znaleźć linijkę o następującej treści:
#WaylandEnable=false
i usunąć znak # z jej początku (odkomentować to polecenie). Po wszystkim plik należy zapisać i można go zamknąć. W ten sposób wyłączyliśmy XWayland.
Szybki restart maszyny, który można wykonać z poziomu konsoli poleceniem reboot lub z poziomu listy agentów DWService poprzez naciśnięcie trzech pionowych kropek i wybranie opcji Uruchom system ponownie.
Rozważ wsparcie projektu
DWService to naprawdę przydatne narzędzie i w dodatku oferuje dostęp do darmowego planu, który podstawowemu użytkownikowi zdecydowanie wystarczy, gdyż plany różnią się w zasadzie tylko maksymalną przepustowością połączenia. Darmowy plan oferuje 6 Mbps, co do streamingu obrazu z komputera wystarcza. Istnieją jednak płatne plany, których wykupienie jest uzasadnione choćby ze względu na chęć wsparcia projektu. Ja tak zrobiłem i żeby nie być gołosłownym jestem w stanie to udowodnić poprzez obecność na liście subskrybentów dostępnej tutaj (jeżeli chcesz mnie sprawdzić to wyszukaj tomaszdunia.pl 😉).
Pingback: DWService – remote desktop via browser [ENG 🇬🇧] – Tomasz Dunia Blog
SpeX
To podobnym narzędzie, ale do obsługi przez przeglądarkę zwykłych usług RDP jest Guacamole.