Wyszukiwanie w witrynie

Zainstaluj Guacamole dla zdalnego dostępu do systemu Linux/Windows w Ubuntu


Jako administrator systemu możesz znaleźć się (dziś lub w przyszłości) w środowisku, w którym współistnieją Windows i Linux.

Nie jest tajemnicą, że niektóre duże firmy wolą (lub muszą) uruchamiać część swoich usług produkcyjnych na komputerach z systemem Windows, a inne na serwerach Linux.

Jeśli tak jest w Twoim przypadku, powitasz ten przewodnik z otwartymi ramionami (w przeciwnym razie nie wahaj się i przynajmniej dodaj go do swoich zakładek).

W tym artykule przedstawimy Ci guacamole, bramę zdalnego pulpitu obsługiwaną przez Tomcat, którą wystarczy zainstalować na serwerze centralnym.

Guacamole zapewni internetowy panel sterowania, który umożliwi szybkie przełączanie się z jednego urządzenia na drugie – wszystko w tym samym oknie przeglądarki internetowej.

Środowisko testowe

W tym artykule korzystaliśmy z następujących maszyn. Zainstalujemy Guacamole w urządzeniu Ubuntu i będziemy go używać do uzyskiwania dostępu do systemu Windows 10 za pośrednictwem protokołu Remote Desktop Protocol ( RDP) i skrzynkę RHEL korzystającą z protokołu sieciowego SSH:

Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19

To powiedziawszy, zaczynajmy.

Instalowanie serwera Guacamole w Ubuntu

1. Przed zainstalowaniem guacamole musisz najpierw zadbać o jego zależności.

sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user

2. Pobierz i rozpakuj archiwum tar. Od początku lutego 2021 najnowsza wersja Guacamole to 1.3.0. Możesz odwiedzić stronę pobierania Guacamole, aby znaleźć najnowszą wersję w danym momencie.

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz 
tar zxf guacamole-server-1.3.0.tar.gz  

3. Skompiluj oprogramowanie.

cd guacamole-server-1.3.0/
./configure

Jak można się spodziewać, configure sprawdzi Twój system pod kątem obecności wymaganych zależności i obsługiwanych protokołów komunikacyjnych (jak widać w podświetlonym kwadracie, Protokół Remote Desktop (RDP) i SSH są obsługiwane przez wcześniej zainstalowane zależności).

Jeśli wszystko pójdzie zgodnie z oczekiwaniami, po zakończeniu powinieneś zobaczyć następujący komunikat (w przeciwnym razie upewnij się, że zainstalowałeś wszystkie niezbędne zależności):

Jak sugeruje ostatnia linia na powyższym obrazku, uruchom make i make install, aby skompilować program:

make 
sudo make install

4. Zaktualizuj pamięć podręczną zainstalowanych bibliotek.

sudo ldconfig 

i naciśnij Enter.

Instalowanie klienta Guacamole w Ubuntu

Po wykonaniu powyższych kroków serwer guacamole zostanie zainstalowany. Poniższe instrukcje pomogą Ci teraz skonfigurować guacd (demona proxy integrującego JavaScript z protokołami komunikacyjnymi, takimi jak RDP lub SSH) i guacamole.war (klienta), komponent tworzący ostateczną aplikację HTML5, która zostanie Ci zaprezentowana.

Pamiętaj, że oba komponenty (serwer guacamole i klient) muszą być zainstalowane na tej samej maszynie – nie ma potrzeby instalowania tzw. klienta na maszynach, na których chcesz połączyć się).

Aby pobrać klienta, wykonaj następujące kroki:

5. Pobierz archiwum aplikacji internetowych i zmień jego nazwę na guacamole.war.

Uwaga: w zależności od dystrybucji katalog bibliotek Tomcat może znajdować się pod adresem /var/lib/tomcat.

cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war

6. Utwórz plik konfiguracyjny (/etc/guacamole/guacamole.properties). Ten plik zawiera instrukcje dotyczące połączenia Guacamole z guacd:

sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties

Wstaw następującą zawartość do /etc/guacamole/guacamole.properties. Pamiętaj, że odwołujemy się do pliku, który utworzymy w następnym kroku (/etc/guacamole/user-mapping.xml):

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping:    /etc/guacamole/user-mapping.xml

I utwórz dowiązanie symboliczne, aby Tomcat mógł odczytać plik:

sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/

7. Guacamole używa pliku user-mapping.xml. Utwórz ten plik, aby określić, którzy użytkownicy mogą uwierzytelniać się w interfejsie internetowym Guacamole (pomiędzy <authorize>) i jakich połączeń mogą używać (pomiędzy tagami <connection>):

sudo nano /etc/guacamole/user-mapping.xml

Poniższe mapowanie użytkownika zapewnia dostęp do interfejsu internetowego Guacamole użytkownikowi tecmint z hasłem tecmint01. Następnie w ramach połączenia SSH musimy podać prawidłową nazwę użytkownika, aby zalogować się do skrzynki RHEL (zostaniesz poproszony o podanie odpowiedniego hasła, gdy Guacamole zainicjuje połączenie).

W przypadku pola Windows 10 nie ma takiej potrzeby, gdyż wyświetli nam się ekran logowania przez RDP.

Aby uzyskać skrót md5 hasła tecmint01, wpisz następujące polecenie:

printf '%s' "tecmint01" | md5sum

Następnie wstaw wynik polecenia w polu hasła wewnątrz tagów <authorize>:

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 8">
                        <protocol>ssh</protocol>
                        <param name="hostname">192.168.0.18</param>
                        <param name="port">22</param>
                        <param name="username">gacanepa</param>
                </connection>
                <connection name="Windows 10">
                        <protocol>rdp</protocol>
                        <param name="hostname">192.168.0.19</param>
                        <param name="port">3389</param>
                </connection>
        </authorize>
</user-mapping>

Podobnie jak w przypadku wszystkich plików zawierających poufne informacje, ważne jest ograniczenie uprawnień i zmiana właściciela pliku user-mapping.xml:

sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml

Uruchom Tomcat i guacd.

sudo service tomcat9 start
sudo /usr/local/sbin/guacd &

Uruchamianie interfejsu sieciowego Guacamole

8. Aby uzyskać dostęp do interfejsu internetowego Guacamole, uruchom przeglądarkę i wskaż ją na http://server:8080/guacamole, gdzie serwer to nazwa hosta lub adres IP Twojego serwer (w naszym przypadku jest to http://192.168.0.100:8080/guacamole) i zaloguj się podanymi wcześniej danymi uwierzytelniającymi (nazwa użytkownika: tecmint, hasło: tecmint01):

9. Po kliknięciu Zaloguj zostaniesz przeniesiony do interfejsu administracyjnego, gdzie zobaczysz listę połączeń, do których użytkownik tecmint ma dostęp, zgodnie z user- mapowanie.xml:

10. Śmiało, kliknij pole RHEL 8, aby zalogować się jako gacanepa (nazwa użytkownika podana w definicji połączenia).

Zwróć uwagę, że źródło połączenia jest ustawione na 192.168.0.100 (adres IP serwera Guacamole), niezależnie od adresu IP urządzenia, którego używasz do otwierania interfejsu internetowego:

11. Jeśli chcesz zakończyć połączenie, wpisz exit i naciśnij Enter. Zostaniesz poproszony o powrót do głównego interfejsu (Strona główna), ponowne połączenie lub wylogowanie się z Guacamole:

12. Teraz czas wypróbować połączenie pulpitu zdalnego z systemem Windows 10:

Gratulacje! Teraz możesz uzyskać dostęp do komputera Windows 10 i serwera RHEL 8 z poziomu przeglądarki internetowej.

Streszczenie

W tym artykule wyjaśniliśmy, jak zainstalować i skonfigurować Guacamole, aby umożliwić dostęp do zdalnych maszyn za pośrednictwem RDP i SSH. Oficjalna strona internetowa zawiera obszerną dokumentację ułatwiającą skonfigurowanie dostępu przy użyciu innych protokołów, takich jak VNC i innych mechanizmów uwierzytelniania, takich jak oparte na bazie danych…

Jak zawsze, nie wahaj się napisać do nas, jeśli masz jakieś pytania lub sugestie dotyczące tego artykułu. Z niecierpliwością czekamy również na historie Twoich sukcesów.