Was sind die IUSR- und IWAM-Konten in IIS?

23

Ich suche nach einer guten Erklärung der von IIS verwendeten IUSR- und IWAM-Konten, um meine Hosting-Umgebung besser konfigurieren zu können:

  • Warum sind die hier?
  • Was ist der Unterschied zwischen ihnen?
  • Stehen die Namen für etwas Sinnvolles?
  • Gibt es Änderungen an bewährten Methoden, die ich vornehmen sollte?
  • IIS bietet mir auch Optionen zum Ausführen von Anwendungspools als Netzwerkdienst, lokaler Dienst oder lokales System. Sollte ich?
  • Mein Webserver ist Teil einer Domain. Wie ändert sich das?

Es scheint üblich zu sein, eigene Versionen dieser Konten zu erstellen, wenn mehrere Sites auf einem Server bereitgestellt werden, was einige zusätzliche Fragen aufwirft:

  • Wann kann ich meine eigenen IUSR- und IWAM-Konten erstellen?
  • Wie erstelle ich diese zusätzlichen Konten, damit sie die richtigen Berechtigungen haben?

Ich verwende sowohl IIS 6 als auch IIS 7 mit den meisten Standardkonfigurationen.

Allgemeiner Fehler
quelle

Antworten:

33

IUSR und IWAM stammen aus den Anfängen von IIS, als Sie es separat installiert haben (nicht als Betriebssystemkomponente). Wenn eine Website eine anonyme Authentifizierung zulässt, wird das IUSR-Konto standardmäßig in Bezug auf die Berechtigungen auf dem Betriebssystem verwendet. Dies kann von der Standardeinstellung geändert werden. Es gibt einige Sicherheitsempfehlungen, um das Konto mindestens umzubenennen, daher handelt es sich nicht um ein "bekanntes" Konto, so wie es eine Empfehlung gibt, das Administratorkonto auf einem Server umzubenennen. Weitere Informationen zu IUSR und Authentifizierung finden Sie bei MSDN .

IWAM wurde für nicht prozessbasierte Anwendungen entwickelt und wird nur in IIS 6.0 verwendet, wenn Sie sich im IIS 5.0-Isolationsmodus befinden. Sie haben es normalerweise mit COM / DCOM-Objekten gesehen.

In Bezug auf Anwendungspoolidentitäten wird standardmäßig der Netzwerkdienst ausgeführt. Sie sollten nicht als lokales System ausgeführt werden, da dieses Konto über höhere Rechte als das eines Administrators verfügt. Damit bleiben Sie im Grunde genommen beim Netzwerkdienst, beim lokalen Dienst oder einem anderen lokalen / Domänenkonto als diesen beiden.

Was zu tun ist, hängt davon ab. Ein Vorteil, wenn Sie es als Netzwerkdienst belassen, ist, dass es sich um ein Konto mit eingeschränkten Berechtigungen auf dem Server handelt. Wenn es jedoch über das Netzwerk auf Ressourcen zugreift, wird es als Domäne \ Computername $ angezeigt. Dies bedeutet, dass Sie Berechtigungen zuweisen können, mit denen das Netzwerkdienstkonto auf Ressourcen wie SQL Server zugreifen kann, die in einem anderen Feld ausgeführt werden. Da es als Computerkonto angezeigt wird und Sie die Kerberos-Authentifizierung aktivieren, ist der SPN bereits vorhanden, wenn Sie über den Servernamen auf die Website zugreifen.

Ein Fall, in dem Sie in Betracht ziehen würden, den Anwendungspool in ein bestimmtes Windows-Domänenkonto zu ändern, wenn ein bestimmtes Konto auf Netzwerkressourcen zugreifen soll, z. B. ein Dienstkonto, das für eine webbasierte Anwendung auf SQL Server zugreift. Es gibt andere Optionen in ASP.NET, um dies zu tun, ohne die Anwendungspoolidentität zu ändern, sodass dies nicht mehr unbedingt erforderlich ist. Ein weiterer Grund für die Verwendung eines Domänenbenutzerkontos ist die Kerberos-Authentifizierung, bei der mehrere Webserver eine Webanwendung bedienen. Ein gutes Beispiel ist, wenn Sie zwei oder mehr Webserver hatten, die SQL Server Reporting Services bereitstellen. Das Frontend würde wahrscheinlich auf eine generische URL wie reports.mydomain.com oder reporting.mydomain.com verweisen. In diesem Fall kann der SPN nur auf ein Konto innerhalb von AD angewendet werden. Wenn die App-Pools unter "Netzwerkdienst" auf den einzelnen Servern ausgeführt werden, funktioniert dies nicht, da sie beim Verlassen der Server als "Domäne \ Computername $" angezeigt werden. Dies bedeutet, dass Sie über so viele Konten verfügen, wie Server die Server bereitstellen App. Die Lösung besteht darin, ein Domänenkonto zu erstellen, die App-Pool-Identität auf allen Servern auf dasselbe Domänenbenutzerkonto festzulegen und den einen SPN zu erstellen, wodurch die Kerberos-Authentifizierung ermöglicht wird. Bei einer App wie SSRS, bei der Sie möglicherweise die Benutzeranmeldeinformationen an den Back-End-Datenbankserver weitergeben möchten, ist die Kerberos-Authentifizierung ein Muss, da Sie dann die Kerberos-Delegierung konfigurieren müssen. d Sie haben so viele Konten wie Server, auf denen die App ausgeführt wird. Die Lösung besteht darin, ein Domänenkonto zu erstellen, die App-Pool-Identität auf allen Servern auf dasselbe Domänenbenutzerkonto festzulegen und den einen SPN zu erstellen, wodurch die Kerberos-Authentifizierung ermöglicht wird. Bei einer App wie SSRS, bei der Sie möglicherweise die Benutzeranmeldeinformationen an den Back-End-Datenbankserver weitergeben möchten, ist die Kerberos-Authentifizierung ein Muss, da Sie dann die Kerberos-Delegierung konfigurieren müssen. d Sie haben so viele Konten wie Server, auf denen die App ausgeführt wird. Die Lösung besteht darin, ein Domänenkonto zu erstellen, die App-Pool-Identität auf allen Servern auf dasselbe Domänenbenutzerkonto festzulegen und den einen SPN zu erstellen, wodurch die Kerberos-Authentifizierung ermöglicht wird. Bei einer App wie SSRS, bei der Sie möglicherweise die Benutzeranmeldeinformationen an den Back-End-Datenbankserver weitergeben möchten, ist die Kerberos-Authentifizierung ein Muss, da Sie dann die Kerberos-Delegierung konfigurieren müssen.

Ich weiß, dass das eine Menge ist, aber die kurze Antwort ist, abgesehen vom lokalen System, es kommt darauf an.

K. Brian Kelley
quelle
Erwähnenswert ist, dass Empfehlungen zum Umbenennen dieser Konten nicht von Microsoft stammen. Systemkonten verfügen über statische und gut dokumentierte SIDs und können unabhängig vom Anzeigenamen problemlos gehackt werden.
Thomas
9

IUSR = Internetbenutzer, dh jeder anonyme, nicht authentifizierte Besucher Ihrer Website (dh so ziemlich jeder)

IWAM = Internet Web Application Manager, dh alle Ihre ASP- und .NET-Anwendungen werden unter diesem Konto ausgeführt

Im Allgemeinen sollten IUSR und IWAM NUR Zugriff auf genau das haben, was sie benötigen. Sie sollten niemals Zugriff auf etwas anderes erhalten. Wenn diese Konten kompromittiert werden, können sie auf nichts Kritisches zugreifen.

Das ist alles, was ich aus Ihrer Liste von Fragen heraus helfen kann. Andere mit mehr Erfahrung in der IIS-Administration können Ihnen möglicherweise weiterhelfen!

Mark Henderson
quelle