Autenticación de FTP del sistema <authentication>
Información general
El elemento <authentication>
permite configurar las cuentas de usuario que pueden acceder a los sitios en un servidor. Use la autenticación en combinación con la autorización para proteger el acceso al contenido en el servidor. La autenticación confirma la identidad de un usuario, mientras que la autorización determina a qué recursos pueden acceder o no los usuarios.
IIS define un tipo de regla de autenticación, las reglas de denegación. Las reglas de denegación permiten definir las cuentas de usuario o los grupos de usuarios que no pueden acceder a los sitios de un servidor.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <authentication> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <authentication> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <authentication> se introdujo en IIS 8.0. |
IIS 7.5 | N/D |
IIS 7.0 | N/D |
IIS 6,0 | N/D |
Configuración
Para admitir la denegación de acceso a través de la autenticación en el servidor FTP, debe instalar el servicio de rol Servicio FTP.
Windows Server 2012
Presione la tecla del logotipo de Windows y, después, haga clic en Administrador del servidor.
En el Administrador del servidor, haz clic en Administrar y, después, haz clic en Agregar roles y características.
En el asistente para Agregar roles y características:
- En la página Antes de comenzar, haga clic en Siguiente.
- En la página Tipo de instalación, seleccione el tipo de instalación y, a continuación, haga clic en Siguiente.
- En la página Selección del servidor, seleccione el servidor adecuado y, a continuación, haga clic en Siguiente.
- En la página Roles de servidor, asegúrese de que Servidor web (IIS) está seleccionado y, después, expándalo.
- Expanda Servidor FTP, seleccione Servicio FTP y Extensibilidad de FTP y, a continuación, haga clic en Siguiente.
- En la página Características, haga clic en Siguiente.
- En la página Confirmar selecciones de instalación, haz clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows 8
- Abra el Panel de control de Windows.
- En el Panel de control de Windows, abra Programas y características.
- En Programas y características, haga clic en Activar o desactivar las características de Windows.
- En el cuadro de diálogo Características de Windows, expanda Internet Information Services y, a continuación, expanda Servidor FTP.
- En Servidor FTP, seleccione Servicio FTP y Extensibilidad de FTP y, a continuación, haga clic en Aceptar.
Procedimientos
Denegación del acceso al servidor FTP en función de la tasa de errores de inicio de sesión
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o versiones posteriores:
- 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 versiones posteriores:
- 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).
En el panel Conexiones, seleccione el servidor.
En el panel Inicio, haga doble clic en la característica Restricciones de intentos de inicio de sesión en FTP.
En el cuadro de diálogo Restricciones de intentos de inicio de sesión en FTP, haga clic en Habilitar para habilitar las restricciones y, a continuación, escriba el número máximo de errores y el período de tiempo en el que esos errores pedirán acceso al servicio FTP para que se deniegue.
Haga clic en Escribir en el registro solo para registrar que se ha cumplido la condición, pero no para bloquear los intentos de inicio de sesión.
Haga clic en Aplicar en el panel Acciones.
Configuración
El elemento <authentication>
se configura en el nivel de servidor.
Atributos
Ninguno.
Elementos secundarios
Elemento | Descripción |
---|---|
denyByFailure |
Elemento opcional. Configura el servicio FTP deniegue el acceso en función de la tasa de errores. |
Ejemplo de configuración
En el ejemplo siguiente se configura un elemento <denyByFailure>
.
<system.ftpServer>
<security>
<authentication>
<denyByFailure enabled="true" maxFailure="5" entryExpiration="00:00:45" loggingOnlyMode="false" />
</authentication>
</security>
</system.ftpServer>
Código de ejemplo
Los ejemplos de código siguientes configuran la denegación de acceso al servidor FTP en función de la tasa de errores de inicio de sesión.
AppCmd.exe
appcmd.exe set config -section:system.ftpServer/security/authentication /denyByFailure.enabled:"True" /denyByFailure.maxFailure:"10" /denyByFailure.entryExpiration:"00:00:35" /denyByFailure.loggingOnlyMode:"False" /commit:apphost
Nota:
Debe asegurarse de establecer el parámetro commit 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 authenticationSection = config.GetSection("system.ftpServer/security/authentication");
ConfigurationElement denyByFailureElement = authenticationSection.GetChildElement("denyByFailure");
denyByFailureElement["enabled"] = true;
denyByFailureElement["maxFailure"] = 10;
denyByFailureElement["entryExpiration"] = TimeSpan.Parse("00:00:35");
denyByFailureElement["loggingOnlyMode"] = false;
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 authenticationSection As ConfigurationSection = config.GetSection ("system.ftpServer/security/authentication")
Dim denyByFailureElement As ConfigurationElement = authenticationSection.GetChildElement("denyByFailure")
denyByFailureElement("enabled") = true
denyByFailureElement("maxFailure") = 10
denyByFailureElement("entryExpiration") = TimeSpan.Parse("00:00:35")
denyByFailureElement("loggingOnlyMode") = false
serverManager.CommitChanges
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var authenticationSection = adminManager.GetAdminSection("system.ftpServer/security/authentication", "MACHINE/WEBROOT/APPHOST");
var denyByFailureElement = authenticationSection.ChildElements.Item("denyByFailure");
denyByFailureElement.Properties.Item("enabled").Value = true;
denyByFailureElement.Properties.Item("maxFailure").Value = 10;
denyByFailureElement.Properties.Item("entryExpiration").Value = "00:00:35";
denyByFailureElement.Properties.Item("loggingOnlyMode").Value = false;
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set authenticationSection = adminManager.GetAdminSection("system.ftpServer/security/authentication", "MACHINE/WEBROOT/APPHOST")
Set denyByFailureElement = authenticationSection.ChildElements.Item("denyByFailure")
denyByFailureElement.Properties.Item("enabled").Value = true
denyByFailureElement.Properties.Item("maxFailure").Value = 10
denyByFailureElement.Properties.Item("entryExpiration").Value = "00:00:35"
denyByFailureElement.Properties.Item("loggingOnlyMode").Value = false
adminManager.CommitChanges()
PowerShell
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.ftpServer/security/authentication/denyByFailure" -name "enabled" -value "True"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.ftpServer/security/authentication/denyByFailure" -name "maxFailure" -value 10
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.ftpServer/security/authentication/denyByFailure" -name "entryExpiration" -value "00:00:35"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.ftpServer/security/authentication/denyByFailure" -name "loggingOnlyMode" -value "False"