IUSR kann nicht für die Ausführung eines Dienstes unter ausgewählt werden

IUSR kann nicht für die Ausführung eines Dienstes unter ausgewählt werden

Wir haben eine Windows 2008 R2-Box mit IIS 7.5, bei der wir aus Sicherheitsgründen den World Wide Web Publishing Service so einrichten müssen, dass er unter IUSR läuft. Ich kann IUSR problemlos Ordnerberechtigungen erteilen. Aber wenn ich versuche, IUSR als Konto auszuwählen, unter dem der World Wide Web Publishing Service laufen soll, erhalte ich die Meldung, dass der Benutzer nicht gefunden werden kann. Derzeit läuft der Dienst unter „Lokales Systemkonto“. Für jede Hilfe wären wir sehr dankbar.

Antwort1

IUSR ist der Sicherheitskontext, der verwendet wird, wenn anonyme Besucher Ihre Website durchsuchen. Ich würde davon abraten, ihn für den WWW-Dienst zu verwenden.

Vor IIS7.5 wurde für Sie zusätzlich zum lokalen IUSR-Konto ein Dienstkonto (IWAM) erstellt, das ein lokales Konto war. Das neue Modell soll mit verschiedenen Anwendungspoolidentitäten laufen, sodass eine Website keine andere auf der Box beeinträchtigen kann, wenn eine Site kompromittiert wird. Ich würde wahrscheinlich ein nicht privilegiertes lokales Konto für den WWW-Dienst in Betracht ziehen, um die Anmeldeinformationen auf diese bestimmte Box zu beschränken.

Ich habe die Verwendung eines lokalen Benutzers für WWW und den Windows Process Activation Service getestet und immer wieder Fehlermeldungen wie „Dieses Konto verfügt nicht über ausreichende Berechtigungen“ für den Windows Process Activation Service erhalten. Also habe ich das lokale Konto zu IIS_IUSRS und jeder anderen IIS-bezogenen Gruppe hinzugefügt, bin zur lokalen Sicherheitsrichtlinie gegangen und habe die Berechtigungen in der Benutzerrechtezuweisung der lokalen Sicherheitsrichtlinie hinzugefügt:

  • Ersetzen eines Tokens auf Prozessebene
  • Anpassen der Speicherkontingente für einen Prozess
  • Erstellen Sie Sicherheitsüberprüfungen
  • Anmelden als Batchauftrag

Das hat nicht funktioniert, also habe ich „Globale Objekte erstellen“ hinzugefügt, nachdem ich bei Google etwas gefunden hatte, das helfen könnte. Es hat nicht funktioniert. Aber dann war es Zeit für mich, nach Hause zu gehen, also habe ich alles rückgängig gemacht (obwohl es eine Testumgebung war).

Ich habe dann versucht

  • Nach der Authentifizierung die Identität eines Clients annehmen

Keine Freude. Die Dienste laufen als lokales System undder Link, von dem aus ich gearbeitet habesagt,

Das lokale Systemkonto ist ein leistungsstarkes Konto, das vollen Zugriff auf den Computer hat und als Computer im Netzwerk fungiert. Wenn ein Dienst das lokale Systemkonto verwendet, um sich bei einem Domänencontroller anzumelden, hat dieser Dienst Zugriff auf die gesamte Domäne. Einige Dienste sind standardmäßig für die Verwendung des lokalen Systemkontos konfiguriert. Dies sollte nicht geändert werden. Das lokale Systemkonto hat kein benutzerzugängliches Kennwort.

Tut mir leid, ich habe es versucht, aber ich glaube, du hast Pech gehabt. Du könntest auf jeden Fall versuchen, einem Konto die aufgeführten Berechtigungen zu erteilen.Hier:

  • SE_ASSIGNPRIMARYTOKEN_NAME (deaktiviert)
  • SE_AUDIT_NAME (aktiviert)
  • SE_BACKUP_NAME (deaktiviert)
  • SE_CHANGE_NOTIFY_NAME (aktiviert)
  • SE_CREATE_GLOBAL_NAME (aktiviert)
  • SE_CREATE_PAGEFILE_NAME (aktiviert)
  • SE_CREATE_PERMANENT_NAME (aktiviert)
  • SE_CREATE_TOKEN_NAME (deaktiviert)
  • SE_DEBUG_NAME (aktiviert)
  • SE_IMPERSONATE_NAME (aktiviert)
  • SE_INC_BASE_PRIORITY_NAME (aktiviert)
  • SE_INCREASE_QUOTA_NAME (deaktiviert)
  • SE_LOAD_DRIVER_NAME (deaktiviert)
  • SE_LOCK_MEMORY_NAME (aktiviert)
  • SE_MANAGE_VOLUME_NAME (deaktiviert)
  • SE_PROF_SINGLE_PROCESS_NAME (aktiviert)
  • SE_RESTORE_NAME (deaktiviert)
  • SE_SECURITY_NAME (deaktiviert)
  • SE_SHUTDOWN_NAME (deaktiviert)
  • SE_SYSTEM_ENVIRONMENT_NAME (deaktiviert)
  • SE_SYSTEMTIME_NAME (deaktiviert)
  • SE_TAKE_OWNERSHIP_NAME (deaktiviert)
  • SE_TCB_NAME (aktiviert)
  • SE_UNDOCK_NAME (deaktiviert)

Es ist aber möglicherweise einfacher, sich von Microsoft ein Blatt Papier geben zu lassen, auf dem Sie darauf hingewiesen werden, dies nicht zu tun.

Antwort2

Ich suche auch nach einer Möglichkeit, das zu tun. Ich vermute, dass der OP die gleiche Anforderung hat wie ich. Das wäre eine JITC-Anforderung des Verteidigungsministeriums. Hier ist sie:

Check Content: 
1. Go to Start, Administrative Tools, then Services.
2. Right click on service name World Wide Web Publishing Service, Select Properties, then select the Log On tab.
3. The username next to this account is the web service account ID.  If any other user than IUSR is listed, continue to step 4.  If the service account IUSR is used to run the service, this is not a finding.
4. Open a command prompt and enter Net User [service account ID], press Enter.
5. Verify the values for Password last set and Password expires to ensure the password has been changed in the past year, and will be required to change within the coming year.

Fix Text: 
Configure the service account ID, used to run the web-site, to have its password changed at least annually or use the service account IUSR.

Antwort3

So vieleEbenen der Unrichtigkeit hier.Sehr kurze Version:Das solltest du nicht tun!

Ich habe den starken Verdacht, dass Sie die Sicherheitsanforderung entweder falsch interpretieren oder dass sie ohne Rücksicht auf die Konzeption von IIS geschrieben wurde.

WAS muss als lokales System ausgeführt werden. Punkt. Es ist nicht remote zugänglich und hat daher eine sehr begrenzte Angriffsfläche, d. h. lokale Computeradministratoren.

Ein Grund dafür, dass es als lokales System ausgeführt wird, besteht darin, dass es applicationhost.config in unterschiedliche Teile für jeden Anwendungspool aufteilt, der seine eigene isolierte Kopie in Inetpub\Temp\AppPools erhält.

Ein weiterer Grund besteht darin, dass es Anwendungspool-Arbeitsprozesse (W3WPs) mit bestimmten, vom Webadministrator konfigurierten Identitäten startet. Wenn also ein Anwendungspool die Basisidentität „ApplicationPoolIdentity“ hat, handelt es sich dabei um ein einzigartiges Konto mit geringen Berechtigungen, das als Basisprozessidentität verwendet wird, wenn nicht die Identität einer anderen Person angenommen wird.

Ein weiteres Problem besteht darin, dass die Änderung der Identität von WAS nicht unterstützt wird und es für die Ausführung als lokales System konzipiert wurde. Es handelt sich um einen privilegierten Prozess.

Ziel der Empfehlung könnte der WWW-Dienst sein, bei dem es sich um InetInfo handelte und der in der Vergangenheit (also zuletzt im Windows 2000-Zeitraum) die Seitenverarbeitung unterstützte, dies heute jedoch nicht mehr tut.

Es ist jedoch nicht mehr an der Seitenverarbeitung beteiligt (IIS 6+), sondern nur an der Konfiguration von HTTP.SYS für die zukünftige Verwendung durch W3WPs.

Daher erledigen App-Pools (insbesondere zugehörige Arbeitsprozesse) die eigentliche Arbeit, und Sie können ihre grundlegende Identität über die Registerkarte „App-Pool“ und das spezifische Konto, das für anonyme Arbeit verwendet wird, über die Einstellungen „Authentifizierung“ -> „Anonym“ konfigurieren.

Ohne den eigentlichen Text zu sehen oder seine Quelle zu verstehen, scheint irgendwo etwas fehlerhaft zu sein. Oder als wäre es von jemandem geschrieben worden, der ein bisschen über standardmäßige Win32-Dienste weiß, aber nicht viel über IIS.

Um eine IIS-Site zu sichern und zu isolieren und scheinbar das Ziel der Anleitung (wenn nicht das, was dort geschrieben steht) zu erreichen, müssen Sie nur Folgendes tun:

  • Verwenden Sie die Anwendungspoolidentität als anonymes Konto (oder IUSR, wenn Ihre Richtlinie dies erfordert, dies verringert jedoch die Sicherheit (da es sich um ein allgemein freigegebenes Konto und nicht um ein eindeutiges Konto pro Site handelt).
  • Legen Sie die Berechtigungen für den Inhalt so fest, dass nur IIS AppPool\AppPoolName Leseberechtigung für die Inhaltsordner hat.

Und du bist fertig.

verwandte Informationen