Over de Citrix Admin Serie posts
De Citrix Admin Serie is gericht aan Citrix architecten, consultants en engineers. In elke post gaan we in op één specifiek topic. De serie dient als referentie waar je kan op terugvallen bij het ontwerpen, opzetten of onderhouden van een Citrix omgeving.
XML encryptie in Citrix Virtual Apps and Desktops
De rol van de XML service begrijpen
De XML-service is een onderdeel van een Citrix Virtual Apps and Desktops omgeving, die wordt gebruikt door StoreFront voor resource enumeratie – dat wil zeggen het oplijsten van de published applications en desktops waar een gebruiker toegang toe heeft.
De XML service wordt geinstalleerd op de Delivery Controllers in de CVAD omgeving. Ook de STA (Secure Ticket Authority) service maakt gebruik van de XML service.
Bij het enumereren en opstarten van apps en desktops met “explicit password logon” zal de StoreFront server het wachtwoord van de gebruiker naar de XML service sturen. Het wachtwoord heeft wel Citrix encoding maar deze is helemaal niet zo veilig. Eigenlijk wordt het wachtwoord gewoon in cleartext verstuurd.
Is jouw omgeving blootgesteld?
Het is belangrijk om te bepalen of jouw omgeving het risico loopt om hieraan blootgesteld te worden.
- Bepaal voor elke StoreFront store of je gebruik maakt van “explicit password logon”.
Voorbeelden hiervan:
- Authenticatie via ‘username and password’
- Authenticatie via ‘Pass-through from Citrix Gateway’ en waar de setting ‘Fully delegate credential validation to Citrix Gateway’ in “Configure Delegated Authentication” niet is aangevinkt.
2. Als je voor geen enkele StoreFront store “explicit password logon” gebruikt dan loop je geen risico dat cleartext wachtwoorden over je netwerk gaan.
Voorbeelden hiervan:
- Authenticatie via ‘Smart card’
- Authenticatie via ‘ Domain pass-through’
3. Als je op een StoreFront store “explicit password logon” actief hebt staan, ga dan na of de StoreFront geconfigureerd is om HTTP te gebruiken voor de connectie naar de Delivery Controller.
Mocht het ‘Transport Type’ op HTTP staan dan loop je het risico dat wachtwoorden en andere informatie als cleartext onderschept kunnen worden in je netwerk.
Oplossing
Om dit beveiligingsrisico op te lossen leggen we in een aantal korte stappen uit hoe je XML encryptie in jouw omgeving kan op zetten en hoe je HTTP volledig kan blokkeren voor XML trafiek.
We gaan er vanuit dat volgende zaken al in orde zijn:
- Geen IIS geïnstalleerd op de Delivery Controllers
- Delivery Controller software is geïnstalleerd
- Er is een certificaat met private key geïnstalleerd op de controller en de FQDN van de server staat in het certificaat
Stap 1: Certificaat thumbprint opzoeken
Op de Delivery Controller; start een MMC snap-in en voeg Certificates (computer) toe. Ga naar de Personal certificaten, selecteer het certificaat. Ga in de Details naar Thumbprint en kopieer de thumbprint tijdelijk naar een Notepad. Deze hebben we in stap 3 nodig (certhash).
Stap 2: AppID van de Citrix Broker Service opzoeken
Op de Delivery Controller, open Powershell en geef volgend commando in:
Get-WmiObject -Class Win32_Product | Select-String -Pattern “broker”
Je zal hier een aantal producten te zien krijgen. Wij zijn op zoek naar de “Citrix Broker Service”. Kopieer hier de Identifying Number naar je Notepad. Deze hebben we ook nodig in stap 3 (appid).
Stap 3: Certificaat binden aan de Citrix Broker Service via de AppID
Nu gebruiken we het Windows’ netsh commando om het certificaat te binden met de Citrix Broker Service.
Start de ‘netsh’ command shell door ‘netsh’ uit te voeren in PowerShell of CMD.
netsh
http add sslcert ipport=0.0.0.0:443 certhash=<hash number> appid={Citrix Broker Service GUID}
certhash = de thumbprint die je naar je notepad hebt gekopieerd.
appid = de GUID van de Citrix Broker Service die je naar je notepad hebt gekopieerd.
Je krijgt na het uitvoeren van het commando de melding: SSL Certificate successfully added.
Deze stap voer je uit op elke Delivery Controller.
TIP: Met volgend commando kan je al je bindings bekijken:
netsh
http show sslcert
Stap 4: STAs settings op de Citrix Gateway vervangen door HTTPS
Ga op de Citrix ADC naar Citrix Gateway, Virtual Servers, open de virtual server en ga naar de STA server. Voeg eerst een nieuwe binding toe met HTTPS.
Valideer dat deze UP is. Nadien kan je de STA met HTTP unbinden.
Stap 5: StoreFront’s Delivery Controller transport type aanpassen
Op de primaire StoreFront server ga je naar “Manage Delivery Controllers”, select je delivery controller en klik “Edit”.
Pas het transport type aan naar HTTPS, de poort zal automatisch wijzigen naar 443.
Stap 6: StoreFront’s Netscaler Gateway object aanpassen:
Op de primaire StoreFront server ga je naar “Manage Citrix Gateway”, select je gateway en klik “Edit”.
Ga nadien naar Secure Ticket Authority, selecteer je URL, klik “Edit” en verander HTTP naar HTTPS.
Vergeet niet om de aangepaste instellingen te propageren mocht je meerdere StoreFront servers in een server groep hebben.
Stap 7: Uitschakelen van HTTP en forceren van HTTPS (optioneel maar aangeraden)
Met deze stap ga je XML trafiek over HTTP blokkeren waardoor je HTTPS gaat forceren. Dit is geen vereiste maar is wel aangeraden.
Op de Delivery Controller, open regedit (als administrator). Ga naar HKLM > SOFTWARE > Citrix > DesktopServer.
Valideer of “XmlServicesEnableNonSsl” bestaat en de waarde op nul (0) staat. Als deze niet bestaat maak deze dan aan.
- Naam: XmlServicesEnableNonSsl
- Type: REG_DWORD
- Data: 0x00000000 (0)
Na deze stappen is alle XML trafiek van je Citrix omgeving over je netwerk geëncrypteerd.
Belangrijk is niet te vergeten om de vervaldatum van het certificaat op te volgen zodat je geen problemen krijgt met XML en STA. Als het certificaat vernieuwd wordt en een nieuwe thumbprint krijgt zal je de binding in stap 3 opnieuw moeten opnemen met de nieuwe thumbprint.
Heb je na het lezen van dit artikel nog vragen? Contacteer ons gerust via onderstaand formulier. Wij raken niet uitgepraat over de mogelijkheden om naar een moderne werkplek te gaan. Maar nog liever luisteren we naar jouw verhaal!