Compartilhar via


Autenticação FTP do Sistema <authentication>

Visão geral

O elemento <authentication> permite que você configure as contas de usuário que podem acessar os sites em um servidor. Usar a autenticação em combinação com a autorização para proteger o acesso ao conteúdo no servidor. A autenticação confirma a identidade de um usuário, enquanto a autorização determina quais recursos os usuários podem ou não acessar.

O IIS define um tipo de regra de autenticação, Regras de negação. As regras de negação permitem definir as contas de usuário ou grupos de usuários que não podem acessar os sites em um servidor.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <authentication> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <authentication> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <authentication> foi introduzido no IIS 8.0.
IIS 7.5 N/D
IIS 7.0 N/D
IIS 6,0 N/D

Instalação

Para dar suporte à negação de acesso por meio da autenticação no seu servidor FTP, você deve instalar o serviço de função do Serviço FTP.

Windows Server 2012

  1. Pressione a tecla do logotipo do Windows e clique em Gerenciador do Servidor.

  2. No Gerenciador do Servidor, clique em Gerenciar e depois em Adicionar Funções e Recursos.

  3. No assistente Adicionar Funções e Recursos:

    • Na página Antes de Começar, clique em Avançar.
    • Na página Tipo de Instalação, selecione o tipo de instalação e clique em Avançar.
    • Na página Seleção do Servidor, selecione o servidor apropriado e clique em Avançar.
    • Na página Funções do Servidor, verifique se o Servidor Web (IIS) está selecionado e expanda-o.
    • Expanda o Servidor FTP, selecione Serviço FTP e Extensibilidade FTP e clique em Avançar.
    • Na página Recursos, clique em Next.
    • Na página Confirmar Seleções de Instalação, clique em Instalar.
    • Na página Resultados , clique em Fechar.

Windows 8

  1. Abra o Painel de Controle do Windows.
  2. No Painel de Controle do Windows, abra Programas e Recursos.
  3. Em Programas e recursos, clique em Ativar ou desativar recursos do Windows.
  4. Na caixa de diálogo Recursos do Windows, expanda Serviços de Informações da Internet e Servidor FTP.
  5. Em Servidor FTP, selecione Serviço FTP e Extensibilidade FTP e, em seguida, clique em OK.

Instruções

Como negar acesso ao servidor FTP com base na taxa de falha de logon

  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet):

    • Se você estiver usando o Windows Server 2012 ou posterior:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador do IIS (Serviços de Informações da Internet).
    • Se você estiver usando o Windows 8 ou versões posteriores:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
  2. No painel Conexões, selecione o servidor.

  3. No painel Página Inicial, clique duas vezes no recurso Restrições de Tentativa de Logon FTP.

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

  4. Na caixa de diálogo Restrições de Tentativa de Logon FTP, clique em Habilitar para habilitar as restrições e, em seguida, insira o número máximo de falhas e o período em que essas falhas solicitarão que o acesso ao serviço FTP seja negado.

  5. Clique em Gravar somente no log para registrar que a condição foi atendida, mas para não bloquear as tentativas de logon.

  6. Clique em Aplicar no painel Ações.

Configuração

O elemento <authentication> é configurado no nível do servidor.

Atributos

Nenhum.

Elementos filho

Elemento Descrição
denyByFailure Elemento opcional.

Configura o serviço FTP para negar o acesso com base na taxa de falha.

Exemplo de configuração

O exemplo a seguir configura um elemento<denyByFailure>.

<system.ftpServer>
   <security>
      <authentication>
         <denyByFailure enabled="true" maxFailure="5" entryExpiration="00:00:45" loggingOnlyMode="false" />
      </authentication>
   </security>
</system.ftpServer>

Exemplo de código

Os exemplos de código a seguir configuram o acesso de negação ao servidor FTP com base na taxa de falha de logon.

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

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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"