«

»

jun 19

Como configurar o FTP no IIS 7 Windows Server 2008

Ao contrário das versões anteriores do IIS a configuração do FTP no IIS7 disponível no Windows Server 2008 tem alguns passos adicionais que se não forem executados fazem com que o FTP não funcione corretamente, abaixo um passo-a-passo de como fazer a configuração do FTP.

1- Configurar o FTP Firewall Support no IIS

Abra o IIS (Start / Administrative Tools / Internet Information Services (IIS)) e clique em “FTP Firewall Support”

Em “Data Channel Port Range” configurar “0-0″
Em “External IP Address of Firewall” configurar o IP externo do servidor

2- Configurar o Firewall do Windows

É necessário configurar no Firewall do Windows do Servidor restrições para as seguintes as portas: TCP 20, 21 e 49152-65535.

Faça isso no “Windows Firewall with Advanced Security”

3- Liberar porta no Firewall no serviço Cloud

Caso você esteja utilizando um serviço Cloud como o Amazon EC2, pode ser necessário liberar o acesso para as portas do FTP no console do serviço.

No Amazon EC2, abra o Console do serviço, e verifique na sua instancia qual Security Group está sendo utilizado, no meu caso, estou utilizando o security group “quick-start-1″:

Selecione o Security Group que está sendo utilizado e adicione restrição para as seguintes portas:

  • TCP 20
  • TCP 21
  • TCP 49152-65535

Uma opção é liberar todo o tráfego TCP para o seu IP:

NOTA: Mantenha a segurança do seu servidor liberando as portas somente para o IP que você utiliza para conectar (IP do seu computador). Se você usa IP dinâmico, cada vez que o seu IP sofrer alteração, atualize-o no Security Group. É muito comum pessoas mal intencionadas utilizarem programas para varrerem lista de IP’s procurando servidores com portas FTP abertas e depois tentarem quebrar a senha utilizando “força bruta”, ou seja, utilizando um programa que testa diferentes combinações de senhas possíveis até encontrar a certa.

4- Configurar o FTP

No IIS (Start / Administrative Tools / Internet Information Services (IIS)) clique em “Sites” com o botão direito e escolha a opção “Add FTP Site”.

Informe a pasta que você deseja que seja visível no FTP:

Em IP Address mantenha a opção “All Unassigned” selecionada para que esse FTP receba requisição de qualquer IP ou domínio e confirme.

Atenção! Nesse esquema de configuração será configurado somente um FTP para esse servidor. Se você quiser configurar nesse servidor dois domínios para o FTP como: ftp.dominio1.com.br e ftp.dominio2.com.br você precisará fazer configurações adicionais, em testes que realizei no IIS do Windows 2008 esse tipo de configuração não funcionou.

Na próxima tela, desmarque a opção “Anonymous”, marque a opção “Basic” e mantenha a opção “Not Selected” selecionada em Authorization.

5- Configurar o usuário do FTP

Abra o Computer Management (Start / Administrative Tools / Computer Management) clique em “Local Users and Groups” e depois em “Users”. Clique com o botão direito do mouse na área que exibe os usuários e escolha a opção “New User”.

Informe o nome de usuário e senha que será utilizado para acessar o FTP e confirme a criação.

6- Permissão de acesso na pasta

Utilizando o Windows Explorer, navegue até a pasta que você configurou no FTP, clique com o botão direito do mouse sobre ela e escolha a opção “Properties”

Adicione permissão para o usuário nessa pasta:

Marque as permissões de leitura e escrita nessa pasta:

7- Permissão de acesso para o usuário no FTP

No IIS (Start / Administrative Tools / Internet Information Services (IIS)), selecione o FTP criado e abra a opção “FTP Authorization Rules”.

Utilize a opção “Add Allow Rule” para adicionar o usuário. Selecione a opção “Specified users” e informe o nome do usuário criado. Em Permissions marque as opções “Read” e “Write” e confirme.

8- Configuração do domínio

A configuração do FTP está finalizada. Você pode conectar no FTP utilizando o IP do servidor e o usuário e senha criados, ou então, configurar um subdomínio para o seu ftp, por exemplo, ftp.seudominio.com.br. Para isso, acesse as configurações de DNS do seu domínio (se for um dominio do Brasil como .com.br, você pode fazer essa configuração diretamente no registro.br) e configure uma entrada CNAME com o nome “ftp.seudominio.com.br” e apontando para “seudominio.com.br”. Assim, toda requisição para o subdomínio “ftp.seudominio.com.br” será redirecionada para o mesmo IP de servidor configurado para “seudominio.com.br”. Esse servidor possuindo as configurações de FTP que estamos executando receberá as conexões FTP.

9- Teste de acesso

Abra o seu cliente de FTP, se não tiver um, utilize o FileZilla (http://filezilla-project.org/download.php), informe o IP ou nome do domínio, usuário e senha e conecte no servidor.

10- Resolução de problemas de conexão

A conexão excedeu limite de tempo

Estado:	A resolver o endereço de files.marketup.com
Estado:	Conectando 100.245.251.010:21...
Erro:	A conexão excedeu limite de tempo
Erro:	Não foi possível conectar ao servidor

Tente o seguinte: Verifique se o acesso ao servidor está liberado (Firewall do Windows, Permissões de acesso da hospedagem ou serviço Cloud). Acessando o FTP diretamente pelo próprio servidor funciona? Você pode tentar fazer um teste de acesso na porta 21 usando o Telnet:

telnet 100.245.251.010 21

Veja esse post: Como utilizar o telnet

Tente desabilitar o Firewall do Windows
Para liberar todo o tráfego TCP no Firewall do Windows abra um prompt de comando e execute os seguintes comandos:

netsh advfirewall firewall add rule name="Acesso Total TCP" service=ftpsvc action=allow protocol=TCP dir=in

netsh advfirewall firewall add rule name="Acesso Total TCP" service=ftpsvc action=allow protocol=TCP dir=in

netsh advfirewall set global StatefulFtp disable

E o mais importante: TENTE REINICIAR O SERVIDOR !

530 User cannot log in, home directory inaccessible

Estado:	A resolver o endereço de ftp.educoutinho.com.br
Estado:	Conectando 100.20.167.010:21...
Estado:	Conexão estabelecida, esperando mensagem de boas-vindas...
Resposta:	220 Microsoft FTP Service
Comando:	USER ftp_user
Resposta:	331 Password required for ftp_user.
Comando:	PASS ********
Resposta:	530 User cannot log in, home directory inaccessible.
Erro:	Erro crítico
Erro:	Não foi possível conectar ao servidor

Tente o seguinte: Verifique se você adicionou a permissão de acesso na pasta (via Windows Explorer) e se configurou o acesso para esse usuário no FTP utilizando a opção “FTP Authorization Rules”.

Falha na obtenção da lista de pastas

Estado:	A resolver o endereço de ftp.educoutinho.com.br
Estado:	Conectando 100.20.167.010:21...
Estado:	Conexão estabelecida, esperando mensagem de boas-vindas...
Resposta:	220 Microsoft FTP Service
Comando:	USER ftp_user
Resposta:	331 Password required for ftp_user.
Comando:	PASS ********
Resposta:	230 User logged in.
Comando:	OPTS UTF8 ON
Resposta:	200 OPTS UTF8 command successful - UTF8 encoding now ON.
Estado:	Conectado
Estado:	Obtendo lista de pastas...
Comando:	PWD
Resposta:	257 "/" is current directory.
Comando:	TYPE I
Resposta:	200 Type set to I.
Comando:	PASV
Erro:	Desconectado do servidor: ECONNABORTED - Connection aborted
Erro:	Falha na obtenção da lista de pastas

Tente o seguinte: Verifique se você configurou corretamente o “FTP Firewall Support” com o IP externo.

Outro erro de conexão
Tente o seguinte: Se você tiver algum erro de conexão, o Firewall do seu windows pode estar bloqueando o acesso.
Abra o Firewall do Windows: Control Panel / System and Security / Windows Firewall.
Vá na opção: “Turn Windows Firewall on or off” e marque Off para todas as opções do Firewall e faça um novo teste de conexão.


Agradecimentos ao meu amigo Fabio Henrique que criou a lista de passos de configuração do FTP que resultou nesse post

Sobre o autor

educoutinho

31 comentários

2 menções

Pular para o formulário de comentário

  1. Guilherme

    perfeito … deu certo :D

  2. Carolina

    Bom dia, muito obrigado pelo post….

    Eu segui passo a passo mas não consegui fazer o ftp funcionar ainda. já verifiquei o firewall do windows e esta tudo desativado. Já verifiquei tbm se o ip externo está correto.

    pelo FileZila aparece a seguinte descrição

    Estado: Conectando 187.95.18.138:21…
    Estado: Conexão estabelecida, esperando mensagem de boas-vindas…
    Resposta: 220 Microsoft FTP Service
    Comando: USER zenller_user
    Resposta: 331 Password required for zenller_user.
    Comando: PASS ***
    Resposta: 230 User logged in.
    Comando: OPTS UTF8 ON
    Resposta: 200 OPTS UTF8 command successful – UTF8 encoding now ON.
    Estado: Conectado
    Estado: Obtendo lista de pastas…
    Comando: PWD
    Resposta: 257 “/” is current directory.
    Comando: TYPE I
    Resposta: 200 Type set to I.
    Comando: PASV
    Resposta: 227 Entering Passive Mode (187,95,18,138,192,35).
    Comando: LIST
    Resposta: 150 Opening BINARY mode data connection.
    Erro: A conexão excedeu limite de tempo
    Erro: Falha na obtenção da lista de pastas

    E quando eu vou no navegaro e digito o ip
    ele me da a opção de digitar usario e senha, mais não aceita o que eu criei… observei que ele pedia para conectar no meu roteador

    “Um nome de usuário e senha estão sendo solicitados por http://187.95.18.138.
    O site diz: “TP-LINK Wireless Lite N Router WR740N”

    Digitei o usuario e a senha do meu roteador e ele abre a pagina de configuração do roteador.

    Você pode me ajudar? eu não tenho idéia do que fazer!

    Muito Obrigado

    Ana Carolina

    1. educoutinho

      Quando você navega pelo IP, quem está respondendo é o seu roteador e não o IIS, por isso está pedindo usuário e senha, então não tem nenhuma relação com o erro.
      Ao conectar no FTP ocorreu erro de permissão: “Erro: Falha na obtenção da lista de pastas”. Verifique se você adicionou as permissões corretamente para o usuário do FTP (no seu caso: zenller_user) na pasta que você configurou para ser do FTP.

  3. Reynaldo Carlson

    8°) Agora, na aba Conditions, remova o grupo padrão, e em seguida clique em Add e selecione a opção Windows Groups.

  4. Marcelo Ribeiro

    Boa Tarde
    educoutinho,

    Por gentileza poderia esclarecer uma dúvida criei pastas dentro do FTP porém quando é feito o acesso dentro da rede os usuário conseguem criar editar e excluir, agora fazendo o acesso por fora conseguem apenas visualizar. As demais permissões não são aplicadas.
    Exemplos criei 4 pastas com respectivos usuários ficando assim:

    FTP2 = usuário empresa.ftp2
    FTP3= usuário empresa.ftp3

    Sendo que cada usuário consegue acessar somente a respectiva pasta, até ai esta OK.
    O problema é apenas o citado acima dentro da rede conseguem fazer todos os atributos e por fora apenas leitura.

    Estrutura do FTP:

    C:\FTP\ftp2
    C:\FTP\ftp3
    C:\FTP\ftp4

    O raiz no IIS é o C:\FTP

    Abraços.

  5. Julio

    educoutinho, obrigado pela iniciativa. deu certinho!

    Valeu!

  6. Flávio

    Boa Noite Eduardo,
    Segui todos os passos acima mais mesmo assim no filezilla está aparecendo a seguinte mensagem
    Resposta: 150 Opening BINARY mode data connection.
    Erro: A conexão excedeu limite de tempo
    Erro: Falha na obtenção da lista de pastas

    Como dito acima já verifiquei o firewal mais o erro ainda persiste .

    Abraço.

  7. mário

    Muito obrigado pelo tutorial, pois resolveu meu problema. parabéns

  8. Cleber

    Mesmo erro comigo:

    “Resposta: 150 Opening BINARY mode data connection.
    Erro: A conexão excedeu limite de tempo
    Erro: Falha na obtenção da lista de pastas”

    Já tentei buscar em diversos fóruns, Verifiquei firewall, Verifiquei o negocio do Passivo/Ativo e nada.
    Se alguém conseguir por favor poste aqui!

    1. educoutinho

      Esse erro é realmente irritante e acontece com bastante freqüência em novos servidores FTP configurados. Tente o seguinte:

      1- Veja a configuração do Firewall do servidor e do seu computador. Faça um teste com o Firewall do Windows do seu computador desabilitado e veja se o erro muda.
      2- Verifique se você configurou corretamente o “FTP Firewall Support” com o IP externo. Veja no post acima como fazer isso.
      3- No servidor, verifique as permissões para o usuário do IIS na pasta que o FTP está acessando

      A conexão pode estar bloqueada, então se você usar o telnet em uma porta não configurada:
      telnet [ip do seu ftp] 494949
      Provavelmente vai ter o mesmo erro que fazendo o telnet na porta de FTP:
      telnet [ip do seu ftp] 21
      Se não aparecer nenhum erro, significa que ele conectou.

      * No prompt DOS se o comando telnet não estiver disponível ele precisa ser ativado pelo painel de controle em “Ativar ou desativar recursos do Windows”.

      1. Cleber

        Então, O primeiro e segundo passo eu já havia feito, aproposito segui exatamente o que você foi fazendo para tentar resolver esse problema.

        3 – A conta que criei para o FTP tem todas as permissões dentro da pasta destinada ao FTP.

        Quando dou Telnet na porta que utilizo ele se conecta ao servidor Microsfot FTP, quando utilizo qualquer outra porta ela da Connect failed.

        O que acho engraçado é que ele se conecta ao servidor, então acho que isso meio que anula a hipótese de ser o FireWall. Será que existe algum outro serviço de segurança do Windows para bloquear acesso as pastas e, por causa dele o FTP não consegue listar os arquivos?

        Não conheço muito bem Windows Server, e tem sido um grande desafio modificar meu sistema para trabalhar com um servidor Cloud.

        1. educoutinho

          Se o problema não é de conexão (já q conectou via Telnet), deve ser de permissão. Coloca acesso “Every one” temporário na pasta raiz do FTP e veja se consegue listar as pastas. Se conseguir, o problema é de permissão. Testa também colocando permissão para todos no “FTP Authorization Rules”.

          1. Cleber

            Bem, Erro persiste mesmo colocando Everyone na Pasta Raiz do FTP e all users no FTP Authorization..

            Esta me dando um desanimo esse negócio.

            Ajuda dizer que quando é local ele funciona? Se eu utlisar o filezilla no servidor e tentar acessar ele mesmo usando IP externo (Fixo), eu consigo acessar os arquivos normalmente, criar, modificar e deletar.

        2. educoutinho

          Qual Cloud você está usando? Se for o Ec2 do Amazon AWS além do Firewall do servidor no painel de configuração do serviço você precisa configura o Security Group para abrir as portas TCP 21 e TCP 49152-65535. Quando você fez o telnet no seu servidor, depois de conectar quando você pressiona alguma tecla ele continua conectado, ou já no primeiro comando te desconecta? Abre o seu telnet e tenta isso:

          telnet "ftp.debian.org" 21
          USER anonymous
          PASS 123
          PASV
          LIST
          

          No meu caso ele não conseguiu fazer o lista, mas se manteve conectado para todos os comandos.

          1. Cleber

            Meu Cloud não é esse, é da Uol. E segundo o suporte deles todas as portas ja ficam liberadas, sendo fechadas apenas pelo windows/FireWall/Anti-Virus.

            No meu caso deixei o Anti-virus completamente desativado para fazer os testes, desativei também o firewall.
            E fazendo esse ultimo teste que você pediu deu isso!

            “Microsoft FTP Service
            user UsuarioFTP1
            331 Password required for UsuarioFTP1.
            pass FTPTESTE_321230-Directory has 27,489,222,656 bytes of disk space available.
            230 User logged in.
            pasv
            227 Entering Passive Mode (200,98,xxx,xx,192,11).
            list
            150 Opening ASCII mode data connection.
            550-Data channel timed out.
            Win32 error: The network connection was aborted by the local system.
            Error details: Data channel timed out.
            550 End”

            No caso é o mesmo resultado de quando tento de maneira externa pelo FileZilla, porem desta vez foi pela Prompt no próprio servidor.

        3. educoutinho

          Tem que tentar pelo telnet do seu computador e não do Servidor. Pelo servidor, como você disse, já funciona inclusive pelo FileZilla. Esse teste verifica se realmente não tem nenhum bloqueio na comunicação. Fora essa opção, não tenho mais nenhuma ideia… Tudo que posso fazer é te desejar boa sorte.

          1. Cleber

            Pois é, o resultado foi o mesmo do meu computador.
            Bem, não sei se tem alguma coisa relacionada mas o Windows é “Datacenter Edition – 64Bits”.
            E só para esclarecer, que porta ele utiliza quando entra no modo passivo?

        4. educoutinho

          O fato de set Windows Datacenter Edition 64bits não impacta em nada. Eu já executei esse mesmo processo em diferentes servidores, inclusive no Windows Server 2012 64 bits.
          Sobre as portas, dá uma olhada aqui: http://www.educoutinho.com.br/desenvolvimento/web/ftp-qual-a-diferenca-entre-ativo-e-passivo-e-quais-portas-sao-utilizadas/

          1. Cleber

            Trago boas novas, Consegui fazer funcionar.
            Desculpe desperdiçar seu tempo, o erro foi todo meu, vi em alguns fóruns que a porta 21 é bloqueada em alguns provedores, então insisti em criar todo o FTP na porta 2121. Para teste deletei tudo que havia feito e criei exatamente como você descreveu pela porta 21 e funcionou corretamente.

            Realmente me desculpe,
            Mas me deparei com outro acontecido, Quando acesso com modo Ativo no FileZilla ele se conecta e transfere os dados numa boa. Já quando u coloco Passivo ele da o erro de não conseguir listar os dados.
            Acontece que tenho vários clientes utilizando meu sistema, e acontecerá de mais de um utilizar o FTP ao mesmo tempo, pelo que entendi quando mais de um se conecta ele utiliza portas passivas…
            Como faço para configurar esse modo passivo no IIS?

        5. educoutinho

          Que bom que funcionou. Tanto o modo Passivo quanto o Ativo suporta multiplas conexões, então não tem problema se vários usuários utilizarem de forma concorrente.
          []‘s.

          1. Cleber

            Ok então.

            Muito obrigado, você me ajudou muito!
            Parabéns pelos Tutoriais, com certeza esta ajudando muita gente!

  9. Marques

    Obrigado pelas informações, esse post foi muito util. Parabens.

  10. Cezar

    Olá, eu configurei o FTP no windows 7 e funciona perfeitamente atraves de acesso externo, mas somente com o firewall desabilitado. Criei regras de entrada liberando a porta 21 para TCP e UDP, habilitei nas regras de entrada todas as opções relacionadas a FTP e mesmo assim nada. Poderiam em ajudar? Desde já obrigado.

  11. Gabriel

    Bom dia, está ocorrendo o seguinte. Já na primeira parte, onde deve-se configurar o FTP Firewall Support no IIS, não aparece as opções de configuração de FTP, alguém saberia o que pode ser?

  12. charleston

    Very good, congragulations..

  13. Antonio Júnior

    Estou recebendo a mensagem: Erro 550, não consigo o acesso, pode ajudar?

  14. Daniel Garcia

    Meu caro,

    O seu tutorial foi de muita utilidade, o único completo que encontrei.

    Obrigado!

  15. carlos

    resolvi o problema do erro do filezilla que nao listava as pastas do servidor ftp …
    ja havia feito de tudo… logava tudo.. mas nao listava as pastas… e consequentemente nao enviava e recebia dados algum…
    fui na guia editar do filezilla… configuracoes….. cliquei em cima do FTP … e marquei de passivo para ATIVO… tudo deu certo dai pra frente com o SERVER 2008 R2 E A PARTE FTP

  16. HumbertoSMS

    funciona perfeitamente, uma observação que dever ser feita e que no servidor da “LOCAWEB” talvez (no meu casa tive que Reiniciar o servidor) … Após isso FUNFO no 12… Vlw

    Obs.:
    - Deu um erro graças a uma bondade do Ruwindows 2008 R2 Update de Framework.
    - Paro tudo…

    Dados:
    -Server Pro Loca Web
    -Win 2008 R2

  17. André Rocha Agostinho

    Excelente artigo! Completo e focado na funcionalidade. O mais complexo e objetivo que achei
    Gostei também da seção dos erros citados, isso demonstra que você não apenas se preocupou em passar a receita em baby steps.

    Parabéns!

  18. luiz gustavo V. Guimarães

    Muito obrigado Edu Coutinho. No final seguindo as suas dicas deu certo.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>