Access

CTX-Blog

powered by Ecki's Place

21. July, 2007

AAC 4.5 Update verfügbar

20. Juli: Seit Gestern steht bei Citrix nun auch das Update AAC450W001 für Access Gateway Advanced 4.5 zur Verfügung. Neben einer ganzen Reihe von Fehlerbehebungen sind auch einige neue Features und Konfigurationsoptionen dazu gekommen:

  • WANScaler Integration (Protokoll und TCP Optimierung über den SSL VPN Client)
  • Support für Web-enabled Mobile Devices

Da mit diesem Update auch einige Sicherheitprobleme entschärft worden sind, sollte mit dem Update nicht allzulange gewartet werden.

Der Download und weitere Informationen sind hier zu finden.

Gruss
Ecki

18. July, 2007

CAG 4.5.5 Update verfügbar

18. Juli: Seit Heute steht bei Citrix das Update 4.5.5 für alle Access Gateway 2000/2010 Modelle zur Verfügung. Neben einer ganzen Reihe von Fehlerbehebungen sind auch einige neue Features und Konfigurationsoptionen dazu gekommen:

  • Caching von One Time Passwörtern kann nun explizit verboten werden
  • WANScaler Integration (Protokoll und TCP Optimierung über den SSL VPN Client)
  • Vista Client Support

Um nur die Wichtigsten zu nennen.

Da mit diesem Update auch einige Sicherheitprobleme entschärft worden sind, sollte mit dem Update nicht allzulange gewartet werden.

Der Download und weitere Informationen sind hier zu finden.

Gruss
Ecki

17. July, 2007

LANMANServer und LANMANWorkstation Tuning

Bei Brian Madden bin ich auf ein sehr interessantes Dokument zum Thema Terminal Server Tuning gestossen. In diesem Artikel werden sämtliche relevanten LANMANServer und LANMANWorkstation Parameter und Registry Keys vorgestellt und erkärt, die in diesem Zusammenhang von Bedeutung sind.

Anschliessend werden mögliche Optimierungsmassnamen und deren Risiken besprochen und sogar ein ADM Template zur Verfügung gestellt, mit dem sich die besprochenen Optimierungen via GPO umsetzen lassen.

Der vollständige Artikel kann hier nachgelesen werden.

Gruss
Ecki

05. July, 2007

Zugriffe via RDP-Protokoll steuern

Best Practice im Citrix Umfeld ist es, Usern, die auf einen Presentation Server zugreifen dürfen, den Zugriff via RDP-Protokoll zu verweigern, da hier u. A. die Citrix Policies nicht ziehen. Das standardmässig von Microsoft vorgeschlagene Vorgehen, den Zugriff auf die Terminalserver durch die lokale Gruppe “Remote Desktop Users” zu steuern funktioniert dann allerdings nicht mehr. Es muss statt dessen eine eigene Gruppe erstellt und gepflegt werden, die den Zugriff über das ICA Protokoll steuern kann. Ich nenne diese Gruppe in unserem Beispiel “CTX_User”. Damit Mitglieder dieser Gruppe auf einen Presentation Server zugreifen können, müssen zwei Bedingungen erfüllt sein.

1. Berechtigung auf dem ICA Protokoll
Screenshot - ICA-Protokoll

2. Das Recht “Log on through terminal services”, etweder lokal, oder besser verteilt via GPO
Screenshot - Policy

Dies gilt für Windows Server 2003. Bei Windows Server 2000 wird das Recht “Log on localy” benötigt. Dabei ist zu beachten, dass bei Aktivierung dieser Policy alle Gruppen referenziert werden müssen, die später in irgendeiner Form via Terminal Services auf den Server verbinden dürfen. Fehlt ein User, oder eine Gruppe in dieser Auflistung, erscheint sonst bei einem Anmeldeversuch folgende Fehlermeldung:
Screenshot - Logon Error

Ein weiterer Tipp an dieser Stelle: Idealerweise verbietet man das Ressource Mapping auf dem RDP Protokoll zumindest für Drucker so früh wie möglich, um das Einschleppen von Druckertreibern zu verhindern. Da normalerweise nur Administratoren via RDP verbinden, die über genügend Rechte zum Installieren von Treibern verfügen, werden sonst alle lokalen Drucker auf dem Terminalserver installiert, was schnell zu einem Wildwuchs in der Treiberlandschaft führt. Weiter Ressourcen können nach Belieben ebenfalls schon hier geblockt werden, s. Screenshot:
Screenshot - RDP-Protokoll

Diese Tasks lassen sich, wie weiter Oben gesehen, bequem über die GUI erledigen. Dies ist jedoch sehr mühsam, wenn man 50+ Server zu betreuen hat. Hier hat Marcel Göertz aus den Niederlanden einen sehr interessanten Artikel verfasst, wie diese Aufgabenstellung mittels WMI viel eleganter zu lösen ist.

Benutzer(Gruppen) mittels WMI berechtigen
In dem Codebeispiel weiter Unten wird der User domain\johndoe auf dem RDP Protokoll als User berechtigt. Dabei ist es wichtig, dass der Code auf der Maschine ausgeführt wird, für die diese Berechtigung gelten soll.

Achtung: Alle Codebeispiele bestehen aus nur einer Zeile, egal wie der Browser dies darstellt! Evtl. vorhandene Zeilenumbrüche müssen mit einem Leerzeichen ersetzt werden.
WMIC /NODE:"." RDPERMISSIONS WHERE TerminalName="RDP-tcp" CALL AddAccount "domain\johndoe",1

Drei Teile dieser Kommandozeile müssen hier erläutert werden:

  • TerminalName=”RDP-tcp”
    Für RDP ist der Name normalerweise RDP-tcp. Falls dieser Name auf deinen Servern anders lautet, muss der Wert angepasst werden.
    Um die Berechtigungen für das ICA Protokoll anzupassen, muss TerminalName=”ICA-tcp” verwendet werden. Konsolenzugang kann mittels TerminalName=”console” gesteuert werden.
  • AddAccount “domain\johndoe”
    Die Funktion “AddAccount” benötigt entweder einen User-, oder Gruppennamen inklusive Domäne. Um Built-In User hinzuzufügen, kann domain mit builtin ersetzt werden, z. B. AddAccount “builtin\Administrator”. Um eine Gruppe hinzuzufügen, kann einfach der Gruppenname verwendet werden, z. B. AddAccount “domain\Domain Admins”.

Ein Beispiel:
WMIC /NODE:"." RDPERMISSIONS WHERE TerminalName="RDP-tcp" CALL AddAccount "domain\Domain Admins",2

  • Vollzugriff, Gast-, oder Userzugriff
    Die abschliessende 2 in dem Beispiel beschreibt die Zugriffsrechte, wobei:

    • 0 : Guest Access
    • 1 : User Access
    • 2 : Full Control

    bedeuten.

ICA/RDP Berechtigungen entfernen
Um Berechtigungen auf einem Protokoll wieder zu entfernen, muss die Syntax etwas angepasst werden.
In diesem Beispiel wird der Built-In Gruppe “Remote Desktop Users” der Zugriff über das ICA Protokoll entzogen:
WMIC /NODE:"." RDACCOUNT WHERE "TerminalName='ICA-tcp' and AccountName='Builtin\\Remote Desktop Users'" CALL Delete

Um die “Domain Users” Gruppe zu entfernen, wird folgender Code benötigt:
WMIC /NODE:"." RDACCOUNT WHERE "TerminalName='ICA-Tcp' and AccountName='domain\\Domain Users'" CALL Delete

Hast du den doppelten Backslash bemerkt? Dieser ist, aus für mich nicht nachvollziehbaren Gründen, leider notwendig. Zumindest bist du jetzt gewarnt 😉

Komplettes Beispiel
Hier ist ein Beispiel für ein dreizeiliges Batch Script, um einen Terminalserver abzusichern.
Mit PsExec, einem genialen Tool aus der PsTools Sammlung von Sysinternals auf allen Remote Servern ausgeführt, ist eine Serverfarm in kürzester Zeit aktualisiert.
Die drei Zeilen machen folgendes:

  • 1. Stellt sicher, dass nur Citrix Administratoren (domain\citrixadmins) den Server via RDP erreichen können
  • 2. Entfernt die Berechtigungen für die “Domain Users” Gruppe
  • 3. Entfernt die Berechtigungen für die “Remote Desktop Users” Gruppe

WMIC /NODE:"." RDPERMISSIONS WHERE TerminalName="RDP-tcp" CALL AddAccount "domain\citrixadmins",2
WMIC /NODE:"." RDACCOUNT WHERE "TerminalName='RDP-tcp' and AccountName='domain\\Domain Users'" CALL Delete
WMIC /NODE:"." RDACCOUNT WHERE "TerminalName='RDP-tcp' and AccountName='Builtin\\Remote Desktop Users'" CALL Delete

Info: Wenn ein, oder mehrere Gruppen die gelöscht werden sollen nicht berechtigt waren, läuft das Script trotzdem, mit einer Meldung ‘no such instance’, weiter.

Der Originalartikel kann übrigens hier nachgelesen werden.

Gruss
Ecki

15. June, 2007

Mythos und Wahrheit über Presentation Server und WAN Optimierung

Die Diskussionen um Optimierungsmöglichkeiten im WAN Bereich nehmen aufgrund zunehmender Server- und Rechenzentrums Konsolidierungen stetig zu. Einige der Grossen im Netzwerkgeschäft wie Cisco, F5, Packeteer, Riverbed und seit neuestem auch Citrix mit seinen WANScalern (ehemals Orbital Data), um nur einige zu nennen, bearbeiten dieses Feld seit einigen Jahren sehr erfolgreich. Dabei liegt der Fokus jedoch eindeutig auf der schnellen Bereitstellung von Datei- und Druckdiensten (SMB/CIFS), sowie weiteren oft benutzten Protokollen wie HTTP, FTP und MAPI (Outlook/Exchange).

Nicht erst seit der Übernahme von Orbital Data durch Citrix im Herbst 2006 nehmen die Anfragen zu, ob und wie auch ICA zu optimieren ist. Sei es, dass hohe Latenzen über Satellitenstrecken, oder GPRS/UMTS zu schleppendem Bildschirmaufbau führen, oder das ein grosser Druckjob einen ganzen Standort ausbremst, die Rufe nach Erlösung werden immer lauter. Citrix hat mit seinen WANScalern in vielen Firmen grosse Erwartungen geweckt und wird in seinen öffentlichen Präsentationen auch nicht müde, die Werbetrommel zu rühren und ihre Botschaft, “we overcome latency” und “latency doesn’t matter anymore” ist allenorts zu hören.

Als Vertreter von Riverbed Produkten in der Schweiz kenne ich die Technologien und Abhängigkeiten in diesem Umfeld sehr genau und weiss um die Schwierigkeiten im WAN Umfeld. Daher konnte ich bei diesen Ankündigungen immer nur ungläubig den Kopf schütteln und die Erwartungen in Verbindung mit ICA Optimierungen bei meinen Kunden herunterschrauben. Eigene Tests mit WANScaler und Riverbed Appliances zeigten in diesem Bereich, wie erwartet, keine spürbaren Verbesserungen. Ein Vergleich der beiden Produkte wird demnächst hier zur Verfügung stehen. Aktuell konnte mir Citrix leider nur WANScaler mit dem nicht offiziellen (Citrix)Release 3.1.8, welcher mehr oder weniger ein umgelabelter Orbital Date Release ist, zur Verfügung stellen. Die aktuelle Version 4.1, als erste “echte” Citrix Version stand mir trotz wiederholtem Nachfragen und Bitten bisher nicht zur Verfügung. Sobald ich Zugriff auf diese Version habe, werde ich die Tests für die WANScaler wiederholen und den Vergleich veröffentlichen. Aber nun zurück zum Thema…

Nun hat Citrix Consulting endlich ein Papier veröffentlicht, welches nüchtern und unabhängig von Marketingaktivitäten die Möglichkeiten und vor allem Grenzen bei der Optimierung des ICA Protokolls darlegt. Ich kann dieses Papier nur jedem zur Lektüre empfehlen, der sich auf den Besuch eines “WAN Optimierers” jeglicher Herkunft vorbereiten möchte. Allen anderen Citrix Administratoren sei dieses Papier ebenfalls ans Herz gelegt, denn früher oder später kommt dieses Thema auf den Tisch und dann ist froh, wer nicht unvorbereitet ist.

Truths and Myths of Presentation Server and WAN Optimization

Gruss
Ecki

13. June, 2007

Presentation Server Load Balancing (Teil 1 von n – Übersicht)

Ich bin gerade über einen höchst interessanten Artikel gestolpert, der sich auf fundierte Weise mit dem Load Balancing von Presentation Server befasst. Der Artikel ist der Erste in einer ganzen Reihe von Beiträgen zu diesem Thema.

Citrix Administratoren kann ich diesen Artikel nur wärmstens empfehlen. Der Artikel kann hier in voller Länge gelesen werden: Presentation Server Load Balancing (Part 1 of n – Overview)

Gruss
Ecki

28. May, 2007

AAC Tuning, Teil 2

AAC Admins, die RSA SecureID, SafeWord oder eine andere Two Factor Authentifizierungsmethode einsetzen, kennen das Dilemma. Durch den Token wird zwar die Sicherheit deutlich erhöht, wenn der Token aber mal nicht zur Hand ist, gibt es keinen Zugriff auf interne Ressourcen. Das muss nicht sein. Ein LogonPoint der für Two Factor Authentication konfiguriert wurde, erfordert nicht immer zwingend ein One Time Passwort.

Wie schon im ersten Beitrag zu dieser Reihe, befindet sich der Schlüssel in der Datei “web.config” im Root des jeweiligen LogonPoint Verzeichnisses.

Auf einem Standard AAC Server vermutlich unter:

C:\Inetpub\wwwroot\CitrixLogonPoint\#LogonPointName#

Es existiert noch eine weitere Version dieser Datei unter “C:\Inetpub\wwwroot\CitrixLogonPoint\”, welche unberührt bleiben sollte !

Diese Datei lässt sich mit einem Editor wie z. B. NotePad öffnen und bearbeiten. Im letzten Drittel findet sich der Abschnitt <appSettings>, in dem diverse Einstellungen vorgenommen werden können. Unter Anderem lässt sich hier auch die Two Factor Authentication so konfigurieren, dass ein One Time Passwort nicht mehr zwingend erforderlich ist. Dazu genügt es, folgende Zeile im <appSettings> Block zu ändern:

Von
<add key=”SecondaryAuthenticationIsOptional” value=“false” />
auf
<add key=”SecondaryAuthenticationIsOptional” value=“true” />

Der Abschnitt sollte dann so aussehen:

<appSettings>
<add key="DebugConsoleTrace" value="False" />
<add key="AdvancedGatewayClientDownloadUrl" value="http://www.citrix.com" />
<add key="AdvancedGatewayClientActivationDelay" value="10" />
<add key="MaxConnectionsToAuthenticationService" value="20" />
<add key="LogonPointId" value="00000000-0000-0000-0000-000000000000" />
<add key="DeployedBy" value="LACONFIG" />
<add key="ExtendedSecurIdFunctionalityEnabled" value="true" />
<add key="SecondaryAuthenticationIsOptional" value="true" />
<!- -

Nach dem Speichern der Datei sieht der User bei diesem einen LogonPoint nun zwar immer noch die Eingabemaske für RSA, SafeWord, etc., kann dieses Eingabefeld nun aber auch leer lassen und nur mit Username und Passwort einloggen.

Diese Manipulation reisst natürlich erst ein Mal ein grosses Loch in die Sicherheitseinstellungen der Installation. Um nun die Two Factor Authentication nicht völlig zu entwerten, muss an anderer Stelle nachgebessert werden. Mit Hilfe eines angepassten Filters und einer angepassten Policy kann die Sicherheit jedoch weiterhin hoch gehalten werden.

Der Filter für den vollwertigen Zugriff muss zwingend RSA, SafeWord, oder RADIUS als Authentifizierung voraussetzen. Dazu bietet der Filtergenerator den Punkt “Authentication Strength”. Nur wer eine starke Authentifizierung durchführt, bekommt Vollzugriff auf alle Ressourcen.

Authentication Strength

Hat der User sein Token ein Mal nicht im Zugriff, kann er sich trotzdem ohne One Time Passwort authentifiziert. Dann greift allerdings ein anderer Filter (identisch mit dem Filer für vollwertigen Zugriff, allerdings ohne Strong Authentication) und eine andere Policy, die den Zugriff restriktiver handhabt. So kann der User zumindest auf eine eingeschränkte Umgebung zugreifen und ist nicht zum Däumchen drehen verdammt 🙂

< < AAC Tuning, Teil 1 AAC Tuning, Teil 3 >>

!!! Bitte beachtet den ersten Kommentar zu diesem Beitrag !!!

Gruss
Ecki

25. May, 2007

Citrix Session Reliability Service angreifbar, CTX112964

Eine Sicherheitslücke im Citrix Presentation Server Session Reliability Service ist kürzlich entdeckt worden. Durch eine präparierte Anfrage an den XTE Service kann ein Angreifer TCP Sitzungen zu jedem lokalen Port der betroffenen Maschine aufbauen. Dadurch können Sicherheits Policies umgangen werden und lokale Ports trotz Firewall von Remote angesprochen werden.

Für folgende Produkte ist der Fehler bestätigt und sind HotFixes verfügbar:

  • Citrix MetaFrame Presentation Server 3.0
  • Citrix MetaFrame Presentation Server 4.0
  • Citrix Access Essentials 1.0
  • Citrix Access Essentials 1.5

Andere Versionen von Citrix Presentation Server, Citrix Access Essentials oder Citrix Desktop Server sind von dieser Sicherheitslücke nicht betroffen.

Wird Session Reliability nicht verwendet, besteht keine Gefahr für die Sicherheit des Presentation Servers.

Citrix stellt hier (CTX112964) HotFixes in allen Sprachen bereit.

Gruss
Ecki

23. May, 2007

AAC Tuning, Teil 1

Welcher AAC Admin hat nicht schon einmal über das Verhalten des EPA-Scans geflucht. Sobald auch nur ein EPA-Scan in der AMC (Access Management Console) definiert ist, wird der EPA-Scan bei jedem LogonPoint automatisch gestartet, egal, ob er gebraucht wird, oder nicht.

Sehr lästig ist dieses Verhalten z. B. bei einem reinen OWA (Outlook Web Access) LogonPoint, der nichts anderes, als einen eingeschränkten Zugriff auf das persönliche Mailkonto bereitstellen soll. Damit er von Überall her funktioniert und auch “Clientless” arbeitet, darf er natürlich keinen EPA-Scan voraussetzen. Trotzdem erscheint bei jedem Aufruf dieses LogonPoints der Download- und Installationshinweis für den EPA-Scan-Client. Ein beherzter Klick auf “Skip Scan” bringt einen zwar weiter, ohne den Client installieren zu müssen, der Download findet aber trotzdem jedes Mal im Hintergrund statt, sehr hinderlich, bei langsamen Internetverbindungen. Dazu kommt die Verunsicherung weniger computeraffiner Zeitgenossen, die u. U. endlos versuchen, auf eingeschränkten InternetCafe PC’s den EPA-Scan-Client zu installieren, was ihnen mangels Rechten nie gelingen wird…

Per Zufall bin ich kürzlich über eine Option gestolpert, die dieses Verhalten ändern kann. Gut versteckt und kaum dokumentiert, werden sie wohl bisher nur Wenige entdeckt haben. Der Schlüssel befindet sich in der Datei “web.config” im Root des jeweiligen LogonPoint Verzeichnisses.

Auf einem Standard AAC Server vermutlich unter:

C:\Inetpub\wwwroot\CitrixLogonPoint\#LogonPointName#

Es existiert noch eine weitere Version dieser Datei unter “C:\Inetpub\wwwroot\CitrixLogonPoint\”, welche unberührt bleiben sollte !

Diese Datei lässt sich mit einem Editor wie z. B. NotePad öffnen und bearbeiten. Im letzten Drittel findet sich der Abschnitt <appSettings>, in dem diverse Einstellungen vorgenommen werden können. Unter Anderem lässt sich hier auch der EPA-Scan deaktivieren. Dazu genügt es, folgende Zeile unter dem <appSettings> Block einzufügen:

<add key=”EndpointAnalysisDisabled” value=“true” />

Der Abschnitt sollte dann so aussehen:

<appSettings>
<add key="DebugConsoleTrace" value="False" />
<add key="AdvancedGatewayClientDownloadUrl" value="http://www.citrix.com" />
<add key="AdvancedGatewayClientActivationDelay" value="10" />
<add key="MaxConnectionsToAuthenticationService" value="20" />
<add key="LogonPointId" value="00000000-0000-0000-0000-000000000000" />
<add key="DeployedBy" value="LACONFIG" />
<add key="ExtendedSecurIdFunctionalityEnabled" value="true" />
<add key="SecondaryAuthenticationIsOptional" value="false" />
<add key="EndpointAnalysisDisabled" value="True" />
<!- -

Nach dem Speichern der Datei gelangt der User bei diesem einen LogonPoint nun direkt zur Eingabemaske für seinen Usernamen und sein Passwort, ohne Umweg über die EPA-Scan Zwischenseite 🙂

AAC Tuning, Teil 2 >>

!!! Bitte beachtet den ersten Kommentar zu diesem Beitrag !!!

Gruss
Ecki

02. May, 2007

Secure Access Client Kommandozeilen Parameter

Wenig bekannt ist die Tatsache, dass der Secure Access Client (4.2 und später, einschliesslich net6vpn.exe) über einige interessante Kommandozeilen Parameter verfügt. Daher will ich diese hier kurz vorstellen. Der interessanteste Einsatzzweck sind sicher automatisierte Installationen via Softwareverteilung, oder einfachem Batch Script.

Achtung: Bei diesen Parameter ist die GROSS/klein-schreibung wichtig!

Folgende Parameter stehen zur Verfügung:

  • -C zeigt das Konfigurations Interface (GUI) an
    Beispiel: “CitrixSAClient.exe –C”
  • -H verbindet auf die angegebene Serveradresse und Port (Syntax: -H SERVER_IP:PORT)
    Beispiel: “CitrixSAClient.exe –H 192.168.1.1:443”
  • -p zwingt den Client, den angegebenen Proxy zu verwenden (Syntax: -p PROXY_IP:PORT)
    Beispiel: “CitrixSAClient.exe –p 192.168.1.1:8080”
  • -i Installiert den Client, wird meist mit anderen Parametern verwendet
    Beispiel: “CitrixSAClient.exe –i”
  • -D konfiguriert die URL für das Desktop Icon für Advanced Access Control (Syntax: -D AG_AAC_URL)
    Beispiel: “CitrixSAClient.exe -D https://cag.company.com”
  • -Q Quiet Mode, unterdrückt alle Meldungen. Dieser Parameter kann nur in Verbindung mit -i (Install), oder -U (Uninstall) verwendet werden. Er muss vor allen anderen Parametern stehen
    Beispiel: “CitrixSAClient.exe –Q”
  • -U Deinstalliert den Client und Treiber
    Beispiel: “CitrixSAClient.exe –U”
  • -v zeigt Versionsinformationen zum Client
    Beispiel: “CitrixSAClient.exe –v”

Ein Beispiel für eine Silent Installation in Verbindung mit AAC sähe so aus:
CitrixSAClient.exe –Q –D https://AG_AAC_URL –i

Eine Installation für ein Access Gateway Standard sähe so aus:
CitrixSAClient.exe –Q –H [AG_SYSTEM_FQDN]:[AG_SYSTEM_PORT] –i

Gefunden unter CTX108757.

Gruss
Ecki