BlackSeals.net blog

…der Blog über dieses und jenes!

Archiv für die 'IIS' Kategorie

Enthält Artikel zum Internet Information Service (Internetinformationsdienste) – der Webserver von Microsoft. Unterkategorie von Tutorial.

GnuTLS Fehler beim Zugriff auf einen Microsoft FTP(S)-Server

Erstellt von Andyt am 1. Dezember 2011

  • Betrifft: IIS 7.0 und IIS 7.5, jeweils mit installiertem FTP
  • System: Microsoft Windows Server 2008 x64, Windows Server 2008 R2 x64
  • Problem: beim Zugriff von einem FTP-Client auf die FTP Funktion vom IIS 7.x erhält man einen GnuTLS Fehlermeldung. Die FTP-Verbindung wird hierbei mittels TLS und SSL-Zertifikat geschützt.

Hintergrund

Seit IIS 7.x wurde die FTP-Funktion komplett überarbeitet. Nun beherrscht die FTP-Komponente im IIS auch eine Verschlüsselung. Zu diesem Zweck wurde eine FTP-Seite mit Zertifikat am Server eingerichtet und bei der FTP-Firewallunterstützung die öffentliche IP-Adresse eingetragen. Auch der Datenkanal-Portbereich wurde entsprechend angepasst.

iis_ftp_firewall

Die externe Firewall wurde entsprechend den gewünschten Einstellungen konfiguriert und leitet die Anfragen weiter. Trotzdem erhält man beim Zugriff auf den FTP-Server nur eine merkwürdige Fehlermeldung. Das Anmelden funktioniert, aber es wird kein Verzeichnisinhalt angezeigt.

GnuTLS error -53: Error in the push function.

550 Data channel timed out.

Der IIS wurde bereits neu gestartet (z.B. via Kommandozeile mit "iisreset /noforce") und etwaige Einstellungen geprüft.

 

Behebung

Die meisten werden an fehlerhaften Einstellungen bei der Firewall denken. Im Prinzip ist dieser Gedanke nicht ganz falsch. Definitiv der falsche Weg wäre hier bei der Windows Firewall herum zu pfuschen, denn diese wird über den Installationsassistenten bereits vorkonfiguriert. Eine Kontrolle wird dies auch zeigen.

windows_firewall_ftp

Der Grund liegt an dem passiven FTP, wo der Aufbau über den Standardport erfolgt, jedoch der Datenaustausch über eigene Ports (siehe Datenkanal-Portbereich). Es wäre aber zwecklos nun das passive FTP zu deaktivieren oder einen anderen Portbereich zu wählen. Die Behebung  ist recht einfach erledigt.

iis_ftp_service
Die FTP-Komponente verwendet einen eigenen Dienst, welcher nichts mit dem IIS Webpublishing zu tun hat. Damit wird dieser Dienst auch nicht über "iisreset" neu gestartet. Womöglich wurde der Datenkanal-Portbereich neu konfiguriert. Dies muss sowieso einmalig auf jeden Computer durchgeführt werden nachdem man die FTP-Komponente installiert hat. Standardmäßig wird nämlich kein konkreter Portbereich vorgegeben.

Für die Übernahme dieser neuen Konfiguration muss der "Microsoft-FTP-Dienst" neu gestartet werden. Die restlichen IIS-Dienste können gestartet bleiben.

 

Entweder man macht dies per Maus über die Diensteverwaltung oder in der Kommandozeile "cmd" mittels den beiden Befehlen "net stop ftpsvc" und "net start ftpsvc". Danach wird die GnuTLS-Fehlermeldung nicht mehr erscheinen.

weitere relevante Beiträge...

Abgelegt unter IIS, Tutorial | Keine Kommentare »

HTTP-Fehler 500.19, zugehörige Konfigurationsdaten sind ungültig

Erstellt von Andyt am 5. Oktober 2010

  • Betrifft: IIS 7.0 und IIS 7.5
  • System: Microsoft Windows Server 2008 x64, Windows Server 2008 R2 x64
  • Problem: beim Zugriff auf ASP.NET 32-Bit Anwendungen unter IIS 7.x auf einem 64-Bit Windows Server erhält man eine Internal Server Error. Die Windows Server Update Services 3.0 sind am gleichen Server installiert.

Hintergrund

Ab IIS 7.0 ist es unter Windows Server möglich nicht mehr den gesamte Webserver im 32-Bit Modus zu setzen, sondern nur die vereinzelten ASP.NET Anwendungen. Dies geht jeweils pro Anwendungspool.

Immer wieder ist dies notwendig, da manche Webanwendungen nur im 32-Bit Modus verfügbar sind. Also nichts leichter als den Anwendungspool unter erweiterte Einstellungen zu ändern.

iis7_anwendungspool_32bit

Nachdem umstellen erhält man beim Aufruf der Webseite eine Fehlermeldung. In meinem Fall mit den "Informationsdiensten 7.5" unter Windows Server 2008 R2:

iis7_http_error_500-19

HTTP-Fehler 500.19 – Internal Server Error

Auf die angeforderte Seite kann nicht zugegriffen werden, da die zugehörigen Konfigurationsdaten für die Seite ungültig sind.

Ausführliche Fehlerinformationen

Modul: DynamicCompressionModule
Benachrichtigung: SendResponse
Handler: StaticFile
Fehlercode 0x8007007e
Angeforderte URL: http://*/*
Physikalischer Pfad: C:\*
Anmeldemethode: Noch unbestimmt
Angemeldeter Benutzer: Noch unbestimmt

Wahrscheinlichste Ursachen:

  • Der Arbeitsprozess kann die Datei "applicationhost.config" oder "web.config" nicht lesen.
  • Die Datei "applicationhost.config" oder "web.config" enthält falsch formatierten XML-Code.
  • Der Server kann aufgrund falscher NTFS-Berechtigungen nicht auf die Datei "applicationhost.config" oder "web.config" zugreifen.

Mögliche Vorgehensweise:

  • In den Ereignisprotokollen finden Sie weitere Informationen darüber, warum die Konfigurationsdateien nicht gelesen werden können.
  • Stellen Sie sicher, dass die für den Anwendungspool angegebene Benutzeridentität oder der authentifizierte Benutzer über die erforderlichen Berechtigungen für den Zugriff auf die Datei "web.config" verfügt.

Links und weitere Informationen

Dieser Fehler tritt auf, wenn beim Lesen der Konfigurationsdatei für den Webserver oder die Webanwendung ein Problem vorliegt. In bestimmten Fällen finden Sie weitere Informationen über die Ursache dieses Fehlers in den Ereignisprotokollen.

Auf dem gleichen Webserver sind die Windows Server Update Services 3.0 (=WSUS) installiert. Das zugehörige Installationsprogramm installiert ein Komprimierungsmodul um die Verteilung der Updates Hotfixes, Feature Packs und ähnliches mittels komprimierter Daten durchführen zu können.

Beim Installationsvorgang wird auf einem 64-Bit System jedoch nur die 64-Bit Version des Komprimierungsmodules "suscomp.dll" unter "C:\WINDOWS\system32\inetsrv" installiert.

 

Zwischenschritt

In diesem konkreten Fall ist entgegen der Angabe in der Fehlermeldung keine Konfigurationsdatei ungültig und auch die Berechtigung wird höchstwahrscheinlich stimmen. Viel wahrscheinlicher ist das fehlen einer 32-Bit Variante des Komprimierungsmodules.

Der Fehlercode 0x8007007e bedeutet "ERROR_MOD_NOT_FOUND" bzw. "The specified module could not be found" – also das spezifizierte Modul kann nicht gefunden werden.

Dieses Modul ist in der Datei "suscomp.dll" und wird als "Xpress Compression" bezeichnet. Dieses müsste unter "C:\WINDOWS\SysWOW64\inetsrv" liegen. Dort ist aber die "suscomp.dll" Datei nicht zu finden. Die 64-Bit Variante kann nicht verwendet werden. Beim WSUS 3.0 x64 Setup wird keine 32-Bit Variante mitgeliefert.

 

Behebung

Mir sind drei Möglichkeiten bekannt. Die ersten zwei Lösungen habe ich selber getestet – hierbei ist meine Empfehlung die 2. Variante.

 

1.) Komprimierung deaktivieren

Die Konfiguration der Komprimierung ist leider global und betrifft immer den gesamten Webserver. Ein deaktivieren beeinträchtigt somit auch den WSUS. Dieser kann dann keine komprimierten Dateien mehr ausliefern, was das Datenvolumen erhöht (womöglich aber die Prozessorlast verringert).

Nachfolgende Befehle einfach über die Command Shell (=> "cmd") ausführen.

Deaktivieren:

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /-[name='xpress']

 

Aktivieren:

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+[name='xpress',doStaticCompression='false',dll='%windir%\system32\inetsrv\suscomp.dll']

 

2.) 32-Bit Version des Komprimierungsmoduls besorgen

Einfach die "suscomp.dll" Datei von einem 32-Bit Windows Server mit installiertem WSUS kopieren und in "C:\WINDOWS\SysWOW64\inetsrv" einfügen. Beim nächsten Aufruf wird die Webseite normal funktionieren. Darüber hinaus bleibt die Komprimierungsfunktion erhalten und es können keine Nebenerscheinungen auftreten.

Bei Bedarf kann ich gerne die 32-Bit Variante per Email zusenden. Einfach über Kontakt mit mir in Verbindung treten. Ich konnte bis dato nicht abklären, ob ein direkter Download dieser geschützten Datei erlaubt ist.

 

3.) 64-Bit Modul nur bei 64-Bit Anwendungspools laden

Eine dritte Variante ist mir zwar bekannt, konnte diese aber nicht nachvollziehen. Hierbei wird das 64-Bit Modul per "precondition=64bitness" nur bei 64-Bit Anwendungspools gesucht und geladen. Wenn jemand eine Anleitung oder ansonsten nähere Informationen kennt, so bitte ich um Info per Kommentar oder Kontakt.

weitere relevante Beiträge...

Abgelegt unter IIS, Tutorial | 5 Kommentare »

HTTP-Fehler 404.11, Escapesequenz werden abgelehnt im IIS

Erstellt von Andyt am 19. Juni 2010

  • Betrifft: IIS 7.0 und IIS 7.5
  • System: Microsoft Windows Server 2008, Windows Server 2008 R2
  • Problem: Zugriff auf Dateien mit “+” im Namen schlagen fehl, unter anderem Notwendig bei Microsoft Active Directory Zertifizierungsstelle

Hintergrund

Beim Zugriff auf eine Datei mittels Webbrowser erhält man einen Serverfehler. Die Webseite wird dabei im IIS 7.0 oder IIS 7.5 auf einem Windows Server betrieben.

In meinem konkreten Fall werden die “Internetinformationsdienste 7.5″ unter Windows Server 2008 R2 verwendet. Die Fehlerzusammenfassung zeigt folgendes an:

iis7_http_error_404-11

HTTP-Fehler 404.11 – Not Found

Das Anforderungsfilterungsmodul ist so konfiguriert, dass Anforderungen abgelehnt werden, die eine doppelte Escapesequenz enthalten.

Ausführliche Fehlerinformationen

Modul RequestFilteringModule
Benachrichtigung BeginRequest
Handler StaticFile
Fehlercode 0×00000000
Angeforderte URL http://*+.*
Physikalischer Pfad C:\*+*
Anmeldemethode Noch unbestimmt
Angemeldeter Benutzer Noch unbestimmt

Wahrscheinlichste Ursachen:

· Die Anforderung enthielt eine doppelte Escapesequenz, und die Anforderungsfilterung ist auf dem Webserver so konfiguriert, dass doppelte Escapesequenzen abgelehnt werden.

Mögliche Vorgehensweise:

· Überprüfen Sie die Einstellungen für “configuration/system.webServer/security/requestFiltering@allowDoubleEscaping” in der Datei “applicationhost.config” oder “web.config”.

Links und weitere InformationenHierbei handelt es sich um ein Sicherheitsfeature. Ändern Sie dieses Feature nur, wenn Sie sich über die Auswirkungen der Änderung vollständig im Klaren sind. Vor dem Ändern dieses Werts sollten Sie eine Ablaufverfolgung im Netzwerk ausführen, um sicherzustellen, dass die Anforderung nicht bösartig ist. Wenn doppelte Escapesequenzen vom Server zugelassen werden, ändern Sie die Einstellung “configuration/system.webServer/security/requestFiltering@allowDoubleEscaping”. Dies kann auf eine falsch formatierte URL zurückzuführen sein, die von einem böswilligen Benutzer an den Server gesendet wurde.

Behebung

In der Standardeinstellung werden doppelte Escapesequenzen blockiert. Damit können unter anderem keine Dateien geladen werden, die im Namen ein “+” enthalten. Bei manchen Webdiensten ist es jedoch erforderlich, dass diese Zeichen zugelassen werden.

Unter anderem ist die Active Directory Zertifizierungsstelle ein solcher Webdienst. Hierbei wird die Zertifikat-Deltasperrliste auf diese Weise verteilt. Im Dateinamen ist dabei ein Plus vorhanden.

Die Behebung ist dabei recht simpel.

  1. Der Command-Prompt muss mit Administratorenrechte gestartet werden.
    1. mit “Windows-Taste + R” und danach im Ausführen-Fenster “cmd” eingeben.windows_run_cmd2
    2. mittels Windows-Suche nach dem Programm “cmd” suchen, Rechtsklick mit der Maus und “Als Administrator starten” auswählen. windows_run_cmd1
  2. Es wird der Command-Prompt oder auch Konsolenfenster geöffnet.
  3. Nun muss der Ordner gewechselt werden. Dazu folgendes eingeben:
    %windir%\system32\inetsrv
  4. Danach kommt der eigentliche Befehl. Statt “Default Web Site” bitte die eigene Webseitenbezeichnung eingeben. Dies kann im Internetinformationsdienste (IIS)-Manager ausgelesen werden.iis7_manager
    Appcmd set config “Default Web Site” /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True
  5. Die Erlaubnis von doppelten Escapesequenzen wird dabei nur für die entsprechend angegebene Webseite erlaubt. Alle anderen bleiben auf der Standardeinstellung.

Weitere Information ist auch in der Microsoft Knownledge Base KB 942076 zu finden – IIS 7.0: “HTTP-Fehler 404.11 – URL_DOUBLE_ESCAPED”.

weitere relevante Beiträge...

Abgelegt unter IIS, Tutorial | Keine Kommentare »