Compartir a través de


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

  1. Presione la tecla del logotipo de Windows y, después, haga clic en Administrador del servidor.

  2. En el Administrador del servidor, haz clic en Administrar y, después, haz clic en Agregar roles y características.

  3. 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

  1. Abra el Panel de control de Windows.
  2. En el Panel de control de Windows, abra Programas y características.
  3. En Programas y características, haga clic en Activar o desactivar las características de Windows.
  4. En el cuadro de diálogo Características de Windows, expanda Internet Information Services y, a continuación, expanda Servidor FTP.
  5. 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

  1. 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).
  2. En el panel Conexiones, seleccione el servidor.

  3. En el panel Inicio, haga doble clic en la característica Restricciones de intentos de inicio de sesión en FTP.

    Image of Home pane displaying Enable F T P Log on Attempt Restrictions feature selected.

  4. 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.

  5. 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.

  6. 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"