Jak udostępnić swój pulpit w Linux za pomocą x11vnc
- 3846
- 1205
- Tomasz Szatkowski
Cel
Naucz się, jak udostępniać swój komputer stacjonarny za pomocą protokołu VNC i aplikacji x11VNC
Wymagania
- Zainstalowanie pakietu x11VNC
Konwencje
- # - wymaga wykonania podanego polecenia z uprawnieniami root
bezpośrednio jako użytkownik root lub za pomocąsudo
Komenda - $ - podano polecenie, które ma być wykonywane jako zwykły użytkownik niepewny
Wstęp
Podczas gdy SSH jest ważnym narzędziem dla każdego administratora systemu, będąc najbardziej używanym i bezpiecznym protokołem dla zdalnej administracji, nawet zdolnego do przyznania dostępu do serwera wyświetlacza x11, przez przekazywanie x11, nie jest to właściwe narzędzie do użycia, gdy żądany docelowy ma podzielić się całą sesją stacjonarną. W takim przypadku VNC
Protokół to nasz przyjaciel. Korzystając z niego, możemy całkowicie kontrolować inną maszynę, udostępniając nawet zdarzenia klawiatury lub myszy.
Chociaż wiele
Implementacje protokołu istnieją na GNU/Linux, a niektóre z nich są zintegrowane z określonymi środowiskami stacjonarnymi, takimi jak Vino/Vinagre
W gnome, w tym samouczku skupimy się na użyciu i konfiguracji niezależnej od pulpitu x11vnc
aplikacja.
Instalacja
x11vnc
Aplikacja powinna być już pakowana i dostępna w twoich ulubionych repozytoriach dystrybucji. Instalowanie go na Fedorze to tylko kwestia biegu:
$ sudo dnf instalacja x11vnc
W Debian lub dystrybucji opartej na debiana poleceniem do użycia jest:
$ sudo apt-get install x11vnc
x11VNC jest również dostępny w repozytoriach artylinux. Możemy go zainstalować za pomocą Pacman
:
$ sudo pacman -s x11vnc
Po zainstalowaniu program można uruchomić prosto z terminalu lub za pośrednictwem GUI, korzystając z uruchamiania pulpitu, który należy znaleźć w menu aplikacji.
Konfiguracja zapory ogniowej
Aby móc udostępnić naszą sesję stacjonarną za pomocą protokołu VNC, musimy skonfigurować zaporę, aby umożliwić przychodzące połączenia w porcie 5900
który jest domyślnym portem VNC-SERVER. Dokładne działanie do wykonania zależy od oprogramowania zapory, której używamy w naszym systemie. Podczas używania Firewalld
Powinniśmy uruchomić:
$ sudo firewall-cmd --add-service = vnc-server
Jak widać, tak naprawdę nie określiliśmy portu, który ma być bezpośrednio dozwolony: zamiast tego używaliśmy nazwy usługi, ponieważ jest on domyślnie powiązany z portem. Pamiętaj, gdy używasz Firewalld
, Jeśli strefa nie jest określona w przypadku --strefa
opcja, określone reguły zostaną zastosowane w domyślnej.
Podczas używania UFW
, Domyślna zapora ogniowa w Ubuntu, polecenie, które należy użyć, to:
$ sudo ufw zezwala na 5900/tcp
Ponadto, jeśli zamierzamy zezwolić na połączenie VNC z maszyn poza naszą siecią lokalną, powinniśmy skonfigurować regułę zezwoleń dla tego samego portu w naszym router.
Zapoznanie się z x11vnc
Najłatwiejszym sposobem na rozpoczęcie używania x11VNC jest wywołanie programu w terminalu bez żadnej opcji. Program musi zostać uruchomiony bez przywileje administratora:
x11VNC
Domyślnie x11VNC będzie używać wyświetlacza : 0
, Można to jednak zmienić za pomocą -wyświetlacz
opcja.
Pierwszą rzeczą, którą otrzymamy po uruchomieniu powyższego polecenia, jest ostrzeżenie o braku użycia hasła do połączenia. To się spodziewało, ponieważ jeszcze nie skonfigurowaliśmy. Działanie z tą konfiguracją jest bardzo niebezpieczne, ponieważ każdy komputer z dostępem do sieci do naszego komputera może potencjalnie wyświetlić i kontrolować nasz komputer stacjonarny. Pierwszą rzeczą, którą musimy zatem zrobić, jest skonfigurowanie programu, aby wymagało uwierzytelnienia po żądaniu.
Ogranicz dostęp za pomocą hasła
Istnieją w zasadzie trzy sposoby konfigurowania uwierzytelnienia za pomocą x11VNC, odpowiadają one -Passwd
, -StorePasswd
, I -Passwdfile
opcje. Zobaczmy krótko, jak modyfikują zachowanie programu.
Pierwsza metoda jest reprezentowana przez zastosowanie -Passwd
Opcja, która pozwala nam zapewnić czas wykonawczy, jednorazowy, zwykły utwór bezpośrednio w terminalu: nie będzie on nigdzie zapisywany i będzie po prostu używany na uruchomionej sesji.
Drugą metodą jest użycie -StorePasswd
Opcja: Akceptuje dwa opcjonalne argumenty: przechodzić
I plik
, Aby określić odpowiednio hasło i plik, w którym należy je przechowywać. Jeśli jednak będzie używany bez żadnych argumentów, będzie on monitorował hasło interaktywnie i będzie przechowywane w ~/.VNC/PASSWD
plik. Wreszcie, jeśli opcja jest używana z jednym argumentem, zostanie interpretowana jako plik do przechowywania hasła. Zwróć uwagę, że plik zawierający hasło nie zostanie zaszyfrowany, ale po prostu zaciemniony stałym kluczem, dlatego powinien mieć możliwość dostępu tylko do zaufanego użytkownika.
Po zapisaniu hasła program wyjdzie. Od tego momentu, aby uruchomić sesję VNC chronioną hasłem, należy wydać następujące polecenie:
$ x11vnc -rfbauth/ścieżka/do/passfile
Gdzie domyślnie/ścieżka/do/passfile będzie odpowiadał ~//.VNC/PASSWD.
Trzecią opcją, którą mamy, jest użycie -Passwdfile
flaga. Korzystając z niego hasło do połączenia jest ustawiane przez odczyt pierwszego wiersza istniejącego pliku, przekazywany jako argument wyłącznej opcji. Zachowanie opcji można dalej modyfikować poprzez prefiksowanie argumentu pliku. Na przykład, jeśli nazwa pliku jest prefiks RM:
, Sam plik zostanie usunięty po odczytaniu jego treści przez program. Podczas korzystania z CMD:
Zamiast tego przedrostek określony po prefiks będzie interpretowany jako polecenie zewnętrzne, a jego dane wyjściowe będzie używane jako hasło. Inne prefiks można użyć z tą opcją. Aby uzyskać pełne odniesienie, możesz zapoznać się z Manpage programu.
Podaj hasło do sesji tylko dla widoku
Można użyć x11vnc
Tak więc utworzone połączenie będzie działać w trybie tylko widoku. Oznacza to, że połączeni klienci będą mogli obserwować wspólną sesję, ale nie będą w stanie z nią wchodzić w interakcje. Aby uruchomić w tym trybie, program musi zostać uruchomiony z -tylko podgląd
opcja. Możliwe jest skonfigurowanie hasła Spefic dla tego rodzaju dostępu, więc aby uzyskać bardziej przeciętą konfigurację. Aby uzyskać ten wynik, -viewpasswd
Należy użyć opcji, podając hasło jako argument ciągu. Wymaga to jednak, że podano również hasło pełnego dostępu, używając -Passwd
Opcja, którą omówiliśmy powyżej.
Zabezpiecz połączenie za pomocą szyfrowanego tunelu
Domyślnie połączenie VNC nie jest szyfrowane, a to może być ryzyko bezpieczeństwa. Możemy zastosować różne podejścia, aby to naprawić. Pierwszym byłoby użycie VPN
(Wirtualna sieć prywatna), drugi do użycia tunelu SSL, a trzeci do użycia ssh
.
Opisując, jak skonfigurować VPN, jest poza zakresem tego artykułu, wkrótce zobaczymy, jak zaimplementować pozostałe dwie opcje.
Użyj tunelu SSL/TLS
Możemy zaszyfrować połączenie VNC za pomocą tunelu SSL. Aby móc to osiągnąć, musimy użyć -SSL
Lub -ogpa
opcje. Pierwszy wymaga skompilowania x11VNC libssl
wsparcie. Ta opcja akceptuje jeden argument, który jest certyfikatem w pem
format do użycia. Jeśli ten argument nie jest podany i Openssl
narzędzie jest zainstalowane w naszym systemie, nowy certyfikat zostanie wygenerowany i zapisany ~/.VNC/certs/serwer.pem
.
-ssltunnel
Zamiast tego opiera się na korzystaniu z programu zewnętrznego, ogpa
Aby zapewnić połączenie SSL. Jako -ssl, akceptuje również certyfikat PEM jako argument. Jeśli nie zostanie dostarczony, nowy zostanie wygenerowany i zapisany jak wspomniano powyżej (to zachowanie można jednak zmienić, na przykład za pomocą ciągu TMP
Jako argument - w tym przypadku zostanie wygenerowany tymczasowy certyfikat).
Zauważ, że w obu przypadkach automatycznie wygenerowane certyfikat będzie samodzielnie podpisane, chociaż zapewnienie bezpiecznego połączenia nie będzie reprezentować ochrony przed atakiem Man-in-thetdle. Podczas generowania certyfikatu zostaniemy zapytani, czy chcemy podać hasło, aby je chronić, a jeśli tak jest, zostaniemy poproszeni o jego włożenie.
Wreszcie, aby móc korzystać z tunelu SSL, aplikacja kliencka musi obsługiwać SSL.
Użyj tunelu SSH
Aby użyć tunelu SSH, musimy uruchomić serwer VNC za pomocą SSH, z tym poleceniem (zakłada, że używany jest dom domyślny):
$ ssh -t -l 5900: LocalHost: 5900 Remote -Machine 'x11vnc -Localhost -Display: 0'
Prawdopodobnie znasz SSH, ale przeanalizujmy to polecenie. Przede wszystkim prowadziliśmy SSH z -T
opcja, aby przydzielić pseudo-końcowy i z -L
Po pierwsze, w zasadzie powiedzieliśmy, że naprzód port 5900
na naszym komputerze lokalnym (klienta) na tym samym porcie na zdalnym komputerze. Jak widać, polecenie x11vnc jest uruchamiane z -Lokalny Gospodarz
opcja. To, co zasadniczo robi to, aby umożliwić tylko połączenia z tego samego komputera, na którym serwer działa. Ta opcja jest również automatycznie używana podczas korzystania z tunelu SSL, aby uniknąć ich ominięcia. Następnie możemy uruchomić nasz VNCViewer na kliencie:
$ vncviewer -preeferredEncoding = Zrle LocalHost: 0
Zauważ, że ustawiamy preferowane kodowanie Zrle
, To powinno pomóc w wydajności SSH.
Uruchom w trybie graficznym
Jak powiedziano wcześniej, x11vnc
może być również używane w trybie graficznym za pomocą wyrzutni stacjonarnej. Domyślnie program pokaże okno, w którym możemy wybrać port, a także inne opcje:
Wybierz okno portu x11VNC
Po kliknięciu przycisku „OK” ikona zostanie pokazana na tacy systemowej, a okno z jego właściwościami pojawi się na ekranie. Po lewej stronie zostaną wyświetlone przydatne instrukcje dla szybkiego startupu. Z tego interfejsu możemy również wybrać hasło do sesji i hasła tylko dla widoku:
Okno właściwości x11vnc
Wnioski
Chociaż VNC nawet nie zbliża się do reprezentowania substytutu SSH, może być właściwym narzędziem do użycia dla niektórych konkretnych zadań. W tym samouczku widzieliśmy podstawowe kroki potrzebne do skonfigurowania i użycia x11vnc
serwer. Chociaż dostępnych jest wiele alternatyw, x11VNC jest bardzo prostym i niezależnym od pulpitu narzędziem, które można używać w dowolnym miejscu.
Powiązane samouczki Linux:
- Udostępnij ekran komputerowy z VNC w Linux
- Konfigurowanie dostępu do serwera VNC na Redhat Linux
- Narzędzia VNC zdalne ekran dla Linux
- Rzeczy do zainstalowania na Ubuntu 20.04
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Linux: Ustaw ssh
- Jak w pełni wykorzystać OpenSsh
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
- Podstawowe polecenia Linux