TLS-Kommunikationsproblem

Neuigkeiten und Ankündigungen
r.roeder
Beiträge: 389
Registriert: 02 Jul 2008, 10:08

TLS-Kommunikationsproblem

Beitragvon r.roeder » 05 Okt 2017, 12:06

Sehr geehrte opsi-Anwender,

es hat schon zu zahlreichen Nachfragen im Forum geführt:

Sporadisch gibt es mit dem momentanen de-facto-SSL-Standard TLSv1.2 Kommunikationsabbrüche zwischen den Java- und den Python-Bibliotheken. Das kann mitten in einem configed-Lauf zu Fehlern führen (relativ häufig beim Laden der Logdateien), kann aber auch schon beim Laden der configed.jar vor dem Starten des configeds zu einem Abbruch führen. Ein Timing-Faktor scheint auch eine Rolle zu spielen, da das Phänomen auch von der Netzwerk-Latenz abhängig zu sein scheint. Mit python3 (ab opsi Version 4.1) scheint das Problem nicht mehr aufzutreten.

Die Fehler treten nicht auf, wenn die SSL-Kommunikation mit dem älteren Standard TLSv1 betrieben wird, der in der inhouse-Kommunikation auch keine Sicherheitsprobleme erwarten lässt. Im Standard-configed-Paket ist deshalb als Default das Property gesetzt, dass die SSL-Kommunikation mit dem Fallback auf TLSv1 betrieben wird. Faktisch wird dafür beim Aufruf des opsi-configed zusätzlich als (erster) Startparameter gesetzt:

-Dhttps.protocols="TLSv1"

Weitere Nachforschungen haben ergeben, dass statt auf TLSv1 zurückzugehen auch auf andere TLSv1.2-Algorithmenvariationen ausgewichen werden kann als die automatisch verwendete, sofern beide Seiten den anderen Algorithmus kennen. Die Kommunikation haben wir reproduzierbar zum Laufen gebracht, indem wir in die /etc/opsi/opsiconfd.conf in der Sektion service folgende Zeile eingefügt haben:

accepted ciphers = AES128-GCM-SHA256

(opsiconfd dann neu starten). Die Fallback-Konfiguration des configed auf TLSv1 sollte dann nicht mehr erforderlich sein.

Dies hat auch den Vorzug, dass damit auch das Laden des configed per Webstart funktioniert. Allerdings ist nicht auszuschließen, dass mit diesem Algorithmus jetzt andere Komponenten Probleme haben, z.B. unter Windows XP, sofern es noch im Einsatz ist.

Es gibt auch die Möglichkeit, per Property die alternative cipher dem configed vorzuschreiben. Dann verständigen sich opsiconfd und der opsi-configed auf die Kommunikation per TLSv1.2 mit dieser cipher. Das hilft beim webstart des configed allerdings nicht.

Grüße aus Mainz!
R. Röder
opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.


Wondering who's using opsi? Have a look at the opsi map: http://opsi.org/opsi-map/.

hoepfner_r
Beiträge: 7
Registriert: 27 Feb 2018, 13:04

Re: TLS-Kommunikationsproblem

Beitragvon hoepfner_r » 02 Mär 2018, 09:56

Hallo,

ich habe alle oben aufgeführten Problemlösungen ausprobiert, doch leider ohne Änderung.

Gibt es noch Möglichkeiten an denen es liegen könnte?

MFG

r.roeder
Beiträge: 389
Registriert: 02 Jul 2008, 10:08

Re: TLS-Kommunikationsproblem

Beitragvon r.roeder » 02 Mär 2018, 11:24

interessant! Liegt wirklich dieses Problem vor? Welche Phänomene treten auf?
Grüße
R.Röder
opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.


Wondering who's using opsi? Have a look at the opsi map: http://opsi.org/opsi-map/.

Hosemacht
Beiträge: 8
Registriert: 03 Nov 2016, 09:35

Re: TLS-Kommunikationsproblem

Beitragvon Hosemacht » 08 Mär 2018, 11:03

Hallo Herr Röder,

hab das so durchgeführt wie von ihnen beschrieben der Configeditor funktioniert nun wieder ganz normal.
Leider hab ich jetzt ein Problem dass das hwaudit (4.0.6.1-6) auf allen Clients mit einem Fehler beendet wird.
Könnte das mit damit zusammen hängen?

hier die kritischen Einträge des lokalen Client Logfile:

Code: Alles auswählen

Mar 08 10:53:31 [critical] Traceback: (Logger.pyo|767)
Mar 08 10:53:31 [critical]      line 904 in '<module>' in file 'hwaudit.py' (Logger.pyo|767)
Mar 08 10:53:31 [critical]      line 856 in 'main' in file 'hwaudit.py' (Logger.pyo|767)
Mar 08 10:53:31 [critical]      line 338 in '__init__' in file 'OPSI\Backend\JSONRPC.pyo' (Logger.pyo|767)
Mar 08 10:53:31 [critical]      line 411 in 'connect' in file 'OPSI\Backend\JSONRPC.pyo' (Logger.pyo|767)
Mar 08 10:53:31 [critical]      line 638 in '_jsonRPC' in file 'OPSI\Backend\JSONRPC.pyo' (Logger.pyo|767)
Mar 08 10:53:31 [critical]      line 133 in 'execute' in file 'OPSI\Backend\JSONRPC.pyo' (Logger.pyo|767)
Mar 08 10:53:31 [critical]      line 124 in 'waitForResult' in file 'OPSI\Backend\Backend.pyo' (Logger.pyo|767)
Mar 08 10:53:31 [critical]      ==>>> [Errno 1] _ssl.c:480: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (hwaudit.py|906)


MFG
Robert

r.roeder
Beiträge: 389
Registriert: 02 Jul 2008, 10:08

Re: TLS-Kommunikationsproblem

Beitragvon r.roeder » 08 Mär 2018, 12:01

Hallo,

leider ist das in der Tat wahrscheinlich, dass dies daher resultiert.

Hosemacht hat geschrieben:hab das so durchgeführt wie von ihnen beschrieben der Configeditor funktioniert nun wieder ganz normal.
Leider hab ich jetzt ein Problem dass das hwaudit (4.0.6.1-6) auf allen Clients mit einem Fehler beendet wird.

Code: Alles auswählen

Mar 08 10:53:31 [critical]      ==>>> [Errno 1] _ssl.c:480: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (hwaudit.py|906)



Welche Variante der Problembehebung haben Sie denn gewählt? Vermutlich, die Server-Umkonfiguration. Damit spricht der Server mit jeglicher Software nur noch über diese Variante der SSL-Verschlüsselung, und das geht dann im Falle des hwaudit schief.

Sie können durch ein Property aber auch nur die configed-Verbindung umstellen, damit müsste sich das Problem vermeiden lassen. Welches Betriebssystem läuft auf den Clients?

Grüße
R. Röder
opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.


Wondering who's using opsi? Have a look at the opsi map: http://opsi.org/opsi-map/.

Hosemacht
Beiträge: 8
Registriert: 03 Nov 2016, 09:35

Re: TLS-Kommunikationsproblem

Beitragvon Hosemacht » 08 Mär 2018, 13:58

Hallo Herr Röder,

ja genau ich hab die accepted ciphers gesetzt und seit dem ist das so.
Auf meinen Clients läuft Win7 64Bit und Win10 64Bit (1706)

Was wäre die beste Vorgehensweise ihrer Meinung nach?

MFG
Robert

r.roeder
Beiträge: 389
Registriert: 02 Jul 2008, 10:08

Re: TLS-Kommunikationsproblem

Beitragvon r.roeder » 08 Mär 2018, 14:07

Testen Sie doch mal, beim per opsi lokal installierten configed die Property-Option "tls alternative cipher" auf die vorgeschlagene Variante zu setzen - das konfiguriert nur die configed-Verbindung auf den Algorithmus, den Sie jetzt serverseitig konfiguriert hatten.

viel Erfolg
opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.


Wondering who's using opsi? Have a look at the opsi map: http://opsi.org/opsi-map/.

Hosemacht
Beiträge: 8
Registriert: 03 Nov 2016, 09:35

Re: TLS-Kommunikationsproblem

Beitragvon Hosemacht » 08 Mär 2018, 14:49

Hallo Herr Röder,

hab den Property Wert auf den vorgeschlagenen Wert wie von ihnen beschrieben geändert und die acceptet ciphers aus der opsiconfd wieder entfernt.
Jetzt funktioniert das hwaudit wieder aber leider kann ich den configed(4.0.7.6.34-1) nicht mehr am Client installieren:

Code: Alles auswählen

[6] [Mär 08 14:39:28:228] [opsi-configed] If
[6] [Mär 08 14:39:28:228] [opsi-configed]   GetProductProperty("fallback_tlsv1", "true") = "true" or $java_static$ = "true"   <<< result false
[6] [Mär 08 14:39:28:228] [opsi-configed] Then
[6] [Mär 08 14:39:28:229] [opsi-configed] EndIf
[6] [Mär 08 14:39:28:229] [opsi-configed] Set  $add_calloptions$ = ""
[6] [Mär 08 14:39:28:229] [opsi-configed]   The value of the variable "$add_calloptions$" is now: ""
[6] [Mär 08 14:39:28:229] [opsi-configed] If
[6] [Mär 08 14:39:28:229] [opsi-configed]   $sqldata_force$ = "true"   <<< result false
[6] [Mär 08 14:39:28:229] [opsi-configed] Then
[6] [Mär 08 14:39:28:229] [opsi-configed] EndIf
[6] [Mär 08 14:39:28:229] [opsi-configed] Set  $start_with_ssh_connection$ = GetProductProperty("start_with_ssh_connection", "true")
[6] [Mär 08 14:39:28:229] [opsi-configed]   The value of the variable "$start_with_ssh_connection$" is now: "False"
[6] [Mär 08 14:39:28:229] [opsi-configed] If
[6] [Mär 08 14:39:28:229] [opsi-configed]   $start_with_ssh_connection$ = "true"   <<< result false
[6] [Mär 08 14:39:28:229] [opsi-configed] Then
[6] [Mär 08 14:39:28:229] [opsi-configed] Else
[6] [Mär 08 14:39:28:230] [opsi-configed]   Set  $add_calloptions$ = $add_calloptions$ + "  --ssh-immediate-connect n "
[6] [Mär 08 14:39:28:230] [opsi-configed]     The value of the variable "$add_calloptions$" is now: "  --ssh-immediate-connect n "
[6] [Mär 08 14:39:28:230] [opsi-configed] EndIf
[6] [Mär 08 14:39:28:230] [opsi-configed] Set  $tls_alternative_cipher$ = GetProductProperty("tls_alternative_cipher", "")
[6] [Mär 08 14:39:28:230] [opsi-configed]   The value of the variable "$tls_alternative_cipher$" is now: "TLS_RSA_WITH_AES_128_GCM_SHA256"
[6] [Mär 08 14:39:28:230] [opsi-configed] If
[6] [Mär 08 14:39:28:230] [opsi-configed]   not ($tls_alternative_cipher$ ="")   <<< result true
[6] [Mär 08 14:39:28:230] [opsi-configed] Then
[6] [Mär 08 14:39:28:230] [opsi-configed]   Set  $add_calloptions$ = $add_calloptions$ + " --use_tls_cipher  " + $tls_alternative_cipher$ )
[6] [Mär 08 14:39:28:230] [opsi-configed]     The value of the variable "$add_calloptions$" is now: "  --ssh-immediate-connect n  --use_tls_cipher  TLS_RSA_WITH_AES_128_GCM_SHA256"
[2] [Mär 08 14:39:28:230] [opsi-configed]   Syntax Error in Section: Actions (Command in line 108 origin: x:\opsi-configed\setup32.ins line: 109): ) -> Remaining char(s) not allowed here
[2] [Mär 08 14:39:28:230] [opsi-configed]   Syntax Error in Section: Actions (Command in line 109 origin: x:\opsi-configed\setup32.ins line: 110): EndIf -> expected
[1] [Mär 08 14:39:28:230] [opsi-configed] ___________________
[1] [Mär 08 14:39:28:230] [opsi-configed] script finished: failed
[1] [Mär 08 14:39:28:230] [opsi-configed] 2 errors
[1] [Mär 08 14:39:28:230] [opsi-configed] 0 warnings
[1] [Mär 08 14:39:28:230] [opsi-configed]
[1] [Mär 08 14:39:28:231] [opsi-configed] installed product: opsi-configed Version: 4.0.7.6.34-1
[1] [Mär 08 14:39:28:231] [opsi-configed]
[5] [Mär 08 14:39:28:231] [opsi-configed] We do not look for a update script, because the setup script is failed


es ist zum Mäusemelken...

MFG
Robert

r.roeder
Beiträge: 389
Registriert: 02 Jul 2008, 10:08

Re: TLS-Kommunikationsproblem

Beitragvon r.roeder » 08 Mär 2018, 15:21

das war nun wirklich ein peinlicher Bug - das Skript ist mit dieser Einstellung noch nie gelaufen, weil da eine Klammer zu viel stand.

Ich habe ein neues Paket gebaut, allerdings abgeleitet von der Entwicklungsversion (hoffentlich ohne neue Bugs, aber schon mit neuen rudimentären Features), damit ich es direkt machen kann:

https://download.uib.de/opsi4.0/experim ... 7.2-2.opsi

Wenn Sie dieses Paket auf dem Server installieren, dann müsste sich der configed mit dieser Einstellung auch lokal installieren lassen.

Alternativ können Sie auch bei Ihrem Desktop-Client den configed-Aufruf ergänzen (z.B. als letzten Parameter) um

--use_tls_cipher TLS_RSA_WITH_AES_128_GCM_SHA256

Etwas anderes passiert nämlich nicht.

Ich drücke die Daumen
opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.


Wondering who's using opsi? Have a look at the opsi map: http://opsi.org/opsi-map/.

Hosemacht
Beiträge: 8
Registriert: 03 Nov 2016, 09:35

Re: TLS-Kommunikationsproblem

Beitragvon Hosemacht » 12 Mär 2018, 08:28

Hallo Herr Röder,

ahja danke funktioniert nun ausgezeichnet.
Jetzt haben Sie mich aber neugierig gemacht, welche neuen Features wären denn das?

MFG
Robert