La documentacion, todavia en Beta de este SDK la podeis encontrar en:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IIS_70_AdminSDK/html/e9ef2244-fd23-4d3c-ace3-5bb48696f69c.asp
La documentacion, todavia en Beta de este SDK la podeis encontrar en:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IIS_70_AdminSDK/html/e9ef2244-fd23-4d3c-ace3-5bb48696f69c.asp
Por defecto, los Application Pools en IIS 6.0 se ejecutan bajo el principal Network Service
El principal Network Service aparece a la par que el principal Local Service y se presentan por primera vez en Windows XP y Windows Server 2003. El motivo de estos dos nuevos principals tiene su origen en los planteamientos de seguridad por defecto y ejecución con mínimos privilegios. Anteriormente a estos dos principals, muchos servicios se ejecutaban bajo el principal SYSTEM (aka Local System) teniendo por tanto un nivel de privilegios altísimo, en muchos casos absolutamente innecesarios.
Los permisos que poseen estos dos nuevos principals son básicamente lo mismos que posee una cuenta de usuario que solamente pertenezca el grupo Users. A mayores, poseen el derecho de iniciar sesión como un servicio (Logon as a service), lo cuál resulta obvio por su propósito de uso.
La diferencia entre estos dos principals está en cómo se gestionan los intentos de acceso a recursos compartidos en otros equipos de la red:
Nota importante para los dos principals: si la máquina no pertenece a un dominio o pertenece a un dominio de Windows NT 4, ninguno de los dos principals tendrá credenciales de red.
A mayores de los privilegios comentados, a ambos principals se les asignan los privilegios SeAuditPrivilege y SeAssignPrimaryTokenPrivilege. Esto permite generar auditorias de seguridad e iniciar procesos bajo diferentes cuentas.
Cómo modificar la identidad bajo la que funciona un Application Pool
Para ejecutar un Application Pool bajo unas credenciales diferentes a Network Service será necesario crear una nueva cuenta. Si es necesario credenciales de red habrá que crear una cuenta de dominio. Si no son necesarias, es mejor usar una cuenta local.
Es muy, muy, muy, muy importante asignar una buena contraseña para esta cuenta. Microsoft no nos cobrará por su tamaño así que como no tendremos que introducir esa contraseña todas las mañana al llegar a la oficina no os cortéis. 20 caracteres o más… sin cortarse. Una frase… «Voy a escribir 2 posts sobre IIS.»
A esta cuenta es necesario asignarle los permisos «Log on as a batch job» y «Log on as a service«. También es necesario que la cuenta que hayamos creado sea miembro del grupo «IIS_WPG«.
Luego deberemos dar permisos de lectura sobre los ficheros que vayamos a publicar. Por ejemplo, en el caso en el cual los ficheros de nuestro sitio están en Inetpubwwwroot por defecto los miembros del grupo Users ya tendrán permisos de lectura.
En el caso de que vayamos a ejecutar aplicaciones ASP.NET, tendremos que dar permisos de escritura en la carpeta %Windir%Microsoft.NETFrameworkversionTemporary ASP.NET Files
Nota: No os peleéis intentando ejecutar Reporting Services bajo otra cuenta que no sea Network Services. No os funcionará…
Iván
Sergio Vázquez me ha remitido una URL en la que publica las respuestas a 10 de las preguntas más frecuentes en las news:
http://www.mutisdotnet.com/faqiis.asp
Podéis encontrar a Sergio respondiendo preguntas en las news y en http://www.mutisdotnet.com/
Bill Staples, Group Program Manager en el equipo de IIS 7 habla en Channel9. Durante la entrevista realiza varias demos que demuestran algunas de las novedades más importantes de IIS.
http://channel9.msdn.com/showpost.aspx?postid=109430
Brent Hill y Roger Grimes hablan acerca de la seguridad en IIS 7.0
El fallo permite modificar el valor de la variable «SERVER_NAME». Esto supone un problema para todas aquellas páginas ASP que en su código hagan uso de la misma. Incluso la página «500-100.asp» que incluye IIS 5.X y IIS 6 hace uso de esta variable. Eso permite revelar código de aquellas páginas que por algún motivo produzcan un error y lanzen esta página. Modificando la petición podemos lograr que la variable «SERVER_NAME» cambie su valor a «localhost» con lo cual la página «500-100.asp» revelará el código ASP causante del error.
Consejos
· Configurar siempre las cabeceras de host aunque sólo tengamos un sitio con un solo nombre en la misma dirección IP.
· Asociar el sitio a un interfaz de red específico.
· Modificar la página 500-100.asp localizada en %windir%/iishelp/common. Hacer el siguiente cambio, reemplazar la línea de código:
If (strServername = «localhost» Or strServerIP = strRemoteIP) And objASPError.File <> «?» Then
por
If (strServerIP = strRemoteIp) And objASPError.File <> «?» Then
Referencias
Remote IIS 5.x and IIS 6.0 Server Name Spoof
http://ingehenriksen.blogspot.com/2005/08/remote-iis-5x-and-iis-60-server-name.html
The custom error page 500-100.asp may return sensitive information in Internet Information Services 5.0 and in Internet Information Services 5.1 (KB-906910)
http://support.microsoft.com/default.aspx?scid=kb;en-us;906910
CAN-2005-2678 (under review)
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2678
Microsoft IIS «500-100.asp» Source Code Disclosure