Definindo configurações de firewall FTP no IIS 7
por Robert McMurray
Compatibilidade
Versão | Observações |
---|---|
IIS 7.5 | O serviço FTP 7.5 é fornecido como um recurso para o IIS 7.5 no Windows 7 e no Windows Server 2008 R2. |
IIS 7.0 | Os serviços FTP 7.0 e FTP 7.5 eram enviados fora de banda para o IIS 7.0, o que exigia o download e a instalação do serviço por meio da seguinte URL: https://www.iis.net/download/FTP. |
Introdução
A Microsoft criou um novo serviço FTP completamente reescrito para o Windows Server® 2008. Esse serviço FTP incorpora muitos recursos novos que permitem que os autores da Web publiquem conteúdo melhor do que antes e oferece aos administradores da Web mais opções de segurança e implantação.
Este documento descreve como definir as configurações de firewall para o novo servidor FTP.
Pré-requisitos
Os seguintes itens precisam estar instalados para concluir os procedimentos neste artigo:
O IIS 7 precisa estar instalado no Windows 2008 Server e o Gerenciador dos Serviços de Informações da Internet (IIS) precisa estar instalado.
O novo serviço FTP. Você pode baixar e instalar o serviço FTP do site https://www.iis.net/ usando um dos seguintes links:
- FTP 7.5 para IIS 7 (x64)
- FTP 7.5 para IIS 7 (x86)
Você precisa criar uma pasta raiz para a publicação FTP:
Crie uma pasta em
%SystemDrive%\inetpub\ftproot
Defina as permissões para permitir acesso anônimo:
Abra um prompt de comando.
Digite o seguinte comando:
ICACLS "%SystemDrive%\inetpub\ftproot" /Grant IUSR:R /T
Feche o prompt de comando.
Observações importantes:
As configurações listadas neste passo a passo especificam
%SystemDrive%\inetpub\ftproot
como o caminho para seu site FTP. Não é obrigatório usar esse caminho; no entanto, se você alterar o local do seu site, precisará alterar os caminhos relacionados ao site usados ao longo deste passo a passo.Após definir as configurações de firewall para o serviço FTP, você precisa configurar seu software ou hardware de firewall para permitir conexões por meio do firewall para o servidor FTP.
- Se você estiver usando o Firewall do Windows interno, consulte a seção (Opcional) Etapa 3: Definir configurações do Firewall do Windows deste passo a passo.
- Se estiver usando um firewall diferente, consulte a documentação fornecida com o software ou hardware do firewall.
Usar o Assistente de Site FTP para criar um site FTP com autenticação anônima
Nesta seção, você cria um site FTP que pode ser aberto para acesso somente leitura por usuários anônimos. Para fazer isso, execute as seguintes etapas:
Acesse o Gerenciador do IIS 7. No painel Conexões, clique no nó Sites na árvore.
Clique com o botão direito do mouse no nó Sites na árvore e selecione Adicionar site FTP ou clique em Adicionar site FTP no painel Ações.
Quando o assistente Adicionar site FTP for exibido, faça o seguinte:
Digite “Meu Novo Site FTP” na caixa Nome do site FTP e acesse a pasta
%SystemDrive%\inetpub\ftproot
que você criou na seção “Pré-requisitos”.Observação
Se você optar por digitar o caminho da pasta de conteúdo, será possível usar variáveis de ambiente nos caminhos.
Clique em Avançar.
Na próxima página do assistente:
Escolha um endereço IP para seu site FTP na lista suspensa Endereço IP ou aceite a seleção padrão "Todos os não atribuídos". Como você acessará o site FTP remotamente, certifique-se de não restringir o acesso ao servidor local e de inserir o endereço IP de loopback local de seu computador digitando "127.0.0.1" na caixa endereço IP.
Normalmente, você digitaria a porta TCP/IP do site FTP na caixa Porta. Para este passo a passo, aceite a porta padrão 21.
Para o passo a passo, você não vai usar um nome de host, portanto, deixe a caixa Host Virtual em branco.
Verifique se a lista suspensa Certificados está definida como "Não selecionado" e se a opção Permitir SSL está selecionada.
Clique em Avançar.
Na próxima página do assistente, faça o seguinte:
Selecione Anônimo para as configurações de Autenticação.
Para as configurações de Autorização, escolha "Usuários anônimos" na lista suspensa Permitir acesso a. Selecione Ler para a opção Permissões.
Clique em Concluir.
Acesse o Gerenciador do IIS 7. Clique no nó do site FTP que você criou. Os ícones de todos os recursos FTP são exibidos.
Resumo
Recapitule os itens que você concluiu nesta etapa:
- Você criou um site FTP chamado “Meu novo site FTP”, com a raiz de conteúdo do site em
%SystemDrive%\inetpub\ftproot
. - Você vinculou o site FTP ao endereço de loopback local do computador na porta 21, optando por não usar SSL (Secure Sockets Layer) para o site FTP.
- Você criou uma regra padrão para o site FTP para permitir a usuários anônimos acesso de "Leitura" aos arquivos.
Etapa 1: Configurar o intervalo de portas passivas para o serviço FTP
Nesta seção, você configura o intervalo de portas no nível do servidor para conexões passivas com o serviço FTP. Use as seguintes etapas:
Acesse o Gerenciador do IIS 7. No painel Conexões, clique no nó de nível de servidor na árvore.
Clique duas vezes no ícone Suporte do firewall FTP na lista de recursos.
Insira um intervalo de valores para o Intervalo de portas do canal de dados.
Após inserir o intervalo de portas para o serviço FTP, clique em Aplicar no painel Ações para salvar as configurações.
Observações
O intervalo válido para portas TCP/IP é de 1024 a 65535. (As portas de 1 a 1023 são reservadas para uso pelos serviços do sistema.)
Você pode inserir um intervalo de portas especial de "0-0" para configurar o servidor FTP para usar o intervalo de portas dinâmicas TCP/IP do Windows.
Para saber mais, confira os seguintes artigos da Base de Dados de Conhecimento Microsoft:
- 174904 – Informações sobre atribuições de porta TCP/IP (
https://support.microsoft.com/kb/174904/
) - 929851 – O intervalo de portas dinâmicas padrão para TCP/IP mudou no Windows Vista e no Windows Server 2008
- 174904 – Informações sobre atribuições de porta TCP/IP (
Esse intervalo de portas precisará ser adicionado às configurações permitidas do servidor de firewall.
Depois de fazer as alterações de configuração, reinicie o serviço FTP da Microsoft via
Start
>>Run
services.msc
e localize o serviço FTP.
Etapa 2: Configurar o endereço IPv4 externo para um site FTP específico
Nesta seção, você configura o endereço IPv4 externo para o site FTP específico criado anteriormente. Use as seguintes etapas:
Acesse o Gerenciador do IIS 7. No painel Conexões, clique no site FTP criado anteriormente na árvore e clique duas vezes no ícone Suporte para Firewall FTP na lista de recursos.
Insira o endereço IPv4 externo do servidor de firewall para a configuração Endereço IP Externo do Firewall.
Depois de inserir o endereço IPv4 externo do servidor de firewall, clique em Aplicar no painel Ações para salvar as configurações.
Resumo
Para recapitular os itens que você concluiu nesta etapa:
- Você configurou o intervalo de portas passivas para seu serviço FTP.
- Você configurou o endereço IPv4 externo para um site FTP específico.
(Opcional) Etapa 3: Definir configurações do Firewall do Windows
O Windows Server 2008 contém um serviço de firewall interno para ajudar a proteger seu servidor contra ameaças da rede. Se você optar por usar o Firewall do Windows interno, precisará definir suas configurações de modo que o tráfego FTP possa passar pelo firewall.
Há algumas configurações diferentes a serem consideradas ao usar o serviço FTP com o Firewall do Windows – esteja você usando conexões FTP ativas ou passivas e usando FTP não criptografado ou FTP sobre SSL (FTPS). Cada uma dessas configurações é descrita abaixo.
Observação
Siga as etapas nesta seção do passo a passo enquanto estiver conectado como administrador. Isso pode ser feito usando um dos seguintes métodos:
- Fazendo logon em seu servidor usando a conta real chamada "Administrador".
- Fazendo logon usando uma conta com privilégios de administrador e abrindo um prompt de comando clicando com o botão direito do mouse no item de menu Prompt de Comando, localizado no menu Acessórios para programas do Windows e selecionando "Executar como administrador".
Uma das etapas acima é necessária porque o componente de segurança do UAC (Controle de Conta de Usuário) nos sistemas operacionais Windows Vista e Windows Server 2008 impede o acesso de administrador às suas configurações de firewall. Para saber mais sobre o UAC, confira a seguinte documentação:
Observação
Embora o Firewall do Windows possa ser configurado usando o miniaplicativo Firewall do Windows no Painel de Controle do Windows, esse utilitário não tem os recursos necessários para habilitar todos os recursos para FTP. O utilitário Firewall do Windows com Segurança Avançada, localizado em Ferramentas Administrativas no Painel de Controle do Windows, tem todos os recursos necessários para habilitar os recursos de FTP, mas, para simplificar, este passo a passo descreverá como usar o utilitário de linha de comando Netsh.exe para configurar o Firewall do Windows.
Usando o Firewall do Windows com tráfego FTP não seguro
Para configurar o Firewall do Windows para permitir tráfego FTP não seguro, use as seguintes etapas:
Abra um prompt de comando: clique em Iniciar, Todos os Programas e, em seguida, Acessórios e Prompt de Comando.
Para abrir a porta 21 no firewall, digite a seguinte sintaxe e pressione enter:
netsh advfirewall firewall add rule name="FTP (non-SSL)" action=allow protocol=TCP dir=in localport=21
Para habilitar a filtragem FTP com estado que abrirá dinamicamente portas para conexões de dados, digite a seguinte sintaxe e pressione enter:
netsh advfirewall set global StatefulFtp enable
Observações importantes:
- Conexões FTP ativas não seriam necessariamente cobertas pelas regras acima; uma conexão de saída da porta 20 também precisaria ser habilitada no servidor. Além disso, o computador cliente FTP precisaria ter a própria configuração de exceções de firewall para tráfego de entrada.
- O FTP sobre SSL (FTPS) não será coberto por estas regras; a negociação SSL provavelmente falhará porque o filtro do Firewall do Windows para inspeção de FTP com estado não poderá analisar dados criptografados. (Alguns filtros de firewall de terceiros reconhecem o início da negociação SSL, por exemplo, comandos AUTH SSL ou AUTH TLS, e retornam um erro para impedir que ela seja iniciada.)
Usando o Firewall do Windows com tráfego FTP sobre SSL (FTPS) seguro
A inspeção de pacotes FTP com estado no Firewall do Windows provavelmente impedirá que o SSL funcione porque o filtro do Firewall do Windows para inspeção de FTP com estado não poderá analisar o tráfego criptografado que estabeleceria a conexão de dados. Devido a esse comportamento, você precisará definir as configurações do Firewall do Windows para FTP de forma diferente se pretender usar FTP sobre SSL (FTPS). A maneira mais fácil de configurar o Firewall do Windows para permitir o tráfego FTPS é incluir o serviço FTP na lista de exceções de entrada. O nome completo do serviço é "Microsoft FTP Service", e o nome curto é "ftpsvc". (O serviço FTP é hospedado em um host de processo de serviço genérico (Svchost.exe), portanto, não é possível colocá-lo na lista de exceções por meio de uma exceção de programa.)
Para configurar o Firewall do Windows para permitir tráfego FTP sobre SSL (FTPS) seguro, use as seguintes etapas:
Abra um prompt de comando: clique em Iniciar, Todos os Programas e, em seguida, Acessórios e Prompt de Comando.
Para configurar o firewall para permitir que o serviço FTP escute em todas as portas que ele abre, digite a seguinte sintaxe e pressione enter:
netsh advfirewall firewall add rule name="FTP for IIS7" service=ftpsvc action=allow protocol=TCP dir=in
Para desabilitar a filtragem FTP com estado para que o Firewall do Windows não bloqueie o tráfego FTP, digite a seguinte sintaxe e pressione enter:
netsh advfirewall set global StatefulFtp disable
Mais informações sobre como trabalhar com firewalls
Muitas vezes, é um desafio criar regras de firewall para que o servidor FTP funcione corretamente, e a causa raiz desse desafio está na arquitetura do protocolo FTP. Cada cliente FTP requer que duas conexões sejam mantidas entre cliente e servidor:
- Comandos FTP são transferidos através de uma conexão primária chamada Canal de Controle, que normalmente é a conhecida porta FTP 21.
- Transferências de dados FTP, como listagens de diretórios ou upload/download de arquivos, exigem uma conexão secundária chamada Canal de Dados.
Abrir a porta 21 em um firewall é uma tarefa fácil, mas isso significa que um cliente FTP só poderá enviar comandos, e não transferir dados. Isso significa que o cliente poderá usar o Canal de Controle para autenticar e criar ou excluir diretórios com êxito, mas não poderá ver listagens de diretórios nem fazer upload/download de arquivos. Isso ocorre porque as conexões de dados para o servidor FTP não têm permissão para passar pelo firewall até que o Canal de Dados tenha recebido permissão para passar pelo firewall.
Observação
Isso pode parecer confuso para um cliente FTP, pois o cliente parecerá ser capaz de fazer logon com êxito no servidor, mas a conexão poderá parecer atingir o tempo limite ou parar de responder ao tentar recuperar uma listagem de diretórios do servidor.
Os desafios de trabalhar com FTP e firewalls não terminam com o requisito de uma conexão de dados secundária. Para complicar ainda mais as coisas, existem duas maneiras diferentes de estabelecer a conexão de dados:
- Conexões de dados ativas: em uma conexão de dados ativa, um cliente FTP configura uma porta para escuta do canal de dados e o servidor inicia uma conexão com a porta, que geralmente é da porta 20 do servidor. As conexões de dados ativas costumavam ser a maneira padrão de se conectar ao servidor FTP; no entanto, elas deixaram de ser recomendadas porque não funcionam bem em cenários de Internet.
- Conexões de dados passivas: em uma conexão de dados passiva, um servidor FTP configura uma porta para escuta de canal de dados e o cliente inicia uma conexão com a porta. As conexões passivas funcionam muito melhor em cenários de Internet e são recomendadas pelo RFC 1579 (FTP amigável para firewall).
Observação
Alguns clientes FTP exigem ação explícita para habilitar conexões passivas, e alguns nem mesmo têm suporte para conexões passivas. (Um exemplo é o utilitário de linha de comando Ftp.exe fornecido com o Windows.) Para aumentar a confusão, alguns clientes tentam alternar de maneira inteligente entre os dois modos quando ocorrem erros de rede, mas infelizmente isso nem sempre funciona.
Alguns firewalls tentam remediar problemas com conexões de dados com filtros internos que verificam o tráfego FTP e permitem dinamicamente conexões de dados através do firewall. Esses filtros de firewall são capazes de detectar quais portas serão usadas para transferências de dados e abri-las temporariamente no firewall para que os clientes possam abrir conexões de dados. (Alguns firewalls podem habilitar a filtragem de tráfego FTP por padrão, mas nem sempre é o caso.) Esse tipo de filtragem é conhecido como um tipo de SPI (Inspeção de Pacotes com Estado) ou Inspeção com Estado, o que significa que o firewall é capaz de determinar de modo inteligente o tipo de tráfego e escolher dinamicamente como responder. Agora, muitos firewalls empregam esses recursos, incluindo o Firewall do Windows interno.