
Apache Guacamole im Vergleich zur Active Directory-Authentifizierung
Wir haben bereits bei einer anderen Gelegenheit über die Wunder von Apache Guacamole gesprochen, diese Plattform für die sichere Anbindung an unsere Umgebung über RDP, SSH (englisch), VNC (VNC)… Ideal für kleine Unternehmen, Labore oder Schulungen. Heute werden wir sehen, wie man es in Active Directory integriert und bestimmte Ressourcen für verschiedene Benutzer veröffentlicht!
Was ich gesagt habe, in Dieser vorherige Beitrag, Wir haben bereits gesehen, wie man Apache Guacamole installiert, und wie man es hinter einem Reverse-Proxy absichert. Wir werden dieses Produkt verwenden, um jeden Remote-Desktop über RDP sicher im Internet zu veröffentlichen, sowie VNC oder SSH u.a.. Wir werden in der Lage sein, die Remote-Verbindung unserer Benutzer mit der Organisation sicher zu ermöglichen, Wir werden es ihnen ermöglichen, sich gut mit ihren traditionellen Positionen zu verbinden, oder z.B. gegen einen Pool von Maschinen, die einen Desktop, z. B. einige VDI- oder Remotedesktopserver.
Die Idee dieses Beitrags wird es sein, bestimmten Active Directory-Benutzern zu ermöglichen, sich mit ihrem eigenen Benutzer zu verbinden und somit keine lokalen Benutzer zu verwenden, jeder mit einem anderen Passwort… Und sobald Apache Guacamole mit dem AD verbunden ist, Wir werden in der Lage sein, die Verbindungen zu erstellen, die wir später für unsere Benutzer veröffentlichen möchten.
Zuerst installieren wir die Erweiterung für die LDAP-Authentifizierung :
wget http://apache.mirror.iphh.net/guacamole/1.3.0/binary/guacamole-auth-ldap-1.3.0.tar.gz tar xvzf guacamole-auth-ldap-1.3.0.tar.gz sudo cp ./guacamole-auth-ldap-1.3.0/guacamole-auth-ldap-1.3.0.jar /etc/guacamole/extensions/
Wir bearbeiten und fügen in der Konfigurationsdatei von Apache Guacamole /etc/guacamole/guacamole.properties die Konfiguration der Verbindung zum Active Directory hinzu.
guacd-hostname: localhost guacd-port: 4822 #Benutzer-Mapping: /etc/guacamole/user-mapping.xml #auth-Anbieter: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider auth-provider: net.sourceforge.guacamole.net.auth.ldap.LDAPAuthenticationProvider ldap-hostname: DIRECCIÓN_IP_CONTROLADOR_DE_DOMINIO ldap-port: 389 # Oder sicher: 636 ldap-benutzer-basis-dn: OU=Route,DC=Domäne,DC=lokales ldap-benutzername-attribut: samAccountName ldap-config-base-dn: OU=Route,DC=Domäne,DC=lokale ldap-Verschlüsselungsmethode: nichts # Oder sicher: SSL-Verbindung, starttls ldap-search-bind-dn:cn=usuario_LDAP,OU=Route,DC=Domäne,DC=lokales ldap-search-bind-passwort:PASSWORT
Und wir starten Tomcat neu:
sudo systemctl tomcat9 neu starten
Jetzt haben wir 2 Optionen, oder tippen und erweitern Sie unser AD-Schema, um Benutzern Attribute hinzuzufügen, Was meinst du… oder Einrichten eines MySQL auf dem Guacamole-Gerät selbst, wo Benutzer und ihre Zuordnungen in einer Datenbank gespeichert werden. Es stimmt, dass letzteres weniger beängstigend ist… Also haben wir MariaDB installiert:
sudo apt-get install mariadb-server mariadb-client
Legen Sie die Zeitzone auf MariaDB fest, indem Sie die Datei /etc/mysql/mariadb.conf.d/50-server.cnf bearbeiten.
[Mysqld] ... default-time-zone='+01:00' ...
Es ist an der Zeit, die Datenbank und den Benutzer für Guacamole zu erstellen, Zuerst verbinden wir uns mit MySQL:
sudo mysql -uroot
Und was ich gesagt habe, Wir erstellen die Datenbank, den Benutzer und erteilen Sie die entsprechenden Berechtigungen:
DATENBANK-bd_guacamole ERSTELLEN; CREATE USER 'USUARIO_GUACAMOLE'@'localhost' IDENTIFIED BY 'CONTRASEÑA'; GEWÄHREN AUSWÄHLEN,EINFÜGEN,AKTUALISIEREN,DELETE ON bd_guacamole.* to 'USUARIO_GUACAMOLE'@'localhost'; FLUSH-BERECHTIGUNGEN;
Um die MySQL-Authentifizierung verwenden zu können, Zuerst laden wir die folgende Erweiterung herunter https://apache.org/dyn/closer.lua/guacamole/1.3.0/binary/guacamole-auth-jdbc-1.3.0.tar.gz?action=download Wir laden es herunter und installieren es:
Tar ZXFV guacamole-auth-jdbc-1.3.0.tar.gz sudo cp guacamole-auth-jdbc-1.3.0/mysql/guacamole-auth-jdbc-mysql-1.3.0.jar /etc/guacamole/extensions/
Wir laden den Konnektor herunter https://dev.mysql.com/downloads/connector/j/ für unser Ubuntu, In meinem Fall ist ein 20.04 (https://dev.mysql.com/downloads/file/?id=504646) und wir installieren es:
sudo dpkg -i mysql-connector-java_8.0.25-1ubuntu20.04_all.deb sudo ln -s /usr/share/java/mysql-connector-java-8.0.25.jar /etc/guacamole/lib/.
Wir erstellen das DB-Schema:
cat guacamole-auth-jdbc-1.3.0/mysql/schema/*.sql | sudo mysql -uroot bd_guacamole
Wir bearbeiten unsere geliebte Guacamole-Konfigurationsdatei /etc/guacamole/guacamole.properties und fügen sie am Ende hinzu:
mysql-hostname: localhost mysql-port:3306 MySQL-Datenbank: mysql-username bd_guacamole: mysql-password USUARIO_GUACAMOLE: PASSWORT
Und wir haben die Tomcat- und Guacd-Dienste neu gestartet, um die vorherigen Änderungen neu zu laden:
sudo systemctl restart tomcat9 guacd
Wir geben Guacamole als guacadmin/guacadmin ein und ändern das Passwort, aber, Auge!
Wir müssen in unserem Active Directory erstellen (innerhalb unserer DN Base) Ein Benutzer mit dem Namen guacadmin, und darf NICHT das gleiche Passwort wie hier haben. da derjenige, mit dem wir uns angemeldet haben, der MySQL-Benutzer guacadmin ist und der andere für LDAP ist. Da wir in der Lage sein werden, uns mit LDAP-Benutzern und MySQL-Benutzern anzumelden
Und wenn wir uns wieder in Guacamole mit guacadmin und dem AD-Passwort anmelden, können wir alle Benutzer der DN Base von “Konfiguration” > “Benutzer”.
Nun, der nächste Schritt wird sein, die verschiedenen Verbindungen zu schaffen, die wir wollen, dann werden wir sie zuweisen, seit “Konfiguration” > “Verbindungen” > “Neue Verbindung”
Also geben wir der Verbindung einen Namen, Wir wählen das Protokoll, Denken Sie daran, dass es RDP für Remote Desktop sein kann, SSH (englisch), Telnet, VNC oder Kubernetes,
Weiter unten, in den Parametern, Wir geben die lokale IP-Adresse des Zielcomputers an, Wir könnten die Felder für Benutzername und Passwort vorab ausfüllen, oder lassen Sie sie leer, damit der Benutzer sie eingeben kann, Oder wir können auch den Benutzer der Sitzung, mit der er sich angemeldet hat, nehmen und ihn mit diesen beiden Variablen angeben:
${GUAC_USERNAME}
${GUAC_PASSWORD}
Und nichts, Dann können wir in der Konfiguration jedes Benutzers die Verbindungen individuell zuweisen.
Da sich jeder Benutzer mit seinem Konto anmeldet, denn wenn wir es nur 1 Verbindung, Sie werden automatisch gegen dieses Team angemeldet. Und wenn wir mehrere, Wenn Sie sich anmelden, kann er auswählen, mit welcher Sitzung er sich verbinden 🙂 möchte
In einem nächsten Beitrag werden wir sehen, wie Sie eine Zwei-Faktor-Authentifizierung konfigurieren, um den Zugriff weiter zu sichern. Wie gewöhnlich, Ich hoffe, Sie finden die Beiträge interessant, Umarmungen!