Compartilhar via


Segurança de IP do FTP <ipSecurity>

Visão geral

O elemento <ipSecurity> define uma lista de restrições de segurança baseadas em IP no FTP 7. Essas restrições podem ser baseadas no endereço IP versão 4, em um intervalo de endereços IP versão 4 ou em um nome de domínio DNS.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <ipSecurity> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <ipSecurity> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <ipSecurity> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <ipSecurity> do elemento <system.ftpServer/security> é fornecido como um recurso do IIS 7.5.
IIS 7.0 O elemento <ipSecurity> do elemento <system.ftpServer/security> foi introduzido no FTP 7.0, que foi um download separado para o IIS 7.0.
IIS 6,0 N/D

Observação

Os serviços FTP 7.0 e FTP 7.5 enviados fora de banda para o IIS 7.0, o que exigia o download e a instalação de módulos do seguinte URL:

https://www.iis.net/expand/FTP

Com o Windows 7 e o Windows Server 2008 R2, o serviço FTP 7.5 é fornecido como um recurso para o IIS 7.5, portanto, o download do serviço FTP não é mais necessário.

Instalação

Para dar suporte à publicação FTP para seu servidor Web, você deve instalar o serviço FTP. Para fazer isso, execute as etapas a seguir.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor.

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

  3. No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.

  4. Na página Funções do Servidor, expanda Servidor Web (IIS) e selecione Servidor FTP.

    Observação

    Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você precisará selecionar a Extensibilidade de FTP além do Serviço FTP.
    Screenshot that shows F T P Service and F T P Extensibility selected for Windows Server 2012. .

  5. Clique em Próximo e, na página Selecionar recursos, clique em Próximo novamente.

  6. Na página Confirmar seleções de instalação, clique em Instalar.

  7. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.

  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.

  3. Expanda Serviços de Informações da Internet e, em seguida, selecione Servidor FTP.

    Observação

    Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você também precisará selecionar a Extensibilidade de FTP.
    Screenshot that shows F T P Extensibility and F T P Service selected for Windows 8.

  4. Clique em OK.

  5. Clique em Fechar.

Windows Server 2008 R2

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.

  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).

  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.

  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, expanda Servidor FTP.

  5. Selecione Serviço FTP.

    Observação

    Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você também precisará selecionar a Extensibilidade de FTP.
    Screenshot that shows F T P Service and F T P Extensibility selected for Windows Server 2008.

  6. Clique em Avançar.

  7. Na página Confirmar Seleções de Instalação, clique em Instalar.

  8. Na página Resultados , clique em Fechar.

Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.

  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.

  3. Expanda Serviços de Informações da Internet e, em seguida, Servidor FTP.

  4. Selecione Serviço FTP.

    Observação

    Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você também precisará selecionar a Extensibilidade de FTP.
    Screenshot that shows F T P Extensibility and F T P Service selected for Windows 7.

  5. Clique em OK.

Windows Server 2008 ou Windows Vista

  1. Baixe o pacote de instalação da seguinte URL:

  2. Siga as instruções no seguinte passo a passo para instalar o serviço FTP:

Instruções

Como adicionar restrições de IP para permitir ou acessar um site FTP

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

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

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

      • 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 dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, expanda o nome do servidor, expanda Sites e, em seguida, site ou URL FTP para o qual você deseja adicionar restrições de IP.

  3. No painel Página Inicial, clique duas vezes no recurso endereço FTP IPv4 e restrições de domínio.
    Screenshot that shows the contoso dot com Home pane, with F T P I P v 4 Address and Domain Restrictions selected.

  4. No recurso de Restrições de Domínio e Endereço IPv4 do FTP, clique em Adicionar Entrada de Permissão... ou Adicionar Entrada de Negação... no painel Ações.
    Screenshot that shows the F T P I P v 4 Address and Domain Restrictions pane in the I I S Manager.

  5. Insira o endereço IP que você deseja permitir ou negar e clique em OK.
    Screenshot that shows the Add Deny Restriction Rule dialog box.


Como editar as configurações de recurso de restrições de IP para um site FTP

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

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

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

      • 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 dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, expanda o nome do servidor, expanda Sites e, em seguida, site ou URL FTP para o qual você deseja configurar restrições de IP.

  3. No painel Página Inicial, clique duas vezes no recurso endereço FTP IPv4 e restrições de domínio.
    Screenshot that shows the contoso dot com Home pane. F T P I P v 4 Address and Domain Restrictions is selected.

  4. No recurso de Restrições de Domínio e Endereço IPv4 do FTP, clique em Editar Configurações de Recurso... no painel Ações.
    Screenshot that shows the F T P I P v 4 Address and Domain Restrictions pane.

  5. Escolha o comportamento de acesso padrão para clientes não especificados, especifique se deseja habilitar restrições por nome de domínio e clique em OK.
    Screenshot that shows the Edit I P and Domain Restrictions Settings dialog box. Allow is selected.

Configuração

O elemento <ipSecurity> é configurado no nível do siteou URL.

As regras são processadas de cima para baixo, na ordem em que aparecem na lista. O atributo allowunlisted é processado por último. A prática recomendada para restrições de IPsec é listar regras de negação primeiro. Não é possível limpar o atributo allowunlisted se ele estiver definido como false.

Atributos

Atributo Descrição
allowUnlisted Atributo Boolean opcional.

Especifica se os endereços IP não listados devem ser permitidos. A definição do atributo allowUnlisted como true permite que um endereço IP não listado acesse o servidor. A definição do atributo allowUnlisted como false bloqueia o servidor, impedindo o acesso a todos os endereços IP, a menos que eles estejam listados. Se você definir esse atributo como false e não listar o endereço de loopback local (127.0.0.1) como um endereço IP permitido, você não poderá acessar seu servidor usando um navegador de um console local.

O valor padrão é true.
enableReverseDns Atributo Boolean opcional.

Especifica se as pesquisas inversas de DNS (Sistema de Nomes de Domínio) devem ser habilitadas ou desabilitadas para o servidor FTP. As pesquisas inversas envolvem a pesquisa do nome de domínio quando o endereço IP é conhecido.

Cuidado: a reversão das pesquisas de DNS usará recursos e tempo significativos.

O valor padrão é false.

Elementos filho

Elemento Descrição
add Elemento opcional.

Adiciona uma restrição de IP à coleção de restrições de endereço IP.
remove Elemento opcional.

Remove uma referência a uma restrição da coleção <ipSecurity>.
clear Elemento opcional.

Remove todas as referências a restrições da coleção <ipSecurity>.

Exemplo de configuração

O exemplo a seguir ilustra várias configurações relacionadas à segurança no elemento <system.ftpServer> para um site FTP. Mais especificamente, as configurações <location> neste exemplo demonstram como:

  • Especifique uma regra de autorização FTP para acesso de leitura e gravação para o grupo de administradores.
  • Especifique as opções de filtragem de solicitação FTP que negam arquivos *.exe, *.bat e *.cmd.
  • Especifique os limites de solicitação FTP para um comprimento máximo de conteúdo de 1000000 bytes e um comprimento máximo de URL de 1024 bytes.
  • Bloqueie o acesso FTP ao diretório virtual _vti_bin, que é usado com as Extensões de Servidor do FrontPage.
  • Especifique as opções de filtragem de IP FTP que permitem o acesso de 127.0.0.1 e negam o acesso do intervalo de endereços IP 169.254.0.0/255.255.0.0.
<location path="ftp.example.com">
  <system.ftpServer>
    <security>
      <authorization>
        <add accessType="Allow" roles="administrators" permissions="Read, Write" />
      </authorization>
      <requestFiltering>
        <fileExtensions allowUnlisted="true">
          <add fileExtension=".exe" allowed="false" />
          <add fileExtension=".bat" allowed="false" />
          <add fileExtension=".cmd" allowed="false" />
        </fileExtensions>
        <requestLimits maxAllowedContentLength="1000000" maxUrl="1024" />
        <hiddenSegments>
          <add segment="_vti_bin" />
        </hiddenSegments>
      </requestFiltering>
      <ipSecurity enableReverseDns="false" allowUnlisted="true">
        <add ipAddress="127.0.0.1" allowed="true" />
        <add ipAddress="169.254.0.0" subnetMask="255.255.0.0" allowed="false" />
      </ipSecurity>
    </security>
  </system.ftpServer>
</location>

Exemplo de código

Os exemplos a seguir configuram a segurança de IP FTP para permitir endereços IP não listados e, em seguida, especificam restrições de IP que permitem o acesso de 127.0.0.1 e negam o acesso do intervalo de endereços IP 169.254.0.0/255.255.0.0.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/ipSecurity /allowUnlisted:"True" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/ipSecurity /+"[ipAddress='127.0.0.1',allowed='True']" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/ipSecurity /+"[ipAddress='169.254.0.0',subnetMask='255.255.0.0']" /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 ipSecuritySection = config.GetSection("system.ftpServer/security/ipSecurity", "Default Web Site");
         ConfigurationElementCollection ipSecurityCollection = ipSecuritySection.GetCollection();

         ipSecuritySection["allowUnlisted"] = true;

         ConfigurationElement addElement = ipSecurityCollection.CreateElement("add");
         addElement["ipAddress"] = @"127.0.0.1";
         addElement["allowed"] = true;
         ipSecurityCollection.Add(addElement);

         ConfigurationElement addElement1 = ipSecurityCollection.CreateElement("add");
         addElement1["ipAddress"] = @"169.254.0.0";
         addElement1["subnetMask"] = @"255.255.0.0";
         ipSecurityCollection.Add(addElement1);

         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 ipSecuritySection As ConfigurationSection = config.GetSection("system.ftpServer/security/ipSecurity", "Default Web Site")
      Dim ipSecurityCollection As ConfigurationElementCollection = ipSecuritySection.GetCollection

      ipSecuritySection("allowUnlisted") = True

      Dim addElement As ConfigurationElement = ipSecurityCollection.CreateElement("add")
      addElement("ipAddress") = "127.0.0.1"
      addElement("allowed") = True
      ipSecurityCollection.Add(addElement)

      Dim addElement1 As ConfigurationElement = ipSecurityCollection.CreateElement("add")
      addElement1("ipAddress") = "169.254.0.0"
      addElement1("subnetMask") = "255.255.0.0"
      ipSecurityCollection.Add(addElement1)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var ipSecuritySection = adminManager.GetAdminSection("system.ftpServer/security/ipSecurity", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var ipSecurityCollection = ipSecuritySection.Collection;

ipSecuritySection.Properties.Item("allowUnlisted").Value = true;

var addElement = ipSecurityCollection.CreateNewElement("add");
addElement.Properties.Item("ipAddress").Value = "127.0.0.1";
addElement.Properties.Item("allowed").Value = true;
ipSecurityCollection.AddElement(addElement);

var addElement1 = ipSecurityCollection.CreateNewElement("add");
addElement1.Properties.Item("ipAddress").Value = "169.254.0.0";
addElement1.Properties.Item("subnetMask").Value = "255.255.0.0";
ipSecurityCollection.AddElement(addElement1);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set ipSecuritySection = adminManager.GetAdminSection("system.ftpServer/security/ipSecurity", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set ipSecurityCollection = ipSecuritySection.Collection

ipSecuritySection.Properties.Item("allowUnlisted").Value = True

Set addElement = ipSecurityCollection.CreateNewElement("add")
addElement.Properties.Item("ipAddress").Value = "127.0.0.1"
addElement.Properties.Item("allowed").Value = True
ipSecurityCollection.AddElement(addElement)

Set addElement1 = ipSecurityCollection.CreateNewElement("add")
addElement1.Properties.Item("ipAddress").Value = "169.254.0.0"
addElement1.Properties.Item("subnetMask").Value = "255.255.0.0"
ipSecurityCollection.AddElement(addElement1)

adminManager.CommitChanges()