Seguridad <security>
Información general
El grupo de secciones<security>
reside en la sección <system.webServer>
y contiene todos los elementos que configuran las opciones de seguridad en un servidor de Internet Information Services (IIS) 7. Estos incluyen la configuración de capa de sockets seguros (SSL, por sus siglas en inglés) de un sitio, aplicaciones que dependen de los archivos binarios de Common Gateway Interface (CGI) o la API de Internet Server (ISAPI), opciones de configuración de todos los módulos de autenticación instalados en el servidor y configuración de reglas de autorización. También incluye la seguridad IP, opciones de configuración de filtrado de solicitudes y una lista de restricciones de ISAPI y CGI en el servidor.
La configuración del grupo de secciones <security>
se puede combinar para obtener mayor seguridad. Por ejemplo:
- El elemento
<authentication>
define secciones de configuración para todos los tipos de autenticación de usuario que puede instalar y habilitar en el servidor IIS 7, mientras que el elemento<authorization>
configura las cuentas de usuario que pueden acceder al sitio o aplicación.<authorization>
se usa en combinación con<authentication>
para proteger el acceso al contenido del servidor. El elemento<access>
configura las opciones SSL del servidor web, sitio o aplicación. - El elemento
<isapiCgiRestriction>
especifica una lista de aplicaciones CGI e ISAPI que se pueden ejecutar en IIS 7. Este elemento le permite asegurarse de que los usuarios malintencionados no puedan copiar archivos binarios CGI e ISAPI no autorizados en el servidor web ni ejecutarlos. El elemento<applicationDependencies>
especifica una aplicación con dependencias de una o varias restricciones de extensión de CGI o ISAPI. Puede combinar el elemento<isapiCgiRestriction>
con<applicationDependencies>
para asegurarse de que las restricciones de extensión de CGI o ISAPI se establecen correctamente.
Nota:
Para mejorar la seguridad, tanto Windows Vista como Windows Server 2008 no instalan IIS 7 de forma predeterminada. Al instalar IIS 7, IIS se configura automáticamente para solo ofrecer contenido estático, entre este, archivos HTML o de imagen. Debe instalar manualmente cualquier otro servicio de rol y características necesarios para los sitios web y aplicaciones. Esta estrategia reduce considerablemente la superficie expuesta a ataques de IIS 7.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <security> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <security> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <defaultIpSecurity> se agregó como un elemento secundario. |
IIS 7.5 | El elemento <security> no se modificó en IIS 7.5. |
IIS 7.0 | El elemento <security> se introdujo en IIS 7. |
IIS 6,0 | El elemento <security> reemplaza las propiedades de metabase de seguridad de IIS 6.0 relacionadas con certificados, autenticación y autorización. |
Configuración
El elemento <security>
se incluye en la instalación predeterminada de IIS 7.
Procedimientos
Cómo deshabilitar la autenticación anónima
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, expanda el nombre del servidor, expanda Sitios y vaya al nivel del panel de jerarquía que desea configurar y, a continuación, haga clic en el sitio web o la aplicación web.
Desplácese hasta la sección Seguridad del panel Inicio y, a continuación, haga doble clic en Autenticación.
En el panel Autenticación, seleccione Autenticación anónima y, a continuación, haga clic en Desactivar en el panel Acciones.
Cómo cambiar las credenciales de autenticación anónima desde la cuenta de IUSR
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, expanda el nombre del servidor, expanda Sitiosy vaya al nivel del panel de jerarquía que desea configurar y, a continuación, haga clic en el sitio web o la aplicación web.
Desplácese hasta la sección Seguridad del panel Inicio y, a continuación, haga doble clic en Autenticación.
En el panel Autenticación, seleccione Autenticación anónima y, a continuación, haga clic en Editar... en el panel Acciones.
En el cuadro de diálogo Modificar credenciales de autenticación anónima, realice una de las siguientes acciones:
Seleccione Identidad del grupo de aplicaciones para usar el conjunto de identidades del grupo de aplicaciones y haga clic en Aceptar.
Haga clic en Establecer... y, después, en el cuadro de diálogo Establecer credenciales, escriba el nombre de usuario de la cuenta en el cuadro Nombre de usuario, escriba la contraseña de la cuenta en los cuadros Contraseña y Confirmar contraseña, Haga clic en Aceptar y, a continuación, haga clic en Aceptar de nuevo.
Nota:
Si usa este procedimiento, conceda solo los privilegios mínimos de la nueva cuenta en el equipo servidor IIS.
Cómo habilitar la autenticación básica y deshabilitar la autenticación anónima
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, expanda el nombre del servidor, expanda Sitios y haga clic en el sitio, aplicación o servicio web para el que desea habilitar la autenticación de Windows.
Desplácese hasta la sección Seguridad del panel Inicio y, a continuación, haga doble clic en Autenticación.
En el panel Autenticación, seleccione Autenticación básica, y, a continuación, en el panel Acciones, haga clic en Habilitar.
En el panel Autenticación, seleccione Autenticación anónima y, a continuación, haga clic en Desactivar en el panel Acciones.
Cómo requerir la capa de sockets seguros
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, vaya al sitio, la aplicación o el directorio para el que desea configurar los requisitos de SSL. SSL no se puede configurar en el nivel de servidor.
En el panel Inicio, haga doble clic en Configuración de SSL.
En el panel Configuración de SSL, haga clic en Requerir SSL.
En el panel Acciones, haga clic en Aplicar.
Cómo habilitar la autenticación de Windows para un sitio web, una aplicación web o un servicio web
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, expanda el nombre del servidor, expanda Sitios y, a continuación, el sitio, la aplicación o el servicio web para el que desea habilitar la autenticación de Windows.
Desplácese hasta la sección Seguridad del panel Inicio y, a continuación, haga doble clic en Autenticación.
En el panel Autenticación, seleccione Autenticación de Windows y, a continuación, haga clic en Habilitar en el panel Acciones.
Configuración
Al ajustar la configuración de seguridad, el XML de configuración debe incluir el grupo de secciones <security>
. Puede ajustar la configuración de seguridad en el nivel de servidor en el archivo ApplicationHost.config, o en el nivel de sitio, nivel de aplicación o directorio en el archivo Web.config adecuado.
Atributos
Ninguno.
Elementos secundarios
Elemento | Descripción |
---|---|
access |
Elemento opcional. Especifica los valores de configuración de la capa de sockets seguros (SSL) y si se deben usar certificados de cliente para la autenticación y seguridad de cifrado. |
applicationDependencies |
Elemento opcional. Especifica una aplicación con dependencias en una o más restricciones de extensión CGI o ISAPI. |
authentication |
Elemento opcional. Especifica la configuración relacionada con la autenticación. |
authorization |
Elemento opcional. Especifica la configuración relacionada con la autorización. |
dynamicIpSecurity |
Elemento opcional. Especifica restricciones de IP dinámicas que bloquean cualquier dirección IP que cumpla un conjunto de criterios. |
ipSecurity |
Elemento opcional. Especifica restricciones de acceso según la dirección IP 4 o el nombre de dominio DNS. |
isapiCgiRestriction |
Elemento opcional. Especifica la configuración que restringe qué programas CGI e ISAPI se pueden ejecutar en el servidor. |
requestFiltering |
Elemento opcional. Especifica los valores de configuración del filtrado de solicitudes. |
Ejemplo de configuración
El siguiente ejemplo configura las opciones de autenticación, SSL y filtrado de solicitudes de un sitio web con el nombre Contoso.
<location path="Contoso">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
<basicAuthentication enabled="false" />
<anonymousAuthentication enabled="false" />
</authentication>
<access sslFlags="Ssl, SslNegotiateCert, Ssl128" />
<requestFiltering>
<fileExtensions>
<add fileExtension=".inc" allowed="false" />
</fileExtensions>
<denyUrlSequences>
<add sequence="_vti_bin" />
<add sequence="_vti_cnf" />
<add sequence="_vti_pvt" />
</denyUrlSequences>
</requestFiltering>
</security>
</system.webServer>
</location>
Código de ejemplo
Los siguientes ejemplos deshabilitan la autenticación anónima de un sitio con el nombre Contoso y, a continuación, habilitan la autenticación básica y de Windows en el sitio.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"False" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/basicAuthentication /enabled:"True" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost
Nota:
Debe asegurarse de establecer el parámetrocommit en apphost
cuando use AppCmd.exe para configurar estos valores. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
anonymousAuthenticationSection["enabled"] = false;
ConfigurationSection basicAuthenticationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso");
basicAuthenticationSection["enabled"] = true;
ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
windowsAuthenticationSection["enabled"] = true;
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
anonymousAuthenticationSection("enabled") = False
Dim basicAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso")
basicAuthenticationSection("enabled") = True
Dim windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso")
windowsAuthenticationSection("enabled") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;
var basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
basicAuthenticationSection.Properties.Item("enabled").Value = true;
var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False
Set basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
basicAuthenticationSection.Properties.Item("enabled").Value = True
Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True
adminManager.CommitChanges()