Access

CTX-Blog

powered by Ecki's Place

11. July, 2010

32bit Icon Option fehlt in den XenApp Farm Eigenschaften

Ich bin vor kurzem über ein sehr seltsames Verhalten der Citrix AMC gestolpert, bei der die Option für 32bit Icon Support nicht angezeigt wurde, obwohl alle Prerequisites installiert waren. Nur durch einen Zufall sind wir auf die Lösung gekommen.

Das Problem betrifft alle XenApp Versionen die ich testen konnte, einschliesslich Presentation Server 4.5 und XenApp 5.0, sowohl für W2k3 als auch für W2k8.

Das Problem zeigt sich folgendermassen. In den Eigenschaften der Farm ist der Platz, an dem die 32bit Icon Option stehen sollte leer. Die Option für 32bit Icons ist daher nicht verfügbar 🙁

Kein 32bit Icon Support in der AMC

Der Verursacher dieses Phänomens ist tatsächlich eine Konfiguration beim Farm-Discovery. Ich verwende gelegentlich LOCALHOST in der Liste der für das Discovery zu verwendenden Server. So funktioniert das Discovery immer, auch bei Roaming Profiles und XenApp Servern ohne IIS Installation.

Ist das Discovery folgendermassen konfiguriert, verschwindet die 32bit Icon Option aus der AMC:

Konfiguriert mit LOCALHOST

Wird dagegen wieder der lokale Server beim Discovery verwendet,

Konfiguriert mit "Local Server"

erscheint wie durch ein Wunder die vermisste Option wieder in den Farm Eigenschaften.

32bit Icon Support verfügbar

Man kann das Verhalten jederzeit problemlos reproduzieren. Zugegebenermassen ist das nicht unbedingt ein alltägliches Problem, aber seltsam ist das Verhalten schon und wenn ihr in Zukunft mal darüber stolpert, seid ihr gewarnt…

Gruss
Ecki

21. October, 2008

SmartCard Single Sign On mit PNAgent

Alle verfügbaren Dokumentationen zum Thema “Single Sign On” oder “Credential passthrough” mit SmartCard und Citrix Clients beschränkt sich leider auf den Gebrauch der Program Neighborhood, wie folgende Anleitung von Brianmadden beispielhaft zeigt. Diesen Client setze ich bei Kundenprojekten aber seit Jahren nur noch in Ausnamefällen ein. Statt dessen verwende ich meistens den PNAgent, oder den Web Client.

Diese Clients entzogen sich aber bisher dem Passthrough der SmartCard PIN, da sie die APPSRV.INI ignorierten und daher die notwendigen Einstellungen nicht übernahmen.

Seit dem 10.0er Client findet sich im Installationsverzeichnis jedes Citrix Clients eine Datei “icaclient.adm”, ein Active Directory Group Policies Template, das die benötigten Optionen enthält. Seit dem Release 10.0 überprüft jeder ICA Client zuerst, ob eine entsprechende Policy konfiguriert wurde und übernimmt dann diese Einstellungen aus der Registry. Die Datei APPSRV.INI fungiert nur noch als Fallback, wenn keine Policy existiert. Dieses neue Client Feature ermöglicht nun endlich ein “Single Sign On” mit SmartCard und PNAgent.

Hier in Kürze die Schritte, die es dafür benötigt:

1. Auf dem Presentation Server /XenApp Server

  • Überprüfen, ob ein Login auf einen Desktop mittels SmartCard generell funktioniert. Für SmartCard-Passthrough muss in den Server-Eigenschaften die Option “Trust requests sent to the XML Service” aktiviert sein.

2. Auf dem Web Interface Server

  • Hier muss SSL aktiviert (ein Web Server Zertifikat installiert) und das “Directory Service Mapping” aktiviert sein. Diese Option findet sich im IIS Manager unter den Eigenschaften des “Web Sites” Ordners:
  • Web Sites EigenschaftenDirectory Service Mapper

  • In der Access Suite Management Console muss die PNAgent Web Site unter “Configure Authentication” auf “Smart Card with Passthrough” konfiguriert werden.

3. Registry

  • Überprüfen, ob unter HKLM\System\CurrentControlSet\Control\TerminalServer\WinStations\ICA-tcp der Wert UseDefaultGina auf 0 gesetzt ist (1 schaltet die CtxGina ab).

4. Active Directory Policy

  • Import des ADM Templates in eine beliebige Policy
  • Im User Teil der Policy müssen folgende Einstellungen gesetzt sein:
  • Citrix Policy

  • <PolicyName>\User Configuration\Administrative Templates\Citrix Components\Presentation Server Client\User Authentication\Smart Card Authentication muss “Enabled” werden und “Allow Smart Card Authentication” und “Use pass-through authentication for PIN” müssen aktiviert werden.
  • Alle weiteren Optionen bleiben unkonfiguriert, vorausgesetzt es sollen nur SmartCard Logins konfiguriert werden.

Jetzt sollte einem “Single Sign On” mit SmartCard und PNAgent nichts mehr im Wege stehen 😀

Diese Anleitung gilt leider nur für Windows XP und Server 2003. Vista und 2008 Server sind hier momentan explizit ausgenommen, da aktuell kein Citrix Client, einschliesslich 11.0, in der Lage ist, die SmartCard PIN unter diesen OS weiterzureichen 🙁

Hier noch ein paar interessante weiterführende Links:

Gruss
Ecki

18. June, 2008

IE Kiosk Mode

Ich musste gerade bei einem Kunden dafür sorgen, dass der Internet Explorer ohne Navigationsleisten und sonstige Benutzerschnittstellen startet, um eine browserbasierte Applikation zum SmartCard Rollout zu veröffentlichen. Die Suche nach einer Lösung gestaltete sich hierbei schwieriger als erwartet.

Der häufigste Ansatz, den Google bei einer entsprechenden Anfrage ausspuckte, war der eingebaute “Kiosk Mode” des Internet Explorers. Der Modus wird durch den Aufruf des IE mit dem Parameter -k aktiviert, s. http://support.microsoft.com/kb/154780. Dieser Modus versetzt den IE in den Vollbild Modus, blendet aber, im Gegensatz zum Tastendruck F11, die Symbolleisten komplett aus. Ein Beenden des IE ist dann nur noch über Alt. + F4 möglich und auch die sonstige Bedienung beschränkt sich ausschliesslich auf Tastenkürzel. Eine eher endkundenuntaugliche Variante 🙁

Der nächste Ansatz waren Microsoft Group Policies, aber auch hier gab es zu viele Einschränkungen und Probleme. So lassen sich die Symbolleisten des IE nicht komplett per Policy ausblenden, sondern nur einzelne Icons, was wiederum Anpassungen in der Registry unter HKCU notwendig gemacht hätte, um die Symbolleisten komplett zu entfernen. Hier gehen die ansonsten ausufernden IE Policies eindeutig nicht weit genug 🙁

Die Lösung kam in Form einen VBS Objekts. Der Internet Explorer lässt sich über VBS ansprechen und steuern. Dies gab mir die Möglichkeit, auch das Erscheinungsbild des Browsers soweit anzupassen, dass sämtliche Steuerelemente ausgeblendet werden können, ohne wichtige Funktionen zu beeinträchtigen. Mit dem folgenden Code lässt sich nun ein IE mit einer vordefinierten URL starten und ein Ausbruch aus dieser Umgebung ist deutlich erschwert 🙂

DIM IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate "http://das.ist.die.anzuzeigende.url"
IE.Visible=True
IE.Toolbar=no
IE.Menubar=no
IE.Statusbar=no
IE.Width=750
IE.Height=600
IE.Resizable=yes
'IE.Top=5
'IE.Left=5

Auf den Eintrag IE.Navigate folgt hierbei die aufzurufende URL, wobei die gesamte URL in Anführungszeichen gesetzt sein muss. Optionale Parameter sind die Fenstergrösse (IE.Width/IE.Height) und die Position des Fensters auf dem Desktop (IE.Top/IE.Left).

IE Kiosk Mode

Das Script funktioniert sowohl unter Windows XP als auch 2003 Server problemlos. Unter Vista und 2008 Server sind Administrator Rechte notwendig, um den gewünschten Effekt zu erzielen!

Gruss
Ecki

09. December, 2007

Update: PNAgent Filter für Web Interface 4.6

Ich bin kürzlich in die Situation gekommen, den PNAgent Filter für das Web Interface 4.6 einsetzen zu müssen. Dabei stellte sich heraus, dass der eigentliche Code der Erweiterung für das WI 4.5 ohne Anpassungen auch unter dem WI 4.6 weiter funktioniert. Damit die Einrichtung aber so leicht bleibt, wie gewohnt, stelle ich das Update für das Web Interface 4.6 als weiteren Download zur Verfügung. So genügt es weiterhin, eine Datei auszutausche. Eine manuelle Änderung im Code ist nicht notwendig.

Download FilterApps4.6

Diese Modifikation des Web Interfaces ermöglicht es, Published Applications von der Anzeige im PNAgent auszuschliessen, indem der Description der Published Application ein “#” Zeichen vorangestellt wird. Nützlich, wenn der PNAgent z. B. zum Bestücken des Desktops und des Startmenüs verwendet wird, und man nicht möchte, dass der gepublishte Desktop dort, oder in den Eigenschaften des PNAgent Symbols in der Startleiste erscheint.

Siehe auch: PNAgent Filter für Web Interface 4.5

Gruss
Ecki

21. July, 2007

Web Interface 4.6 für Windows verfügbar

Seit Gestern steht bei Citrix das neue Web Interface 4.6 zum Download bereit. Diese Version ist Voraussetzung für einige neue Features und Verbesserungen, die mit dem Rollup Pack 01 für Presentation Server 4.5 eingeführt wurden.

Vor der Installation des Web Interfaces 4.6 muss zwingend die AMC (Access Management Console für Presentation Server 4.5) aktualisiert werden, da das Update sonst fehl schlägt. Die aktuelle AMC kann hier heruntergeladen werden.

Der Download des Web Interface 4.6 und weitere Informationen sind hier zu finden.

Gruss
Ecki

Erstes Hotfix Rollup Pack für Presentation Server 4.5 verfügbar

Seit dem 19.07. steht bei Citrix das erste Hotfix Rollup Pack für Presentation Server 4.5 zur Verfügung. Neben einer ganzen Reihe von Fehlerbehebungen wurde vor allem die Office 2007 Integration verbessert. Weitere Neuigkeiten sind:

  • Microsoft Windows Vista/Office 2007 Compatibility Updates
  • Verbesserte Unterstützung für High Color (16-, 32-, and 48-bit) Icons
  • Microsoft Office Live Preview Support

Einige der Verbesserungen setzen mindestens den aktuellen Client 10.100 voraus. Ein Update der Client Installation ist daher ebenfalls anzuraten.

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

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

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