WTS Review FreePDF XP
Transcription
WTS Review FreePDF XP
WTS Review FreePDF XP Inhaltsverzeichnis: I. Einführung und WTS Review Parameter II. Benötigte Softwarekomponenten 1 2 III. Installation auf einem Terminal Server 4 IV. Test FreePDF XP im Multi User Umfeld 6 V. Probleme, Anpassungsmöglichkeiten, Tipps VI. Abschlussbesprechung 8 16 I. Einführung und WTS Review Parameter PDF Dokumente werden im geschäftlichen Alltag mit jedem Jahr bedeutsamer. PDF Dateien nur zu lesen ist in den meisten Fällen nicht mehr ausreichend. Die eigene Erstellung von PDF Dokumenten jeglicher Art wird immer wichtiger. Es ist daher umso ärgerlicher, dass die Produkte des Marktführers Adobe auf einem Terminal Server nur sehr eingeschränkt lauffähig sind. Der Adobe Destiller 5 ist auf einem Terminal Server nur mit Administratorrechten nutzbar. Die neue Version Adobe Acrobat 6.0 zeigt ähnliche Schwächen und ist auf einem Terminal Server praktisch nicht nutzbar. Es ist sehr verwunderlich, wie ein global agierendes Unternehmen wie Adobe es nicht bewerkstelligt ein voll Terminal Server taugliches Produkt zu erstellen. Wir sind daher umso dankbarer, dass gute Alternativen auf dem Markt existieren. Neben zahlreichen kleineren Unternehmen, die kommerziell PDF Software anbieten, bestehen eine Reihe von Freeware Projekten, die sich der Erstellung von PDF Dateien widmen. Dieses WTS Review befasst sich mit dem Produkt FreePDF XP 1.2, nachfolgend kurz FreePDF genannt. Das Dokument behandelt die Installation und Konfiguration der Software auf einem Terminal Server und ist keine Erläuterung der Softwarefunktionen im Einzelnen. Für detaillierte Informationen zum Umgang mit FreePDF konsultieren Sie bitte die Herstellerwebsite bzw. die FreePDF Dokumentation. Testumgebung für FreePDF XP 1.2 Aktuelle Terminal Server Installationen werden mit dem Betriebssystem Windows Server 2003 implementiert. In fast allen Fällen wird als Zusatz zu den Microsoft Terminal Diensten die Erweiterung Citrix Metaframe eingesetzt. Nachfolgend sind die Parameter der FreePDF Testumgebung ersichtlich: Windows Server 2003 Standard / Deutsch / Alle Updates Stand September 04 Citrix Metaframe XPa 1.0 / Feature Release 3 Alle Festplatten sind NTFS formatiert Die Terminal Dienste sind mit höchster Sicherheitsstufe aktiviert -1- II. Benötigte Softwarekomponenten Für die Installation von FreePDF unter Windows Server 2003 sind verschiedene Softwarekomponenten erforderlich. Die benötigte Software und deren Quellen werden nachfolgend dokumentiert. 1) Ghostscript 8.14 Ghostscript ist ein freier Interpreter für PostScript Daten. PostScript wiederum stellt eine Layout Beschreibungssprache dar, welche von Adobe entwickelt wurde. Mit Hilfe von Ghostscript können PostScript Dateien auf der Kommandozeile in PDF Dateien umgewandelt werden. URL zum Ghostscript Projekt: http://sourceforge.net/projects/ghostscript/ Download der Ghostscript Win32 Installationsdatei: http://prdownloads.sourceforge.net/ghostscript/gs814w32.exe?download 2) RedMon – Redirection Port Monitor Mit Hilfe von RedMon können Druckdaten über einen speziellen Druckport an ein Programm umgeleitet werden. URL zum RedMon Projekt: http://www.cs.wisc.edu/~ghost/redmon/ Ein Download von RedMon ist nicht erforderlich, da das FreePDF Installationspaket eine Version von RedMon enthält. 3) FreePDF XP FreePDF XP implementiert eine grafische Oberfläche für Ghostscript. Über das FreePDF Druckobjekt werden beliebige Druckdaten von Anwendungen in das PDF Format umgewandelt. URL zum FreePDF XP Projekt http://www.freepdfxp.de/ bzw. http://www.shbox.de/ Hinweis Dieses WTS Review behandelt das Programm FreePDF XP. Zwecks einfacherer Schreibweise wird im Dokument die Bezeichnung FreePDF verwendet. FreePDF ist ebenfalls der Vorgänger von FreePDF XP. Achten Sie beim Download auf die richtige Version. -2- 4) Dynamic Link Library MSVBVM50.dll FreePDF XP wurde mit Visual Basic 5.0 entwickelt. Zur Ausführung des Programms wird daher die Visual Basic Virtual Machine 5.0 benötigt (MSVBVM50.dll). Bei Windows Server 2003 wird diese Datei nicht mitgeliefert, so dass schon die Installation von FreePDF scheitert. Sie können eine vorhandene Datei MSVBVM50.dll nach %systemroot%\System32 kopieren, oder die folgenden Quellen zum Bezug der fehlenden DLL nutzen. Microsoft Download Webseite: Stichwort in der Suchmaske „Visual Basic Runtime“ Alternativer Download: http://www.dll-files.com/dllindex/dll-files.shtml?msvbvm50 -3- III. Installation von FreePDF XP auf einem Terminal Server Die Visual Basic Runtime 5.0 ist auf dem Windows Server 2003 bereits im Vorfeld installiert worden. Die benötigten Softwarekomponenten werden in folgender Reihenfolge installiert. 1. Ghostscript 8.14 2. FreePDF XP 1.2 Wichtig!!! Auf einem Server mit aktivierten Terminal Diensten sollte jegliche Software im Installationsmodus des Betriebssystems erfolgen. Nach der Installation der Software wird der Terminal Server in den Ausführungsmodus zurückversetzt. Benutzen Sie nachfolgende Kommandozeilenbefehle um den Terminal Server in den Installationsbzw. Ausführungsmodus zu versetzen. Change user –install bzw. Change user –execute Installieren Sie Software immer in der Konsolensession des Servers. Software darf niemals in einer remote Session installiert werden. Remote Installationen sind z.B. nur dann sinnvoll, wenn die Session ID 0 verwendet wird. Unter RDP ist es möglich, sich mit der Konsolensession des Windows Server 2003 zu verbinden (Schalter /console). Andere Programme z.B. Dameware verbinden sich ebenfalls auf die Konsolensession ID 0. Überprüfen Sie vor der Installation die Konsolensession mit dem Kommandozeilenbefehl: Query user Die Installation von GhostScript 8.14 erfolgt in den Ordner %ProgramFiles%\gs. -4- Nach dem Kopieren der Dateien ist die Installation beendet. Jetzt erfolgt die Installation von FreePDF. Sie werden bemerken, dass die Installation von FreePDF nur wenige Mausklicks erfordert. Außer einem Klick auf <Start> und <End> sind keine weiteren Eingaben nötig. Hinweis FreePDF installiert sich immer in den Ordner %ProgramFiles%\FreePDF XP. Ein alternativer Ordner kann nicht ausgewählt werden. Für Rollouts größerer Terminal Server Farmen werden automatisierte Installationsroutinen immer wichtiger. FreePDF XP lässt sich automatisiert installieren. Für weitere Details lesen Sie bitte die Dokumentation von FreePDF. -5- IV. Test FreePDF XP im Multi User Umfeld Getestet wurde mit drei parallelen ICA Sitzungen (Desktop Sessions) und gleichzeitiger Generierung von verschiedenen PDF Dokumenten. PDF Dateien zu Erzeugen ist mit jeder Anwendung möglich, die Dateien über das FreePDF Druckobjekt ausgeben kann. Kurze Zeit nach dem Auslösen des Druckvorgangs erscheint die FreePDF GUI und es können verschiedene Parameter für das PDF Dokument vorgegeben werden. Das Erzeugen von PDF Dokumenten gestaltet sich einfach und komfortabel. Mittels der vorhandenen PDF Profile können die Eigenschaften des PDF Dokuments verändert werden. Lesen Sie später weitere Informationen zu PDF Profilen. Der Button „Per E-Mail senden“ stellt eine MAPI Schnittstelle mittels des Programms fpMailer.exe zur Verfügung. Die PDF Datei wird erzeugt, dann der Default eMail Client gestartet und eine neue eMail mit dem Dokument als Anhang generiert. fpMailer.exe ist zu vielen gängigen eMail Programmen kompatibel. Eine Aufstellung aller getesteten Programme ist auf der Website des Herstellers zugänglich. Hinweis Mit Lotus Notes als eMail Client sollten ausführliche Tests unternommen werden. Auf der Website http://shbox.de/fpmailer.htm wird berichtet, dass manche Versionen von Lotus Notes nicht mit fpMailer.exe kompatibel sind. Als Workaround sollte in diesen Fällen das Programm Mapimail.exe statt fpMailer.exe verwendet werden. Ein Download Link ist unter obiger URL verfügbar. -6- Bei unseren Tests mit FreePDF kam es zu keinen Problemen, die auf eine Inkompatibilität mit einem Terminal Server hinweisen würden. Es wurden stellenweise extreme Situationen getestet. U.a. wurden ICA Session Abstürze simuliert, wobei zuerst nur der Prozess fpassist.exe beendet wurde; in einem weiteren Test wurde die Session während der PDF Erzeugung gelöscht. Bei einem Neustart der Session bzw. Neustart von fpassist.exe bemerkt FreePDF, dass noch nicht beendete Jobs im Ordner „C:\Dokumente und Einstellungen\All Users\FreePDF“ vorliegen und die GUI wird umgehend gestartet. Als abschließender Test wird die PDF Verschlüsselung getestet. Dazu startet man die PDF Erzeugung wie gewohnt, setzt aber den Optionshaken „PDF Verschlüsseln“. In obigem Konfigurationsformular können die zu sichernden Eigenschaften des PDF Dokuments hinterlegt werden. Ein Klick auf <OK> startet dann wie gewohnt die PDF Erstellung. Es kam zu keinen Problemen währen der Tests mit der PDF Verschlüsselung. -7- V. Probleme, Anpassungsmöglichkeiten, Tipps Kein Programm ist perfekt, auch FreePDF nicht. Auf den nun folgenden Seiten möchten wir auf eventuelle Schwachstellen und Probleme von FreePDF hinweisen. Diese Punkte behindern nicht den Einsatz unter Terminal Services. Es ist aber dennoch wichtig, auch diese Punkte anzusprechen um einen umfassenden Überblick über FreePDF zu erlangen. Speichern der PostScript Dateien vor der PDF Umwandlung Umgang mit FreePDF Profilen Anpassungen der FreePDF GUI Der Prozess fpassist.exe Speichern der PostScript Dateien vor der PDF Umwandlung Die Umwandlung von Druckdaten in das PDF Format erfolgt in mehreren Schritten. Wir werden später beim Punkt „Der Prozess fpassis.exe“ näher auf den Ablauf eingehen. Vereinfacht ausgedrückt wird eine PostScript Datei erzeugt, welche dann über GhostScript nach PDF umgewandelt wird. PDF Profile beeinflussen die Parameter, wie GhostScript die PostScript Daten nach PDF wandelt. Am Anfang der PDF Erzeugung steht demnach eine PostScript Datei. FreePDF erzeugt einen Ausgabeordner für alle PostScript Daten in folgendem Pfad: %ALLUSERSPROFILE%\FreePDF z.B. C:\Dokumente und Einstellungen\All Users\FreePDF In diesem Ordner werden alle PostScript Dateien von allen Benutzern des Terminal Servers gespeichert. Hier ergibt sich die erste Schwachstelle des Programms. Ideal wäre es, wenn benutzerbezogene Daten auch im jeweiligen Benutzerprofil abgespeichert werden, und nicht in einem allgemein zugänglichen Bereich des Systems. Der Speicherpfad wird über einen Registry Key unter HKLM gesteuert: Wir haben versucht den Wert psDir mit einem Reg_Expand_SZ Key zu ersetzen um so den Pfad auf %TEMP% zu verändern. Dies hätte den enormen Vorteil, dass PostScript Dateien im jeweiligen Temp Pfad des Benutzerprofils abgelegt werden, und nicht im Systempfad %ALLUSERSPROFILE%\FreePDF. Alle Experimente waren nicht mit Erfolg gesegnet. Änderungen während der Laufzeit werden ignoriert. Nach einem Neustart des Servers befinden sich alle Registry Werte wieder im unveränderten Originalzustand, werden also von FreePDF korrigiert. -8- Der Speicherort %ALLUSERSPROFILE%\FreePDF birgt noch ein weiteres Problem in sich, welches durchaus als ernste Sicherheitslücke zu bezeichnen ist. Die NTFS Rechte auf die erzeugten PostScript Dateien sind derart schwach ausgelegt, dass es Angreifern möglich wäre Dateien zu kopieren oder gar zu löschen. Sehen wir uns die NTFS Berechtigungen auf den Ordner %ALLUSERSPROFILE%\FreePDF und eine PostScript Datei einmal näher an. Hinweis Der Windows Server 2003 wurde mit der Option „Vollständige Sicherheit“ installiert. An den NTFS Rechten wurden keine Veränderungen vorgenommen. Die obigen Screenshots zeigen die Situation bei einer Standard „Out of the Box“ Installation. Man kann erkennen, dass die Gruppe „Jeder“ mehr NTFS Rechte besitzt, als in einer sicheren Umgebung gewünscht sein kann. Es ist mit diesen Rechten kein Problem eine PostScript Datei zu kopieren oder zu löschen. Dies ist durchaus brisant, weil es sich bei den PostScript Dateien ja auch um Gehaltslisten etc. handeln könnte. Von Änderungen der NTFS Rechte auf den Ordner FreePDF ist abzuraten. Es kam bei unseren Tests zu Abstürzen des fpassist.exe Prozesses nachdem die NTFS Rechte zu restriktiv gesetzt wurden. Das Experiment war folgendermaßen angelegt: Auf den Ordner %ALLUSERSPROFILE%\FreePDF wurden restriktivere NTFS Rechte vergeben, so dass nur noch Administratoren und das System Vollzugriff erhalten. Der Gruppe „Jeder“ wurde das Recht „Lesen“ eingeräumt. Wenn nun die NTFS Vererbung greift, müsste auf den erzeugten PostScript Dateien diese NTFS Rechte abgebildet werden. Dies ist leider nicht der Fall. -9- FreePDF erzeugt alle PostScript Dateien mit folgenden NTFS Rechten: Administratoren System Hauptbenutzer Jeder Full Full RWXD RWXD Hinweis Das Sicherheitsproblem lässt sich nur durch eine neue Version von FreePDF beheben. Es sollte daher der Fokus darauf gelegt werden, dem Anwender den Zugriff auf den Ordner %ALLUSERSPROFILE%\FreePDF so schwer wie möglich zu machen. Schränken Sie den Zugriff mittels Group Policies ein, so dass auf das Systemlaufwerk des Terminal Servers nicht mehr zugegriffen werden kann. Achtung: Sperren Sie auf jeden Fall auch die Kommandozeile des Terminal Servers. Group Policies greifen nur für GUI basierte Windows Programme. Trotz Policy kann mittels der Kommandozeile ein Zugriff auf das Systemlaufwerk, und damit die PostScript Dateien, erfolgen. Umgang mit FreePDF Profilen FreePDF Profile sind Dateien der Endung *.FPP. Diese ASCII basierenden Dateien enthalten Parameter für GhostScript und bestimmen, wie PostScript Dateien nach PDF zu wandeln sind. FPP Dateien werden mittels der FreePDF KonfigurationsKonsole erstellt. - 10 - Dem Hinweis des GhostScript Parameter Editor können wir nur beipflichten: „Dieser Dialog ist nur für Experten gedacht“. Beschäftigen Sie sich mit der Dokumentation bevor Sie eigene FreePDF Profile erstellen. Ihren Anwender sollten Sie es nicht gestatten eigene Profile zu generieren. Dies würde nur Verwirrung hervorbringen und zu unnötigen Helpdesk Anrufen führen. Sorgen Sie deshalb dafür, dass der Link zur FreePDF Konfigurationsoberfläche für die Anwender nicht verfügbar ist. In manchen Situationen kann es dennoch gewünscht sein, das ein oder mehrere Anwender zusätzliche FreePDF Profile im Auswahldialog zur PDF Erstellung vorfinden. Beachten Sie die beiden Schaltflächen am unteren Bildrand des GhostScript Parameter Editors. „Für Alle Benutzer“ Speichert die FPP Dateien im Installationsordner von FreePDF. Diese Profile sind für alle Anwender des Terminal Servers sichtbar. Über einen Key in der Registry können Sie bestimmen, welches Profil beim Start von FreePDF als Standard benutzt wird. Auch bei den PDF Profilen ist die NTFS Sicherheit ein Punkt, den man ansprechen sollte. Schauen wir uns die Berechtigungen auf den Installationsordner von FreePDF einmal näher an: Die Berechtigungen werden vom Ordner %ProgramFiles% vererbt d.h. Benutzer haben nur „Read“ Berechtigungen. Per Default dürfen nur Administratoren, Hauptbenutzer und Terminalserverbenutzer Dateien in diesem Ordner anlegen. Hinweis Solange Sie Ihren Terminal Server mit der Option „Vollständige Sicherheit“ installiert haben besteht keine Gefahr. Wenn Sie diese Option nicht verwenden, so sind alle Benutzer des Servers automatisch in der Gruppe „Terminalserverbenutzer“ und genießen entsprechend höhere NTFS Rechte. Mit diesen NTFS Rechten dürfen alle Benutzer FPP Profile im Installationsordner erstellen. - 11 - „Für diesen Benutzer“ Um FreePDF Profile benutzerspezifisch abzulegen wird von FreePDF ein eigener Ordner im Profil des jeweiligen Anwenders angelegt: %USERPROFILE%\FreePDF z.B. C:\Dokumente und Einstellungen\Administrator\FreePDF Werden die FPP Dateien in diesem benutzerspezifischen Ordner abgelegt, so kann auch nur dieser Benutzer das Profil verwenden. Vorgefertigte FPP Profile könnten z.B. mittels Loginscript verteilt werden, so dass sich ein Benutzer nicht um die Erstellung von FPP Profilen kümmern muss. Zwei Kritikpunkte können wir am Handling mit den FreePDF Profilen anmerken. Zum einen hält sich FreePDF nicht an gängige Standards und legt einen eigenen Ordner im Profil an. Für anwendungsspezifische Daten ist in Windows der Profilordner %APPDATA% vorgesehen. In der aktuellen Version von FreePDF ist es dadurch z.B. nicht möglich, die FPP Profile auf ein Netzlaufwerk auszulagern. Der Systempfad zu %APPDATA% kann in der Registry leicht abgeändert werden. Für den Ordner %USERPROFILE%\FreePDF existiert leider kein Registry Key, so dass keine Anpassung des Pfades erfolgen kann. Der zweite Kritikpunkt ist eher marginal. FreePDF speichert nicht alle benutzerbezogenen Einstellungen in der Registry des Benutzers. Es wäre z.B. wünschenswert, wenn das zuletzt benutzte PDF Profil beim nächsten Start als Default Profil ausgewählt wäre. Leider wird immer das Default Profil des Systems angezeigt. - 12 - Anpassungen der FreePDF GUI Verschiedene Parameter der Benutzer GUI können durch den Administrator vorgegeben werden. Diese sind mittels Registry Änderungen leicht modifizierbar. Folgende Registry Werte des Anwenders können bearbeitet werden: Zu finden sind diese Werte in folgendem Schlüssel: HKEY_CURRENT_USER\Software\shbox\FreePdfXP “language” Der Wert „1“ steht für Deutsche Sprache. Mit einer „2“ wird auf Englisch gewechselt. Neben diesen Standard Sprachen können beliebige Sprachen verwendet werden. Vorraussetzung ist ein entsprechendes Language File (*.LAN). Es werden zwei LAN Files mit FreePDF ausgeliefert. English (Vorlage für Übersetzungen) Niederländisch Weitere Sprachfiles können mittels der Vorlagen Dateien erstellt werden. „OpenPDF“ Dieser Wert legt fest, ob PDF Dateien nach der Erstellung mit einem PDF Betrachter geöffnet werden sollen. Wert 1 – PDF nach Erstellung öffnen Wert 0 – PDF nicht öffnen - 13 - „ViewGsLog“ Dieser Wert beeinflusst, ob GhostScript Log Daten während der PDF Erzeugung angezeigt werden. Wert 1 – Zeigt GhostScript Logs Wert 0 – Verhindert die Anzeige von Logs Der Prozess fpassist.exe Der Prozess fpassist.exe muss in jeder Benutzersitzung gestartet sein, damit FreePDF arbeiten kann. Ohne diesen Prozess ist eine Umwandlung von PostScript nach PDF nicht möglich. Fpassist.exe überprüft im Sekundentakt, ob eine Datei %USERNAME%xxxxxxx.ps im Ordner %ALLUSERSPROFILE%\FreePDF vorhanden ist. Wird eine entsprechende Datei gefunden, so wird die FreePDF GUI gestartet und die Umwandlung in das PDF Format kann beginnen. Gestartet wird der Prozess fpassist.exe über einen Registry Schlüssel unter HKLM: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run Dieser Mechanismus eröffnet Administratoren die Möglichkeit nur bestimmten Benutzern das Erstellen von PDF Dokumenten zu erlauben. Zum einen können NTFS Berechtigungen auf das FreePDF Druckobjekt vergeben werden. Nur Anwender, welche z.B. in der Gruppe „PDF-Drucker“ enthalten sind haben Berechtigungen auf das Druckobjekt. Zum anderen kann in diesem Fall vermieden werden, dass der Prozess fpassist.exe in jeder Benutzersitzung gestartet wird. Statt den Run Key unter HKLM zu verwenden, kann - 14 - der Run Key im Hive HKCU verwendet werden. Alternativ ist auch ein Eintrag im Autostart Ordner des Benutzers möglich. In der Architektur von FreePDF XP liegt, unserer Meinung nach, die größte Schwäche des Programms. Für jeden Anwender wird ein Prozess fpassist.exe gestartet. Dieser Prozess verbraucht RAM und CPU. Zusätzlich wird der Festplattencache beansprucht, der von jedem Prozess im Sekundentakt abgefragt wird. Bei einem typischen Terminal Server mit 2 CPUs können wir von ca. 40 gleichzeitigen Benutzersitzungen ausgehen. Wir wissen alle, dass der „typische“ Terminal- oder Citrix Server nicht existiert, aber dies ist nur eine Beispielrechnung: 40 zusätzliche Prozesse 40 Zugriffe auf den Ordner %ALLUSERPROFILE%\FreePDF pro Sekunde Speicherverbrauch = 40 x 1,8MB = 72MB Wir würden uns wünschen, dass nur dann Ressourcen belegt werden, wenn dies unbedingt nötig ist. Nur bei einer PDF Umwandlung sollte der Prozess fpassist.exe gestartet werden. Nach Ende der PDF Erstellung könnte der Prozess wieder beendet werden. Die Zukunft wird zeigen, ob eine solche Architektur mit FreePDF realisierbar ist. - 15 - VI. Abschlussbesprechung Wir möchten an dieser Stelle dem Entwickler von FreePDF, Stefan Heinz, unseren Dank aussprechen. Gute Produkte, die auch voll Terminal Server tauglich sind, als Freeware anzubieten ist leider selten geworden. Wo Licht ist, ist auch Schatten. FreePDF ist in der getesteten Version 1.2 nicht perfekt, aber für den alltäglichen Gebrauch mehr als nur geeignet. Von einigen Schwachstellen abgesehen können wir FreePDF für den Einsatz auf einem Terminal Server empfehlen. Wir bieten ferner Herrn Heinz unsere volle Unterstützung an, was die Weiterentwicklung von FreePDF angeht. Danke für Ihr Interesse an diesem WTS Review. Weitere WTS Review´s zu den unterschiedlichsten Terminal Server Themen werden in Zukunft auf der Website www.ZankerIT.de bzw. www.ZankerIT.com erscheinen. Für Fragen und Anregungen stehen wir jederzeit zur Verfügung. Danke. Mit den besten Empfehlungen Oliver Zanker - 16 -