Hallo zusammen,
damit ich nicht bei jeder Netscalereinrichtung wieder alles neu heraussuchen muss, dokumentiere ich hier nochmal wie man bei der Zertifikatsprüfung mittels https://globalsign.ssllabs.com/ von einem C auf ein A+ kommt. Ich gehe hier nicht auf die Funktionsweisen der einzelnen Schalter ein. Es geht nur darum die Befehle griffbereit zu haben. Ich nutze die Version NS11.1: Build 51.21.nc.
1. SSLv3 auf dem vServer deaktivieren
vServer auswählen – SSL Parameters – SSLv3 deaktivieren
Alternativ über die Shell:
set ssl vserver <vservername> -ssl3 disabled
Mehr dazu hier: https://support.citrix.com/article/CTX201123
2. SSL Renegotiation global anpassen
Traffic Management – SSL- Change advanced SSL Settings – Deny SSL Renegotiation –> NONSECURE
Alternativ natürlich auch dieser Befehl per Shell:
set ssl parameter -denySSLReneg nonsecure
Mehr dazu hier: https://support.citrix.com/article/CTX123680
3. SSL Cipher Group erstellen
Traffic Management – SSL- Chipher Groups – Add
Hier die Befehle für die Shell:
add ssl cipher APlus-Ciphergroup
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-ECDHE-RSA-AES256-GCM-SHA384
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-ECDHE-RSA-AES128-GCM-SHA256
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-ECDHE-RSA-AES-256-SHA384
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-ECDHE-RSA-AES-128-SHA256
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-ECDHE-RSA-AES256-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-ECDHE-RSA-AES128-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-DHE-RSA-AES256-GCM-SHA384
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-DHE-RSA-AES128-GCM-SHA256
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-DHE-RSA-AES-256-CBC-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-DHE-RSA-AES-128-CBC-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-AES-256-CBC-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-AES-128-CBC-SHA
bind ssl cipher APlus-Ciphergroup -cipherName SSL3-DES-CBC3-SHA
Jetzt muss die Ciphergroup natürlich noch an den entsprechenden vServer gebunden werden: vServer auswählen – SSL-Chiphers bearbeiten – DEFAULT entfernen und APlus-Ciphergroup adden.
unbind ssl vserver <vservername> -cipherName DEFAULT
bind ssl vserver <vservername> -cipherName APlus-Ciphergroup
bind ssl vserver <vservername> -eccCurveName ALL
4. Rewrite Action und Policy für STS Header
Appexpert – Rewrite – Policies/Actions
Hier die Befehle für die Shell:
add rewrite action insert_STS_header insert_http_header Strict-Transport-Security “\”max-age=157680000\””
add rewrite policy enforce_STS true insert_STS_header
Jetzt muss die Policy natürlich noch an den vServer gebunden werden: vServer auswählen – Policies – Add – Rewrite …
Alternativ via Shell:
bind vpn vserver <vservername> -policy enforce_STS -priority 100 -gotoPriorityExpression NEXT -type RESPONSE
5. Alle Befehle als Kopiervorlage:
set ssl vserver <vservername> -ssl3 disabled
set ssl parameter -denySSLReneg nonsecure
add ssl cipher APlus-Ciphergroup
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-ECDHE-RSA-AES256-GCM-SHA384
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-ECDHE-RSA-AES128-GCM-SHA256
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-ECDHE-RSA-AES-256-SHA384
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-ECDHE-RSA-AES-128-SHA256
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-ECDHE-RSA-AES256-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-ECDHE-RSA-AES128-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-DHE-RSA-AES256-GCM-SHA384
bind ssl cipher APlus-Ciphergroup -cipherName TLS1.2-DHE-RSA-AES128-GCM-SHA256
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-DHE-RSA-AES-256-CBC-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-DHE-RSA-AES-128-CBC-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-AES-256-CBC-SHA
bind ssl cipher APlus-Ciphergroup -cipherName TLS1-AES-128-CBC-SHA
bind ssl cipher APlus-Ciphergroup -cipherName SSL3-DES-CBC3-SHA
unbind ssl vserver <vservername> -cipherName DEFAULT
bind ssl vserver <vservername> -cipherName APlus-Ciphergroup
bind ssl vserver <vservername> -eccCurveName ALL
add rewrite action insert_STS_header insert_http_header Strict-Transport-Security “\”max-age=157680000\””
add rewrite policy enforce_STS true insert_STS_header
bind ssl vserver <vservername> -policy enforce_STS -priority 100 -gotoPriorityExpression NEXT -type RESPONSE
Viel Spaß bei der Zertifikatsprüfung
https://support.citrix.com/article/CTX220329
Übrigens gute Wahl bei der Firmware 🙂
tlsfun.de hat ein check tool ob man betroffen ist
Die in dem Beitrag verwendeten gcm cipher würden jedenfalls auf älteren firmwares den Netscaler verwundbar machen. Youtube exploit video gibt es (ohne netscaler) auch dazu (forbidden attack)
Hallo Christian,
vielen Dank für deinen wertvollen Kommentar. Der von dir erwähnte Artikel ist mir auch schon untergekommen. Ich finde es etwas schwierig bei den Ciphern immer auf dem neuesten Stand zu bleiben. Hast du vielleicht eine zuverlässige Quelle / Webseite auf der man immer die aktuell empfohlenen Cipher einsehen kann?!
Gruß
Dennis
Hallo,
die Seite listet einige auf, aber sehe die aktuelle Bedrohung dort auch noch nicht.
https://www.cvedetails.com/vulnerability-list/vendor_id-422/product_id-12586/Citrix-Netscaler.html
Gruß Jens
Hallo,
aktuell wird TLS_RSA_WITH_3DES_EDE_CBC_SHA als weak gekennzeichnet, aber im Netscaler gibt es diese unter einer anderen Bezeichnung.
> sh cipher HIGH
1) Cipher Name: SSL3-DES-CBC3-SHA
Description: SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1
https://support.citrix.com/article/CTX214806
Gruß
Jens