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.
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
É 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”
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:
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.
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.
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.
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:
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.
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.
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.
Estado: A resolver o endereço de ftp.seudominio.com.br
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).
Verifique se 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 !
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:
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:
Se você tiver algum erro de conexão, o Firewall do seu windows pode estar bloqueando o acesso.
Tente o seguinte: