Configurando FTP Passivo para Windows Azure Virtual Machines

Autor: Daniel Pires / Revisão: Daniel Mauser

Introdução

Olá Pessoal,
Hoje falaremos de mais um problema (muito interessante) reportado por um de nossos clientes. Basicamente ele configurou o IIS (FTP Server) em uma de suas VMs do Azure executando a nossa imagem do Azure (Windows Server 2012 R2 Datacenter) e ao testar, notou que remotamente (vindo da Internet) não era possível acessar nem tampouco transferir arquivos via FTP. O cliente também nos informou que havia criado um PONTO DE EXTREMIDADE para a porta 21 (uma das portas utilizadas numa comunicação FTP) porém infelizmente, não foi suficiente.

É possível permitir o FTP (passivo) em uma VM no Azure?
Sim, é possível! Abaixo demonstraremos como configurá-lo:

1) Na VM do Azure, adicionar a role de Web Server Role (IIS) e a Role services FTP Server:


 
2) Após a instalação, através do Internet Information Services (IIS) Manager, temos que adicionar um site FTP através da opção Add Website...

3) As próximas quatro (4) imagens devem apenas ser utilizadas como referência visto que algumas são de escolha própria e outras de acordo com as propriedades de sua subscription e etc...:

Obs: Para este exemplo estamos utilizando autenticação anônima mas é importante que no seu ambiente de produção você utilize autenticação de usuário com senha para proteger seu FTP.

4) Agora, temos que ir em FTP Firewall Support e configurar o Data Channel Port Range e o External IP Address of Firewall:

 

Obs: Para essa demonstração utilizarei apenas o range de 1035 até 1040 e o IP utilizado (104.46.51.129) era o VIP do meu Cloud Services naquele momento.
5) Você receberá uma mensagem informando a necessidade de configuração do Firewall para a porta aqui chamada de Control Channel (21 no meu caso) e o Data Channel Port Range (1035 até 1040):


 

6) Agora temos que reiniciar o serviço Microsoft FTP Service:

 

Observação: Não utilize o iisreset para esse procedimento visto que o serviço de FTP “está fora do IIS”
Pronto! O IIS já está corretamente configurado. Agora precisamos criar os PONTOS DE EXTREMIDADE através do Portal de Gerenciamento do Azure:

7) Vá até as propriedades da VM onde o IIS acabou de ser configurado (ftp no meu caso), aba PONTOS DE EXTREMIDADE:

  

8) Na parte inferior da tela, utilize o botão ADICIONAR:

9) Vamos escolher a opção ADICIONAR UM PONTO DE EXTREMIDADE AUTÔNOMO:

10) Este primeiro será criado para a porta TCP 21. Já existe um pré-definido na lista:


 
11) Aguarde até receber a mensagem de criação efetuada com sucesso:

12) Devemos repetir os procedimentos acima para o range de portas configurado no Data Channel Port Range (1035 até a 1040). No final, seu portal deve estar bem parecido com esse aqui:

Pronto! Estamos prontos para testar o FTP agora!
Como testar?
Através do meu laptop (conectado à Internet através de um link caseiro convencional), utilizarei a ferramenta SmartFTP:

13) Clique em Connection:
 

14) Preencha os campos que forem necessários. No campo Host, não se esqueça de utilizar o VIP de seu SERVIÇO DE NUVEM. Você terá um resultado muito parecido com o abaixo:

 
15) Para testar o upload, utilize o botão Upload na barra de ferramentas:

16) Se você coletar uma captura de rede (sim, eu amo isso) durante o acesso/upload, você verá uma conversação cliente/servidor na porta TCP 21 e uma outra em uma das portas do range que configuramos:

Último detalhe...
Alguns devem estar se perguntando..."Humn...mas eu não preciso desabilitar e/ou configurar o Windows Firewall na VM!?"
A resposta é: A configuração padrão (Firewall habilitado) já é suficiente para que o FTP passivo funcione corretamente. Especialmente em função das duas regras de Firewall abaixo (já habilitadas por padrão):

Espero que tenham gostado! Obrigado e até a próxima!