Si të instaloni dhe përdorni Apache Guacamole Remote Desktop në Rocky Linux 8


Apache Guacamole është një portë desktopi në distancë, pa pagesë, me burim të hapur, pa klient. Ai mbështet protokollet standarde si SSH, RDP dhe VNC. Nuk ka nevojë për shtojca dhe klientë të palëve të treta për të punuar. Mund të hyni në kompjuterin tuaj duke përdorur një portë të bazuar në ueb. Mund të vendoset pas një serveri proxy i cili ju lejon të përdorni serverët tuaj nga kudo në botë.

Guacamole përbëhet nga dy përbërës:

  • server-guacamole përmban të gjithë përbërësit vendas, nga ana e serverit, të kërkuara nga Guacamole për t'u lidhur me desktopët e largët. guacd është proxy daemon që funksionon në serverin Guacamole, pranon lidhjet e përdoruesve dhe më pas i lidh ato me desktopët e largët.
  • guacamole-client përmban të gjithë komponentët Java dhe Javascript të Guacamole që përbëjnë aplikacionin në internet ku përdoruesit mund të lidhen me desktopët e tyre.

Në këtë tutorial, do të mësoni se si të instaloni dhe përdorni Apache Guacamole në një server të bazuar në Rocky Linux 8. Do të mësoni gjithashtu se si ta përdorni për t'u lidhur me një desktop në distancë. Ne do të instalojmë Guacamole duke ndërtuar nga kodi i tij burimor.

Parakushtet

  • A server running Rocky Linux 8 with a minimum of 2GB RAM and 2 CPU Cores.

  • A domain name for the helpdesk pointing to the server. For our tutorial, we will use the uvdesk.example.com domain.

  • A non-root based user with sudo privileges.

  • Make sure everything is updated.

    $ sudo dnf update
    
  • Install basic utility packages. Some of them may already be installed.

    $ sudo dnf install wget curl nano unzip yum-utils -y
    

Hapi 1 - Konfiguro Firewall

Hapi i parë është konfigurimi i murit të zjarrit. Rocky Linux përdor Firewall-in e Firewalld. Kontrolloni statusin e mureve të zjarrit.

$ sudo firewall-cmd --state
running

Firewall punon me zona të ndryshme dhe zona publike është ajo e paracaktuar që do të përdorim. Listoni të gjitha shërbimet dhe portat aktive në murin e zjarrit.

$ sudo firewall-cmd --permanent --list-services

Duhet të tregojë daljen e mëposhtme.

cockpit dhcpv6-client ssh

Lejo portet HTTP dhe HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Rishikoni statusin e murit të zjarrit.

$ sudo firewall-cmd --permanent --list-services

Ju duhet të shihni një dalje të ngjashme.

cockpit dhcpv6-client http https ssh

Ringarko murin e zjarrit për të aktivizuar ndryshimet.

$ sudo firewall-cmd --reload

Hapi 2 - Instaloni Bibliotekat

Përpara se të instalojmë bibliotekat, duhet të instalojmë depo EPEL dhe të aktivizojmë depon e PowerTools.

$ sudo dnf install epel-release -y
$ sudo dnf config-manager --set-enabled powertools

Hapi i parë është instalimi i bibliotekave të nevojshme për të ndërtuar Guacamole. Instaloni bibliotekat e kërkuara.

$ sudo dnf install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool libuuid-devel uuid-devel make cmake

Varësitë e mësipërme janë të detyrueshme, që do të thotë se pa to, Guacamole nuk mund të ndërtohet. Mund të instaloni disa varësi opsionale për të shtuar mbështetje për protokolle dhe veçori të ndryshme.

Por së pari, duhet të aktivizoni Depo RPMFusion Falas sepse përmban paketën ffmpeg-devel.

$ sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm

Instaloni varësitë opsionale.

$ sudo dnf install ffmpeg-devel freerdp-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel libwebsockets-devel pulseaudio-libs-devel openssl-devel compat-openssl10 libvorbis-devel libwebp-devel libgcrypt-devel

Hapi 3 - Instaloni Apache Tomcat

Për tutorialin tonë, ne do të instalojmë Apache Tomcat 9, i cili kërkon Java 8 dhe më vonë për të punuar.

Instaloni Java

Ne do të instalojmë OpenJDK 11, implementimin me burim të hapur të platformës Java.

Ekzekutoni komandën e mëposhtme për të instaluar OpenJDK.

$ sudo dnf install java-11-openjdk-devel

Verifikoni instalimin.

$ java -version
openjdk 11.0.14 2022-01-18 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.14+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.14+9-LTS, mixed mode, sharing)

Krijo përdorues Tomcat

Më pas, krijoni një përdorues për shërbimin Tomcat. Ne do të vendosim /opt/tomcat si direktoriumin kryesor.

$ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Shkarko Tomcat

Versioni më i fundit i Tomcat v10 mund të shkarkohet nga faqja e tij e shkarkimit. Në kohën e shkrimit të këtij tutoriali, v9.0.59 është versioni më i fundit i disponueshëm. Kontrolloni versionin më të fundit përpara se të shkarkoni Tomcat.

Përdorni wget për të shkarkuar Tomcat.

$ TVERSION=9.0.59
$ wget https://dlcdn.apache.org/tomcat/tomcat-9/v${TVERSION}/bin/apache-tomcat-${TVERSION}.tar.gz

Ekstraktoni skedarin në drejtorinë /opt/tomcat.

$ sudo tar -xf apache-tomcat-${TVERSION}.tar.gz --strip-components=1 -C /opt/tomcat/

Ndrysho pronësinë e drejtorisë tek përdoruesi Tomcat.

$ sudo chown -R tomcat:tomcat /opt/tomcat

Krijoni një skedar të njësisë së sistemit dhe filloni Tomcat

Krijoni dhe hapni skedarin /etc/systemd/system/tomcat.service për modifikim.

$ sudo nano /etc/systemd/system/tomcat.service

Ngjit kodin e mëposhtëm.

[Unit]
Description=Apache Tomcat 9 Servlet container
Wants=network.target
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=always

[Install]
WantedBy=multi-user.target

Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet të ruani.

Ringarko demonin e shërbimit për të aktivizuar shërbimin Tomcat.

$ sudo systemctl daemon-reload

Aktivizo dhe nis shërbimin Tomcat.

$ sudo systemctl enable tomcat --now

Kontrolloni statusin e shërbimit.

$ sudo systemctl status tomcat
? tomcat.service - Apache Tomcat 9 Servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2022-03-09 09:48:38 UTC; 8s ago
  Process: 25308 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 25315 (java)
    Tasks: 29 (limit: 11412)
   Memory: 154.9M
   CGroup: /system.slice/tomcat.service
           ??25315 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties ..

Mar 09 09:48:38 guacamole systemd[1]: Starting Apache Tomcat 9 Servlet container...
Mar 09 09:48:38 guacamole systemd[1]: Started Apache Tomcat 9 Servlet container.

Hapi 4 - Shkarkoni dhe ndërtoni Guacamole

Ju mund të merrni 1.4.0. Shkarkoni kodin burimor të Guacamole.

$ GVERSION=1.4.0
$ wget https://downloads.apache.org/guacamole/${GVERSION}/source/guacamole-server-${GVERSION}.tar.gz

Ekstraktoni arkivin dhe kaloni në drejtorinë e sapokrijuar.

$ tar -xzf guacamole-server-${GVERSION}.tar.gz
$ cd guacamole-server-${GVERSION}/

Ekzekutoni komandën konfiguro për të përcaktuar se cilat biblioteka janë të disponueshme dhe për të zgjedhur komponentët për ndërtim.

$ ./configure --with-systemd-dir=/etc/systemd/system/

Drejtoria /etc/systemd/system/ është vendi ku skripti i nisjes do të instalohet gjatë procesit të ndërtimit për të konfiguruar Guacamole që të fillojë automatikisht në nisje.

Ju do të merrni rezultatin e mëposhtëm pas përfundimit të suksesshëm.

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
...

------------------------------------------------
guacamole-server version 1.4.0
------------------------------------------------

   Library status:

     freerdp2 ............ yes
     pango ............... yes
     libavcodec .......... yes
     libavformat.......... yes
     libavutil ........... yes
     libssh2 ............. yes
     libssl .............. yes
     libswscale .......... yes
     libtelnet ........... yes
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ yes
     libwebsockets ....... yes
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... yes
      RDP ........... yes
      SSH ........... yes
      Telnet ........ yes
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... yes
      guaclog .... yes

   FreeRDP plugins: /usr/lib64/freerdp2
   Init scripts: no
   Systemd units: /etc/systemd/system/

Type "make" to compile guacamole-server.

Nëse nuk keni disa biblioteka të instaluara, do të shihni jo në vend të po në dalje. Por nëse mungon një bibliotekë kritike, komanda do të dështojë. Për të kontrolluar për më shumë opsione konfigurimi, ekzekutoni komandën ./configure --help.

Përpiloni dhe instaloni serverin Guacamole duke përdorur komandat e mëposhtme.

$ make && sudo make install

Ekzekutoni komandën e mëposhtme për të përditësuar cache-in e sistemeve të bibliotekave të instaluara.

$ sudo ldconfig

Rifresko demonin e shërbimit.

$ sudo systemctl daemon-reload

Aktivizo dhe nis shërbimin Guacamole.

$ sudo systemctl enable guacd --now

Verifikoni statusin e shërbimit.

$ sudo systemctl status guacd
? guacd.service - Guacamole Server
   Loaded: loaded (/etc/systemd/system/guacd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-03-10 09:13:41 UTC; 7s ago
     Docs: man:guacd(8)
 Main PID: 85349 (guacd)
    Tasks: 1 (limit: 11181)
   Memory: 10.8M
   CGroup: /system.slice/guacd.service
           ??85349 /usr/local/sbin/guacd -f

Mar 10 09:13:41 guacamole systemd[1]: Started Guacamole Server.
Mar 10 09:13:41 guacamole guacd[85349]: Guacamole proxy daemon (guacd) version 1.4.0 started
Mar 10 09:13:41 guacamole guacd[85349]: guacd[85349]: INFO:        Guacamole proxy daemon (guacd) version 1.4.0 started
Mar 10 09:13:41 guacamole guacd[85349]: guacd[85349]: INFO:        Listening on host ::1, port 4822
Mar 10 09:13:41 guacamole guacd[85349]: Listening on host ::1, port 4822

Hapi 5 - Instaloni Guacamole Client

Tani që keni instaluar serverin, hapi tjetër është instalimi i klientit.

Krijo drejtorinë e konfigurimit për Guacamole.

$ sudo mkdir /etc/guacamole

Ndryshe nga serveri Guacamole, klienti Guacamole është i disponueshëm në kodin burimor dhe në formë binare. Për tutorialin tonë, ne do të shkarkojmë binarin. Sidoqoftë, mund të zgjidhni të ndërtoni klientin nga burimi.

Shkarkoni binarin e klientit Guacamole nga faqja e internetit.

$ sudo wget https://downloads.apache.org/guacamole/${GVERSION}/binary/guacamole-${GVERSION}.war -O /etc/guacamole/guacamole.war

Komanda e mësipërme shkarkon dhe kopjon skedarin binar Guacamole në drejtorinë /etc/guacamole.

Që klienti të funksionojë, ai duhet të vendoset nga direktoria Tomcats, e cila është $CATALINA_HOME/webapps/. Në hapin 3, ne vendosëm /opt/tomcat si $CATALINA_HOME.

Ekzekutoni komandën e mëposhtme për të krijuar një lidhje simbolike nga /etc/guacamole/guacamole.war në drejtorinë e aplikacioneve ueb Tomcat.

$ sudo ln -s /etc/guacamole/guacamole.war /opt/tomcat/webapps/

Ndrysho lejen e aplikacionit në përdorues tomcat.

$ sudo chown -R tomcat:tomcat /opt/tomcat/webapps

Krijo skedarin e konfigurimit të aplikacionit në internet në /etc/guacamole/guacd.conf.

$ sudo nano /etc/guacamole/guacd.conf

Vendos kodin e mëposhtëm në të. Zëvendësoni your_server_IP me adresën IP publike të serverëve tuaj.

#
# guacd configuration file
#

[daemon]

#pid_file = /var/run/guacd.pid
log_level = info

[server]

bind_host = your_server_IP
bind_port = 4822

#
# The following parameters are valid only if
# guacd was built with SSL support.
#

# [ssl]

# server_certificate = /etc/ssl/certs/guacd.crt
# server_key = /etc/ssl/private/guacd.key

Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet të ruani.

Rinisni serverin Guacamole dhe Tomcat për të aplikuar ndryshimet.

$ sudo systemctl restart tomcat guacd

Hapi 6 - Instaloni dhe konfiguroni MySQL

Apache Guacamole ofron lloje të ndryshme të metodave të vërtetimit. Për qëllime testimi, mjafton vërtetimi i thjeshtë i bazuar në fjalëkalim. Por për mjediset e prodhimit, ne duhet të zbatojmë një metodë më të fortë dhe më të mirë të vërtetimit. Këtu, ne do të zbatojmë vërtetimin e bazuar në bazën e të dhënave duke përdorur MySQL.

Instaloni MySQL.

$ sudo dnf install mysql-server

Aktivizo dhe nis shërbimin MySQL.

$ sudo systemctl enable mysqld --now

Instalim i sigurt MySQL.

$ sudo mysql_secure_installation

Për hapin e parë, do t'ju pyesin nëse dëshironi të konfiguroni shtesën Validate Password, të cilën mund ta përdorni për të testuar fuqinë e fjalëkalimit tuaj MySQL. Zgjidhni Y për të vazhduar. Do t'ju kërkohet të zgjidhni nivelin e vërtetimit të fjalëkalimit në hapin tjetër. Zgjidhni 2 i cili është niveli më i fortë dhe do të kërkojë që fjalëkalimi juaj të jetë të paktën tetë karaktere dhe të përfshijë një përzierje të shkronjave të mëdha, të vogla, numerike dhe të veçanta.

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

Në hapin tjetër do t'ju kërkohet të zgjidhni një fjalëkalim root. Zgjidhni një fjalëkalim të fortë që plotëson kërkesat e shtojcës së verifikimit të fjalëkalimit. Në hapin tjetër, do t'ju kërkohet nëse duhet të vazhdoni me fjalëkalimin e zgjedhur. Shtypni y për të vazhduar.

Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

Shtypni Y dhe më pas tastin ENTER për të gjitha kërkesat e mëposhtme për të hequr përdoruesit anonimë dhe bazën e të dhënave testuese, për të çaktivizuar hyrjet në rrënjë dhe për të ngarkuar rregullat e vendosura rishtazi.

...
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
...
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
...
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 - Dropping test database...
Success.
 - Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
...
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!

Futni guaskën MySQL. Futni fjalëkalimin tuaj root për të vazhduar.

$ mysql -u root -p

Krijo përdorues guacamole_user. Sigurohuni që fjalëkalimi plotëson kërkesat e përcaktuara më parë.

mysql> CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'Your_password2';

Krijo bazën e të dhënave guacamole_db.

mysql> CREATE DATABASE guacamole_db;

Jepni privilegjet e përdoruesit në bazën e të dhënave guacamole_db.

mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';

Dilni nga Shell.

mysql> exit

Hapi 7 - Konfiguro Apache Guacamole

Drejtoria e konfigurimit të Guacamoles përcaktohet nga ndryshorja, GUACAMOLE_HOME. Të gjithë skedarët e konfigurimit, shtesat, etj., janë në këtë direktori. Skedari /etc/guacamole/guacamole.properties ruan të gjitha konfigurimet dhe cilësimet për Guacamole dhe shtesat e tij.

Shtesat dhe bibliotekat kërkojnë drejtori shtesë. Krijoni ato.

$ sudo mkdir /etc/guacamole/{extensions,lib}

Vendosni variablin shtëpiak Guacamole dhe ruajeni në skedarin e konfigurimit /etc/default/tomcat.

$ echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcat

Konfiguro vërtetimin e bazës së të dhënave Apache Guacamole

Ne kemi vendosur tashmë bazën e të dhënave për Guacamole në hapin e mëparshëm. Ne duhet të shkarkojmë shtojcën e vërtetimit Guacamole JDBC dhe bibliotekën MySQL Java Connector për të përfunduar konfigurimin.

Shkarkoni shtesën Guacamole JDBC nga faqja e saj e internetit.

$ cd ~
$ wget https://downloads.apache.org/guacamole/${GVERSION}/binary/guacamole-auth-jdbc-${GVERSION}.tar.gz

Ekstraktoni shtojcën në drejtorinë /etc/guacamole/extensions.

$ tar -xf guacamole-auth-jdbc-${GVERSION}.tar.gz
$ sudo mv guacamole-auth-jdbc-${GVERSION}/mysql/guacamole-auth-jdbc-mysql-${GVERSION}.jar /etc/guacamole/extensions/

Hapi tjetër është importimi i skemës SQL në bazën e të dhënave MySQL. Kalo te drejtoria e shtojcave të nxjerra.

$ cd guacamole-auth-jdbc-${GVERSION}/mysql/schema

Importoni skedarët e skemës në MySQL.

$ cat *.sql | mysql -u root -p guacamole_db

Shkarkoni MySQL Java Connector. Merrni skedarin e arkivit të pavarur nga platforma. Në kohën e shkrimit të këtij tutoriali, versioni më i fundit i disponueshëm është 8.0.28.

$ cd ~
$ wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.28.tar.gz

Ekstraktoni arkivin dhe kopjoni përmbajtjen e tij në drejtorinë /etc/guacamole/lib.

$ tar -xf mysql-connector-java-8.0.28.tar.gz
$ sudo mv mysql-connector-java-8.0.28/mysql-connector-java-8.0.28.jar /etc/guacamole/lib/

Konfiguro skedarin e vetive të Guacamole

Krijo skedarin /etc/guacamole/guacamole.properties dhe hape atë për redaktim.

$ sudo nano /etc/guacamole/guacamole.properties

Vendos kodin e mëposhtëm në të. Zëvendësoni your_server_ip me adresën IP publike të serverëve tuaj.

guacd-hostname: your_server_ip
guacd-port:     4822

# MySQL properties
mysql-hostname: localhost
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: Your_password2

Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet të ruani.

Lidhni direktorinë e konfigurimit të Guacamole me direktorinë servlet të Tomcat.

$ sudo ln -s /etc/guacamole /opt/tomcat/.guacamole

Rinisni Tomcat për të aktivizuar vërtetimin e bazës së të dhënave. Ju nuk keni nevojë të rinisni guacd sepse është plotësisht i pavarur nga aplikacioni në internet dhe nuk merret me guacamole.properties ose vërtetimin e bazës së të dhënave në asnjë mënyrë .

$ sudo systemctl restart tomcat

Hapi 8 - Instaloni SSL

Për të instaluar një certifikatë SSL duke përdorur Lets Encrypt, duhet të instalojmë mjetin Certbot. Certbot kërkon depo EPEL për instalim, por ne mund të vazhdojmë drejtpërdrejt me instalimin pasi e kemi instaluar tashmë më herët.

Ekzekutoni komandat e mëposhtme për të instaluar Certbot.

$ sudo dnf install certbot

Gjeneroni certifikatën SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m  -d guacamole.example.com

Komanda e mësipërme do të shkarkojë një certifikatë në drejtorinë /etc/letsencrypt/live/guacamole.example.com në serverin tuaj.

Krijo një certifikatë grupi Diffie-Hellman.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Krijoni një drejtori sfide webroot për rinovimin automatik të Lets Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Krijo një Cron Job për të rinovuar SSL. Do të funksionojë çdo ditë për të kontrolluar certifikatën dhe për të rinovuar nëse është e nevojshme. Për këtë, së pari, krijoni skedarin /etc/cron.daily/certbot-renew dhe hapeni atë për redaktim.

$ sudo nano /etc/cron.daily/certbot-renew

Ngjit kodin e mëposhtëm.

#!/bin/sh
certbot renew --cert-name guacamole.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet.

Ndryshoni lejet në skedarin e detyrës për ta bërë atë të ekzekutueshëm.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Hapi 9 - Instaloni dhe konfiguroni Nginx si përfaqësues të kundërt

Konfiguro Tomcat për lidhjen e kundërt të përfaqësuesit

Përpara se të instalojmë Nginx, duhet të konfigurojmë Tomcat që të kalojë përmes adresës IP të largët të ofruar nga përfaqësuesi i kundërt Nginx.

Hapni skedarin /opt/tomcat/conf/server.xml për modifikim.

$ sudo nano /opt/tomcat/conf/server.xml

Gjeni rreshtin e mëposhtëm në skedar.

<Host name="localhost"  appBase="webapps" 
            unpackWARs="true" autoDeploy="true">

Ndryshoni rreshtin duke ngjitur kodin shtesë poshtë tij, kështu që të duket si më poshtë.

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.RemoteIpValve"
               internalProxies="127.0.0.1"
               remoteIpHeader="x-forwarded-for"
               remoteIpProxiesHeader="x-forwarded-by"
               protocolHeader="x-forwarded-proto" />

Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet.

Instaloni Nginx

Rocky Linux 8.5 shpërndahet me versionin më të fundit të qëndrueshëm të Nginx. Instaloni atë duke përdorur komandën e mëposhtme.

$ sudo dnf module install nginx:1.20

Verifikoni instalimin.

$ nginx -v
nginx version: nginx/1.20.1

Aktivizo shërbimin Nginx.

$ sudo systemctl enable nginx

Krijoni dhe hapni skedarin /etc/nginx/conf.d/guacamole.conf për modifikim.

$ sudo nano /etc/nginx/conf.d/guacamole.conf

Vendos kodin e mëposhtëm në të.

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  guacamole.example.com;

    access_log  /var/log/nginx/guacamole.access.log;
    error_log   /var/log/nginx/guacamole.error.log;
    
    # SSL
    ssl_certificate      /etc/letsencrypt/live/guacamole.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/guacamole.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/guacamole.example.com/chain.pem;
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 8.8.8.8;

    location / {
      proxy_pass http://127.0.0.1:8080/guacamole/;
      proxy_buffering off;
      proxy_http_version 1.1;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $http_connection;
      client_max_body_size 1g;
      access_log off;
  }
}
# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  guacamole.example.com;
    return 301   https://$host$request_uri;
}

Ruaje skedarin duke shtypur Ctrl + X dhe duke futur Y kur të kërkohet pasi të përfundojë.

Hapni skedarin /etc/nginx/nginx.conf për modifikim.

$ sudo nano /etc/nginx/nginx.conf

Shtoni rreshtin e mëposhtëm përpara rreshtit include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet.

Verifikoni sintaksën e skedarit të konfigurimit Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Rregulloni lejen e SELinux për të lejuar Nginx të bëjë lidhje rrjeti.

$ sudo setsebool -P httpd_can_network_connect 1

Nisni shërbimin Nginx për të aktivizuar konfigurimin e ri.

$ sudo systemctl start nginx

Rinisni serverin Tomcat për të aplikuar ndryshimin e konfigurimit.

$ sudo systemctl restart tomcat

Hapi 10 - Hyrja në Guacamole

Hapni URL-në https://guacamole.example.com në shfletuesin tuaj dhe do të përshëndeteni me ekranin e mëposhtëm.

Fut guacadmin si emër përdoruesi dhe guacadmin si fjalëkalim dhe kliko Identifikohu për të vazhduar.

Krijo një Përdorues të ri Admin

Ju duhet të krijoni një përdorues të ri dhe të fshini përdoruesin ekzistues për qëllime sigurie. Për ta bërë këtë, klikoni në guacadmin lart djathtas dhe klikoni në menynë Cilësimet nga menyja rënëse.

Kalo te skeda Përdoruesit dhe kliko në butonin Përdorues i ri për të filluar.

Futni të dhënat tuaja dhe shënoni të gjitha lejet.

Kliko Ruaj kur të përfundojë. Dilni nga përdoruesi guacadmin dhe identifikohuni përsëri duke përdorur përdoruesin e krijuar rishtazi.

Kthehuni në ekranin e përdoruesve. zgjidhni përdoruesin guacadmin për ta modifikuar dhe kliko butonin Fshi në fund për të fshirë përdoruesin.

Hapi 11 - Si të përdorni Guacamole

Për tutorialin tonë, ne do t'ju tregojmë se si të lidheni me një server duke përdorur protokollin SSH.

Shkoni te menyja Cilësimet të Guacamole dhe zgjidhni Lidhjet. Nën ekranin Lidhjet, shtypni butonin Lidhje e re.

Zgjidhni një emër për lidhjen dhe zgjidhni SSH si protokoll nga menyja rënëse.

Në seksionin Parametrat, shkruani adresën IP të serverit tuaj si emër pritës, 22 si port (ose nëse keni një port të personalizuar SSH, përdorni atë) dhe emrin tuaj të përdoruesit. Nëse jeni duke përdorur vërtetimin e bazuar në fjalëkalim, futni fjalëkalimin e përdoruesit ose ngjisni çelësin privat. Futni frazën e kalimit për çelësin privat nëse po e përdorni.

Nëse dëshironi të aktivizoni ndonjë cilësim shtesë, bëjeni këtë. Kliko Ruaj për të përfunduar shtimin e lidhjes.

Kthehuni në panelin e kontrollit dhe klikoni në emrin e lidhjes nën Të gjitha lidhjet dhe do të çoheni në terminalin SSH.

konkluzioni

Kjo përfundon tutorialin tonë për instalimin dhe përdorimin e Apache Guacamole për të krijuar një lidhje SSH në një server të bazuar në Rocky Linux 8. Nëse keni ndonjë pyetje, postojini ato në komentet më poshtë.