Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:oracle_linux_8_guacamole_ms_sqlserver

Apache Guacamole unter Oracle Linux 8 mit dem MS SQL Server verwenden

Aufgabe: Als Datenbank für Apache Guacamole soll ein MS SQL Server 2019 statt der bestehenden MySQL verwendet werden.

In diese Umgebung liegt einen geclusterte MS SQL Datenbank vor, um hier mehr Ausfall Sicherheit zu erhalten wird diese Datenbank nun auch für Guacamole verwendet.

Ablauf:

  • MS Repository hinterlegen
  • MS ODBC installieren (für die ms-Tools)
  • MS Tools installieren (für die DB Konfiguration)
  • Auf dem MSSQL Server eine Datenbank und einen Eigentümer für die DB anlegen
  • Guacamole Datenbank Objekte installieren
  • Guacamole MS SQL User für den Connect zur DB anlegen
  • MS SQL Properties in der guacamole.conf hinterlegen
  • MS SQL JDBC Treiber hinterlegen
  • Guacamole Erweiterung für den MS SQLServer hinterlegen
  • Neu Starten und konfigurieren

Voraussetzung: Guacamole installiert nach folgender Anleitung ⇒ Eine Oracle System Umgebung mit Apache Guacamole auf Oracle Linux 8.7 verwalten


Vorbereitung MS SQLServer Umgebung auf dem Linux Rechner

Für Oracle Linux 8

MS SQL Tools installieren:

# als root
 
curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
 
dnf remove unixODBC-utf16 unixODBC-utf16-devel 
 
ACCEPT_EULA=Y dnf install -y msodbcsql18
ACCEPT_EULA=Y dnf install -y mssql-tools18

JDBC jar bereitstellen

Zuvor Java Version prüfen:

java -version
openjdk version "1.8.0_362"

Und passende Lib laden von z.B. https://central.sonatype.com/namespace/com.microsoft.sqlserver

Für meine Umgebung habe ich am Ende die „mssql-jdbc-8.4.0.jre8.jar“ verwendet (https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/8.4.0.jre8/).

Problem mit dem aktuellsten Treiber "mssql-jdbc-12.2.0.jre8.jar"

Im ersten Schritt natürlich den aktuellsten Treiber mssql-jdbc-12.2.0.jre8.jar von https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16 verwendet.

ABER:

13:25:08.768 [ajp-nio-127.0.0.1-8009-exec-7] WARN  o.a.g.e.AuthenticationProviderFacade - The "sqlserver" authentication provider has encountered an internal error which will halt the authentication process. If this is unexpected or you are the developer of this authentication provider, you may wish to enable debug-level logging. If this is expected and you wish to ignore such failures in the future, please set "skip-if-unavailable: sqlserver" within your guacamole.properties.
13:25:08.771 [ajp-nio-127.0.0.1-8009-exec-7] ERROR o.a.g.rest.RESTExceptionMapper - Unexpected internal error:
### Error querying database.  Cause: com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target". ClientConnectionId:c4a1b75a-de43-4989-8f01-778e10ccb428

Daher nun eine viel älteren Version verwendet, es ist mir nicht gelungen das in Guacamole so zu konfigurieren das des auch mit dem neusten Treiber klappt.

Vermutlich ist jetzt aber die Verbindung zur DB nicht verschlüsselt!


Auf dem MSSQL Server eine Datenbank und einen Eigentümer für die DB anlegen

Auf der MSSQL DB Umgebung einen User und eine Datenbank „guacamole“ anlegen lassen, für das Setup den User „guacamole“ SYSADMIN Rechte einräumen lassen, diese aber nach der Installation wieder entfernen!

Test ob ein Konnect zur DB möglich ist:

/opt/mssql-tools/bin/sqlcmd -S msdbCluster -U guacamole -P xxxDASGeheimePWDxx
 
use guacamole
go
 
SELECT NAME FROM sys.sysdatabases;
go

Guacamole Datenbank Objekte installieren

Schema installieren über die DB Skripte von Guacamole:

 
# In das zuvor ausgepackte Verzeichnis wechseln
cd /srv/guacamole-client-1.5.0/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/schema/
 
/opt/mssql-tools/bin/sqlcmd -S msdbCluster -U guacamole -d guacamole -i ./001-create-schema.sql
 
 
# Admin User guacadmin anlegen
 
/opt/mssql-tools/bin/sqlcmd -S msdbCluster -U guacamole -d guacamole -i ./002-create-admin-user.sql
 
 
# Login User guacamole_user anlegen
 
/opt/mssql-tools/bin/sqlcmd -S msdbCluster -U guacamole
 
CREATE LOGIN guacamole_user WITH PASSWORD = 'SehrStrengGeheimesPWD';
GO
 
USE guacamole;
GO
 
CREATE USER guacamole_user;
GO
 
ALTER ROLE db_datawriter ADD MEMBER guacamole_user;
ALTER ROLE db_datareader ADD MEMBER guacamole_user;
GO
 
quit

Guacamole konfigurieren

Unter „/etc/guacamole“ die Datei guacamole.properties anpassen:

...
 
# SQL Server properties
sqlserver-hostname: msdbCluster 
sqlserver-port:     1433
sqlserver-database: guacamole
sqlserver-username: guacamole_user
sqlserver-password: SehrStrengGeheimesPWD
sqlserver-default-max-connections-per-user: 0
sqlserver-default-max-group-connections-per-user: 0
sqlserver-user-required: false
 
...
JDBC Lib hinterlegen

Die notwendigen Lib „mssql-jdbc-8.4.0.jre8.jar“ für den JDBC Connect nach „/etc/guacamole/lib“ kopieren.

Extension Lib hinterlegen

Die Extension für die MSQL Server Anbindung „guacamole-auth-jdbc-sqlserver-1.5.0.jar“ nach „/etc/guacamole/extensions“ kopieren.

Neu starten

Als root starten:

systemctl stop tomcat.service
systemctl start tomcat.service

Prüfen:

cd /srv/tomcat/tomcat/conf/logs 
 
tail -f catalina.out


Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
linux/oracle_linux_8_guacamole_ms_sqlserver.txt · Zuletzt geändert: 2023/07/25 22:31 von gpipperr