Apache Guacamole ist ein kostenloses, clientloses Open-Source-Remote-Desktop-Gateway. Es unterstützt Standardprotokolle wie SSH, RDP und VNC. Es benötigt keine Plugins und Clients von Drittanbietern, um zu funktionieren. Sie können über ein webbasiertes Gateway auf Ihre Maschine zugreifen. Es kann hinter einen Proxy-Server gestellt werden, der es Ihnen ermöglicht, von überall auf der Welt auf Ihre Server zuzugreifen.
Guacamole besteht aus zwei Komponenten:
guacamole-server
enthält alle nativen, serverseitigen Komponenten, die von Guacamole benötigt werden, um eine Verbindung zu Remote-Desktops herzustellen.guacd
ist der Proxy-Daemon, der auf dem Guacamole-Server läuft, Benutzerverbindungen akzeptiert und sie dann mit den Remote-Desktops verbindet.guacamole-client
enthält alle Java- und Javascript-Komponenten von Guacamole, aus denen die Webanwendung besteht, mit der Benutzer eine Verbindung zu ihren Desktops herstellen können.
In diesem Tutorial erfahren Sie, wie Sie Apache Guacamole auf einem Rocky Linux 8-basierten Server installieren und verwenden. Sie erfahren auch, wie Sie damit eine Verbindung zu einem Remote-Desktop herstellen. Wir werden Guacamole installieren, indem wir aus seinem Quellcode bauen.
Voraussetzungen
-
Ein Server mit Rocky Linux 8 mit mindestens 2 GB RAM und 2 CPU-Kernen.
-
Ein Domänenname für den Helpdesk, der auf den Server verweist. Für unser Tutorial verwenden wir
uvdesk.example.com
Domäne. -
Ein nicht-root-basierter Benutzer mit sudo-Berechtigungen.
-
Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo dnf aktualisieren
-
Installieren Sie grundlegende Dienstprogrammpakete. Einige davon sind möglicherweise bereits installiert.
$ sudo dnf install wget curl nano unzip yum-utils -y
Schritt 1 – Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Rocky Linux verwendet Firewalld Firewall. Überprüfen Sie den Status der Firewall.
$ sudo firewall-cmd --staterunning
Die Firewall arbeitet mit verschiedenen Zonen, und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Listet alle Dienste und Ports auf, die auf der Firewall aktiv sind.
$ sudo firewall-cmd --permanent --list-services
Es sollte die folgende Ausgabe zeigen.
cockpit dhcpv6-client ssh
HTTP- und HTTPS-Ports zulassen.
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Überprüfen Sie den Status der Firewall erneut.
$ sudo firewall-cmd --permanent --list-services
Sie sollten eine ähnliche Ausgabe sehen.
cockpit dhcpv6-client http https ssh
Laden Sie die Firewall neu, um die Änderungen zu aktivieren.
$ sudo firewall-cmd --reload
Schritt 2 – Bibliotheken installieren
Vor der Installation der Bibliotheken müssen wir das EPEL-Repository installieren und das PowerTools-Repository aktivieren.
$ sudo dnf install epel-release -y$ sudo dnf config-manager --set-enabled powertools
Der erste Schritt besteht darin, Bibliotheken zu installieren, die zum Erstellen von Guacamole erforderlich sind. Installieren Sie die erforderlichen Bibliotheken.
$ sudo dnf install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool libuuid-devel uuid-devel make cmake
Die oben genannten Abhängigkeiten sind obligatorisch, was bedeutet, dass Guacamole ohne sie nicht gebaut werden kann. Sie können einige optionale Abhängigkeiten installieren, um Unterstützung für verschiedene Protokolle und Funktionen hinzuzufügen.
Aber zuerst müssen Sie das RPMFusion Free Repository aktivieren, da es das Paket ffmpeg-devel
enthält .
$ sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
Installieren Sie die optionalen Abhängigkeiten.
$ 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-develSchritt 3 – Apache Tomcat installieren
Für unser Tutorial installieren wir Apache Tomcat 9, für dessen Funktion Java 8 und höher erforderlich ist.
Java installieren
Wir werden OpenJDK 11 installieren, die Open-Source-Implementierung der Java-Plattform.
Führen Sie den folgenden Befehl aus, um OpenJDK zu installieren.
$ sudo dnf install java-11-openjdk-develÜberprüfen Sie die Installation.
$ java -versionopenjdk 11.0.14 2022-01-18 LTSOpenJDK 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 )Tomcat-Benutzer erstellen
Erstellen Sie als Nächstes einen Benutzer für den Tomcat-Dienst. Wir werden
/opt/tomcat
setzen als Home-Verzeichnis.$ sudo useradd -m -U -d /opt/tomcat -s /bin/false TomcatTomcat herunterladen
Die neueste Version von Tomcat v10 kann von der Download-Seite heruntergeladen werden. Zum Zeitpunkt der Erstellung dieses Tutorials ist v9.0.59 die neueste verfügbare Version. Überprüfen Sie die neueste Version, bevor Sie Tomcat herunterladen.
Verwenden Sie
wget
um Tomcat herunterzuladen.$ TVERSION=9.0.59$ wget https://dlcdn.apache.org/tomcat/tomcat-9/v${TVERSION}/bin/apache-tomcat-${TVERSION}.tar.gzExtrahieren Sie die Datei nach
/opt/tomcat
Verzeichnis.$ sudo tar -xf apache-tomcat-${TVERSION}.tar.gz --strip-components=1 -C /opt/tomcat/Ändern Sie den Eigentümer des Verzeichnisses auf den Tomcat-Benutzer.
$ sudo chown -R Tomcat:Tomcat /opt/TomcatErstellen Sie eine Systemd-Unit-Datei und starten Sie Tomcat
Erstellen und öffnen Sie die Datei
/etc/systemd/system/tomcat.service
zum Bearbeiten.$ sudo nano /etc/systemd/system/tomcat.serviceFügen Sie den folgenden Code ein.
[Unit]Description=Apache Tomcat 9 Servlet containerWants=network.targetAfter=network.target[Service]Type=forkingUser=tomcatGroup=tomcatEnvironment="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.shExecStop=/opt/tomcat/bin/shutdown.shRestart=always[Install]WantedBy=multi-user.targetSpeichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie zum Speichern aufgefordert werden.
Laden Sie den Service-Daemon neu, um den Tomcat-Service zu aktivieren.
$ sudo systemctl daemon-reloadAktivieren und starten Sie den Tomcat-Dienst.
$ sudo systemctl enable tomcat --nowÜberprüfen Sie den Dienststatus.
$ sudo systemctl status Tomcat? tomcat.service – Apache Tomcat 9 Servlet-Container Geladen:geladen (/etc/systemd/system/tomcat.service; aktiviert; Herstellervoreinstellung:deaktiviert) Aktiv:aktiv (läuft) seit Mi 2022-03-09 09:48:38 UTC; Vor 8s Prozess: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 ..Mär 09 09:48 :38 guacamole systemd[1]:Apache Tomcat 9 Servlet-Container gestartet...Mar 09 09:48:38 guacamole systemd[1]:Apache Tomcat 9 Servlet-Container gestartet.Schritt 4 – Guacamole herunterladen und erstellen
Sie können die neueste stabile Version von Guacamole von seiner Website herunterladen. Zum Zeitpunkt der Erstellung dieses Tutorials war die neueste verfügbare Version 1.4.0. Laden Sie den Guacamole-Quellcode herunter.
$ GVERSION=1.4.0$ wget https://downloads.apache.org/guacamole/${GVERSION}/source/guacamole-server-${GVERSION}.tar.gzEntpacken Sie das Archiv und wechseln Sie in das neu erstellte Verzeichnis.
$ tar -xzf Guacamole-Server-${GVERSION}.tar.gz$ cd Guacamole-Server-${GVERSION}/Führen Sie
configure
aus Befehl, um festzustellen, welche Bibliotheken verfügbar sind, und um Komponenten zum Erstellen auszuwählen.$ ./configure --with-systemd-dir=/etc/systemd/system/Das Verzeichnis
/etc/systemd/system/
Hier wird das Startskript während des Build-Prozesses installiert, um Guacamole so zu konfigurieren, dass es beim Booten automatisch startet.Bei erfolgreichem Abschluss erhalten Sie die folgende Ausgabe.
Prüfe auf eine BSD-kompatible Installation... /usr/bin/install -cPrüfe, ob die Build-Umgebung in Ordnung ist... ja...----------------- -------------------------------Guacamole-Server Version 1.4.0------------ ------------------------------------ Bibliotheksstatus:freerdp2 .......... .. ja pango ............... ja libavcodec .......... ja libavformat.......... ja libavutil ..... ...... ja libssh2 ............. ja libssl .............. ja libswscale .......... ja libtelnet ........... ja libVNCServer ........ ja libvorbis ........... ja libpulse ............ ja libwebsockets ....... ja libwebp ............. ja wsock32 ............. nein Protokollunterstützung:Kubernetes .... ja RDP . .......... ja SSH ........... ja Telnet ........ ja VNC ........... ja Dienste / Tools :guacd ...... ja guacenc .... ja guaclog .... ja FreeRDP-Plugins:/usr/lib64/freerdp2 Init-Skripte:nein Systemd-Units:/etc/systemd/system/ Geben Sie „make“ ein, um den Guacamole-Server zu kompilieren.Wenn Sie einige Bibliotheken nicht installiert haben, sehen Sie
no
stattyes
in der Ausgabe. Wenn jedoch eine wichtige Bibliothek fehlt, schlägt der Befehl fehl. Um nach weiteren Konfigurationsoptionen zu suchen, führen Sie./configure --help
aus Befehl.Kompilieren und installieren Sie den Guacamole-Server mit den folgenden Befehlen.
$ make &&sudo make installFühren Sie den folgenden Befehl aus, um den Systemcache der installierten Bibliotheken zu aktualisieren.
$ sudo ldconfigLaden Sie den Service-Daemon neu.
$ sudo systemctl daemon-reloadAktivieren und starten Sie den Guacamole-Dienst.
$ sudo systemctl enable guacd --nowÜberprüfen Sie den Status des Dienstes.
$ sudo systemctl status guacd? guacd.service - Guacamole-Server Geladen:geladen (/etc/systemd/system/guacd.service; aktiviert; Herstellervoreinstellung:deaktiviert) Aktiv:aktiv (läuft) seit Do 10.03.2022 09:13:41 UTC; vor 7s Dokumente:man:guacd(8) Haupt-PID:85349 (guacd) Aufgaben:1 (Grenze:11181) Speicher:10,8 MB CGroup:/system.slice/guacd.service ??85349 /usr/local/sbin/guacd -fMar 10 09:13:41 guacamole systemd[1]:Guacamole Server gestartet.Mar 10 09:13:41 guacamole guacd[85349]:Guacamole Proxy Daemon (guacd) Version 1.4.0 gestartetMar 10 09:13:41 guacamole guacd [85349]:guacd[85349]:INFO:Guacamole-Proxy-Daemon (guacd) Version 1.4.0 gestartet am 10. März 09:13:41 guacamole guacd[85349]:guacd[85349]:INFO:Hören auf Host ::1, Port 4822Mär 10 09:13:41 guacamole guacd[85349]:Lauscht auf Host ::1, Port 4822Schritt 5 – Guacamole-Client installieren
Nachdem Sie den Server installiert haben, ist der nächste Schritt die Installation des Clients.
Erstellen Sie das Konfigurationsverzeichnis für Guacamole.
$ sudo mkdir /etc/guacamoleIm Gegensatz zum Guacamole-Server ist der Guacamole-Client im Quellcode und in Binärform verfügbar. Für unser Tutorial werden wir die Binärdatei herunterladen. Sie können sich jedoch dafür entscheiden, den Client aus der Quelle zu erstellen.
Laden Sie die Guacamole-Client-Binärdatei von der Website herunter.
$ sudo wget https://downloads.apache.org/guacamole/${GVERSION}/binary/guacamole-${GVERSION}.war -O /etc/guacamole/guacamole.warDer obige Befehl lädt die Guacamole-Binärdatei herunter und kopiert sie in
/etc/guacamole
Verzeichnis.Damit der Client funktioniert, muss er aus dem Tomcat-Verzeichnis bereitgestellt werden, das
$CATALINA_HOME/webapps/
ist . In Schritt 3 setzen wir/opt/tomcat
als$CATALINA_HOME
.Führen Sie den folgenden Befehl aus, um einen symbolischen Link von
/etc/guacamole/guacamole.war
zu erstellen in das Tomcat-Webapps-Verzeichnis.$ sudo ln -s /etc/guacamole/guacamole.war /opt/tomcat/webapps/Ändern Sie die Berechtigung der App auf
tomcat
Benutzer.$ sudo chown -R tomcat:tomcat /opt/tomcat/webappsErstellen Sie die Konfigurationsdatei der Webanwendung unter
/etc/guacamole/guacd.conf
.$ sudo nano /etc/guacamole/guacd.confFügen Sie den folgenden Code darin ein. Ersetzen Sie
your_server_IP
mit der öffentlichen IP-Adresse Ihres Servers.## guacd-Konfigurationsdatei#[daemon]#pid_file =/var/run/guacd.pidlog_level =info[server]bind_host =your_server_IPbind_port =4822## Die folgenden Parameter sind nur gültig, wenn# guacd mit SSL-Unterstützung erstellt wurde. ## [ssl]# server_certificate =/etc/ssl/certs/guacd.crt# server_key =/etc/ssl/private/guacd.keySpeichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie zum Speichern aufgefordert werden.
Starten Sie den Guacamole-Server und Tomcat neu, um die Änderungen zu übernehmen.
$ sudo systemctl Tomcat guacd neu startenSchritt 6 – MySQL installieren und konfigurieren
Apache Guacamole bietet verschiedene Arten von Authentifizierungsmethoden. Für Testzwecke ist eine einfache passwortbasierte Authentifizierung ausreichend. Aber für Produktionsumgebungen müssen wir eine stärkere und bessere Authentifizierungsmethode implementieren. Hier implementieren wir eine datenbankbasierte Authentifizierung mit MySQL.
Installieren Sie MySQL.
$ sudo dnf install mysql-serverAktivieren und starten Sie den MySQL-Dienst.
$ sudo systemctl enable mysqld --nowSichere MySQL-Installation.
$ sudo mysql_secure_installationIm ersten Schritt werden Sie gefragt, ob Sie das Validate Password Plugin einrichten möchten, mit dem Sie die Stärke Ihres MySQL-Passworts testen können. Wählen Sie
Y
fortfahren. Im nächsten Schritt werden Sie aufgefordert, die Passwortvalidierungsstufe auszuwählen. Wählen Sie2
Dies ist die stärkste Stufe und erfordert, dass Ihr Passwort mindestens acht Zeichen lang ist und eine Mischung aus Großbuchstaben, Kleinbuchstaben, Ziffern und Sonderzeichen enthält.Sichern der Bereitstellung des MySQL-Servers. Herstellen einer Verbindung zu MySQL mit einem leeren Passwort. Die VALIDATE PASSWORD COMPONENT kann verwendet werden, um Passwörter zu testen und die Sicherheit zu verbessern. Es prüft die Stärke des Passworts und erlaubt den Benutzern, nur die Passwörter festzulegen, die sicher genug sind. Möchten Sie die Komponente VALIDATE PASSWORD einrichten?Drücken Sie y|Y für Ja, jede andere Taste für Nein:YEs gibt drei Ebenen der Kennwortvalidierungsrichtlinie:NIEDRIG Länge>=8MITTEL Länge>=8, numerisch, gemischte Groß- und Kleinschreibung und SonderzeichenSTRONG Länge>=8, numerisch, gemischte Groß-/Kleinschreibung, Sonderzeichen und WörterbuchdateiBitte geben Sie 0 =NIEDRIG, 1 =MITTEL und 2 =STRONG ein:2Im nächsten Schritt werden Sie aufgefordert, ein Root-Passwort zu wählen. Wählen Sie ein sicheres Passwort, das die Anforderungen des Passwortvalidierungs-Plugins erfüllt. Im nächsten Schritt werden Sie gefragt, ob Sie mit dem gewählten Passwort fortfahren möchten. Drücken Sie
y
um fortzufahren.Bitte legen Sie hier das Passwort für root fest.Neues Passwort:Neues Passwort erneut eingeben:Geschätzte Passwortstärke:100Möchten Sie mit dem angegebenen Passwort fortfahren?(Drücken Sie y|Y für Ja, jede andere Taste für Nein) :JaDrücken Sie
Y
und dannENTER
Schlüssel für alle folgenden Eingabeaufforderungen, um anonyme Benutzer und die Testdatenbank zu entfernen, Root-Anmeldungen zu deaktivieren und die neu festgelegten Regeln zu laden....Anonyme Benutzer entfernen? (Drücken Sie y|Y für Ja, jede andere Taste für Nein) :YSuccess....Disallow root login remote? (Drücken Sie y|Y für Ja, jede andere Taste für Nein) :YErfolgreich....Testdatenbank und Zugriff darauf entfernen? (Drücken Sie y|Y für Ja, jede andere Taste für Nein) :Y - Dropping test database...Success. - Privilegien auf Testdatenbank entfernen ... Erfolgreich. Das Neuladen der Privilegientabellen stellt sicher, dass alle bisher vorgenommenen Änderungen sofort wirksam werden .... Privilegientabellen jetzt neu laden? (Drücken Sie y|Y für Ja, jede andere Taste für Nein) :YSuccess.All done!Geben Sie die MySQL-Shell ein. Geben Sie Ihr Root-Passwort ein, um fortzufahren.
$ mysql -u root -pErstellen Sie
guacamole_user
Benutzer. Stellen Sie sicher, dass das Passwort die zuvor festgelegten Anforderungen erfüllt.mysql> CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'Your_password2';Erstellen Sie
guacamole_db
Datenbank.mysql> CREATE DATABASE guacamole_db;Gewähren Sie dem Benutzer Berechtigungen für die
guacamole_db
Datenbank.mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';Verlassen Sie die Shell.
mysql> beendenSchritt 7 – Apache Guacamole konfigurieren
Das Konfigurationsverzeichnis von Guacamole wird durch die Variable
GUACAMOLE_HOME
definiert . Alle Konfigurationsdateien, Erweiterungen usw. befinden sich in diesem Verzeichnis. Die/etc/guacamole/guacamole.properties
speichert alle Konfigurationen und Einstellungen für Guacamole und seine Erweiterungen.Erweiterungen und Bibliotheken erfordern zusätzliche Verzeichnisse. Erstellen Sie sie.
$ sudo mkdir /etc/guacamole/{extensions,lib}Legen Sie die Home-Variable Guacamole fest und speichern Sie sie in
/etc/default/tomcat
Konfigurationsdatei.$ echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcatKonfigurieren Sie die Apache Guacamole-Datenbankauthentifizierung
Die Datenbank für Guacamole haben wir bereits im vorherigen Schritt eingerichtet. Wir müssen das Guacamole JDBC-Authentifikator-Plugin und die MySQL Java Connector-Bibliothek herunterladen, um die Konfiguration abzuschließen.
Laden Sie das Guacamole JDBC Plugin von seiner Website herunter.
$ cd ~$ wget https://downloads.apache.org/guacamole/${GVERSION}/binary/guacamole-auth-jdbc-${GVERSION}.tar.gzExtrahieren Sie das Plugin nach
/etc/guacamole/extensions
Verzeichnis.$ tar -xf guacamole-auth-jdbc-${GVERSION}.tar.gz$ sudo mv guacamole-auth-jdbc-${GVERSION}/mysql/guacamole-auth-jdbc-mysql-${GVERSION}. jar /etc/guacamole/extensions/Der nächste Schritt besteht darin, das SQL-Schema in die MySQL-Datenbank zu importieren. Wechseln Sie in das extrahierte Plugin-Verzeichnis.
$ cd guacamole-auth-jdbc-${GVERSION}/mysql/schemaImportieren Sie die Schemadateien in MySQL.
$ cat *.sql | mysql -u root -p guacamole_dbLaden Sie den MySQL-Java-Connector herunter. Holen Sie sich die plattformunabhängige Archivdatei. Zum Zeitpunkt der Erstellung dieses Tutorials ist die neueste verfügbare Version 8.0.28.
$ cd ~$ wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.28.tar.gzExtrahieren Sie das Archiv und kopieren Sie seinen Inhalt nach
/etc/guacamole/lib
Verzeichnis.$ 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 /Guacamole-Eigenschaftendatei konfigurieren
Erstellen Sie die
/etc/guacamole/guacamole.properties
Datei und öffnen Sie sie zum Bearbeiten.$ sudo nano /etc/guacamole/guacamole.propertiesFügen Sie den folgenden Code darin ein. Ersetzen Sie
your_server_ip
mit der öffentlichen IP-Adresse Ihres Servers.guacd-hostname:your_server_ipguacd-port:4822# MySQL-Eigenschaftenmysql-hostname:localhostmysql-database:guacamole_dbmysql-username:guacamole_usermysql-password:Your_password2Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie zum Speichern aufgefordert werden.
Verknüpfen Sie das Guacamole-Konfigurationsverzeichnis mit dem Tomcat-Servlet-Verzeichnis.
$ sudo ln -s /etc/guacamole /opt/tomcat/.guacamoleStarten Sie Tomcat neu, um die Datenbankauthentifizierung zu aktivieren. Sie müssen
guacd
nicht neu starten weil es völlig unabhängig von der Webanwendung ist und sich nicht um dieguacamole.properties
kümmert oder Datenbankauthentifizierung in irgendeiner Weise.$ sudo systemctl Tomcat neu startenSchritt 8 – SSL installieren
Um ein SSL-Zertifikat mit Let’s Encrypt zu installieren, müssen wir das Certbot-Tool installieren. Certbot benötigt das EPEL-Repository für die Installation, aber wir können direkt mit der Installation fortfahren, da wir es bereits früher installiert haben.
Führen Sie die folgenden Befehle aus, um Certbot zu installieren.
$ sudo dnf install certbotGenerieren Sie das SSL-Zertifikat.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d guacamole.example.comDer obige Befehl lädt ein Zertifikat in
/etc/letsencrypt/live/guacamole.example.com
herunter Verzeichnis auf Ihrem Server.Erstellen Sie eine Diffie-Hellman-Gruppe Zertifikat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Erstellen Sie ein herausforderndes Webroot-Verzeichnis für die automatische Verlängerung von Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencryptErstellen Sie einen Cron-Job, um das SSL zu erneuern. Es wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und bei Bedarf zu erneuern. Erstellen Sie dazu zunächst die Datei
/etc/cron.daily/certbot-renew
und zum Bearbeiten öffnen.$ sudo nano /etc/cron.daily/certbot-renewFügen Sie den folgenden Code ein.
#!/bin/shcertbot renew --cert-name guacamole.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Ändern Sie die Berechtigungen für die Aufgabendatei, um sie ausführbar zu machen.
$ sudo chmod +x /etc/cron.daily/certbot-renewSchritt 9 – Nginx als Reverse-Proxy installieren und konfigurieren
Tomcat für Reverse-Proxy-Verbindung konfigurieren
Vor der Installation von Nginx müssen wir Tomcat so konfigurieren, dass es die vom Nginx-Reverse-Proxy bereitgestellte Remote-IP-Adresse weiterleitet.
Öffnen Sie die Datei
/opt/tomcat/conf/server.xml
Datei zum Bearbeiten.$ sudo nano /opt/tomcat/conf/server.xmlSuchen Sie die folgende Zeile in der Datei.
Ändern Sie die Zeile, indem Sie zusätzlichen Code darunter einfügen, sodass sie wie folgt aussieht.
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Nginx installieren
Rocky Linux 8.5 wird mit der neuesten stabilen Version von Nginx ausgeliefert. Installieren Sie es mit dem folgenden Befehl.
$ sudo dnf module install nginx:1.20Überprüfen Sie die Installation.
$ nginx -vnginx-Version:nginx/1.20.1Aktivieren Sie den Nginx-Dienst.
$ sudo systemctl enable nginxErstellen und öffnen Sie die Datei
/etc/nginx/conf.d/guacamole.conf
zum Bearbeiten.$ sudo nano /etc/nginx/conf.d/guacamole.confFügen Sie den folgenden Code ein.
server {listen 443 ssl http2; hören [::]:443 ssl http2; Servername 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 freigegeben:MozSSL:10m; ssl_session_tickets aus; 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 an; ssl_stapling_verify an; ssl_dhparam /etc/ssl/certs/dhparam.pem; Resolver 8.8.8.8; Standort / { Proxy_Pass http://127.0.0.1:8080/guacamole/; Proxy_buffering aus; 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 Verbindung $http_connection; client_max_body_size 1g; access_log off; }}# HTTPSserver erzwingen {listen 80; hör zu [::]:80; Servername guacamole.example.com; gib 301 https://$host$request_uri;}zurückSpeichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.
Öffnen Sie die Datei
/etc/nginx/nginx.conf
zum Bearbeiten.$ sudo nano /etc/nginx/nginx.confFügen Sie die folgende Zeile vor der Zeile
include /etc/nginx/conf.d/*.conf;
hinzu .server_names_hash_bucket_size 64;Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.
$ sudo nginx -tnginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreichKorrigieren Sie die SELinux-Berechtigung, damit Nginx Netzwerkverbindungen herstellen kann.
$ sudo setsebool -P httpd_can_network_connect 1Starten Sie den Nginx-Dienst, um die neue Konfiguration zu aktivieren.
$ sudo systemctl start nginxStarten Sie den Tomcat-Server neu, um die Konfigurationsänderung zu übernehmen.
$ sudo systemctl Tomcat neu startenSchritt 10 – Zugriff auf Guacamole
Öffnen Sie die URL
https://guacamole.example.com
in Ihrem Browser, und Sie werden mit dem folgenden Bildschirm begrüßt.
Geben Sie
guacadmin
ein als Benutzername undguacadmin
als Passwort und klicken Sie auf Anmelden um fortzufahren.Erstellen Sie einen neuen Admin-Benutzer
Aus Sicherheitsgründen sollten Sie einen neuen Benutzer erstellen und den vorhandenen Benutzer löschen. Klicken Sie dazu auf
guacadmin
oben rechts und klicken Sie auf Einstellungen Menü aus dem Dropdown-Menü.
Wechseln Sie zu den Benutzern und klicken Sie auf Neuer Benutzer Schaltfläche, um loszulegen.
Geben Sie Ihre Daten ein und aktivieren Sie alle Berechtigungen.
Klicken Sie auf Speichern wenn fertig. Melden Sie sich vom guacadmin ab Benutzer und melden Sie sich mit dem neu erstellten Benutzer wieder an.
Gehen Sie zurück zum Benutzerbildschirm. Wählen Sie den guacadmin aus Benutzer zum Bearbeiten und klicken Sie auf Löschen Schaltfläche unten, um den Benutzer zu löschen.
Schritt 11 – Verwendung von Guacamole
In unserem Tutorial zeigen wir Ihnen, wie Sie sich mit dem SSH-Protokoll mit einem Server verbinden.
Gehen Sie zu den Einstellungen Guacamole-Menü und wählen Sie Verbindungen . Drücken Sie auf dem Bildschirm „Verbindungen“ auf Neue Verbindung Schaltfläche.
Wählen Sie einen Namen für die Verbindung und wählen Sie SSH als Protokoll aus dem Dropdown-Menü.
Geben Sie im Abschnitt Parameter die IP-Adresse Ihres Servers als Hostnamen, 22 als Port (oder wenn Sie einen benutzerdefinierten SSH-Port haben, verwenden Sie diesen) und Ihren Benutzernamen ein. Wenn Sie die passwortbasierte Authentifizierung verwenden, geben Sie das Passwort des Benutzers ein oder fügen Sie den privaten Schlüssel ein. Geben Sie die Passphrase für den privaten Schlüssel ein, falls Sie ihn verwenden.
Wenn Sie zusätzliche Einstellungen aktivieren möchten, tun Sie dies. Klicken Sie auf Speichern um das Hinzufügen der Verbindung abzuschließen.
Gehen Sie zurück zum Dashboard und klicken Sie auf den Verbindungsnamen unter Alle Verbindungen, und Sie werden zum SSH-Terminal weitergeleitet.
Schlussfolgerung
Damit ist unser Tutorial zur Installation und Verwendung von Apache Guacamole zum Erstellen einer SSH-Verbindung auf einem Rocky Linux 8-basierten Server abgeschlossen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.