O Firewall bloqueia a resposta do FTP PASV

0

Eu tenho um servidor FTP que suporta o modo de servidor passivo (usando o comando PASV). Isso funciona bem com o Windows XP. Quando quero acessar esse servidor do Windows Vista ou do Windows 7 com o firewall ativado, vejo um desligamento imediato da conexão. Um pacote de redefinição é enviado para o servidor e o soquete é sinalizado que o servidor reinicializou a conexão (o que não é verdade).

O problema desaparece quando o firewall está desativado.

As conexões para outros servidores FTP funcionam corretamente. A diferença é que a resposta do servidor ao PASV não inclui o campo de endereço com parênteses. Isso é legal, conforme documentado no RFC-959 e no RFC-1132.

Como posso configurar o firewall para impedir esse mau comportamento?

    
por harper 21.12.2010 / 08:05

3 respostas

0

Você não pode configurar o firewall porque é apenas um buggy.

Contanto que você não possa alterar o servidor FTP para enviar as informações da porta entre parênteses porque ele está integrado em dispositivos antigos no campo, você precisa de um cliente especial com o seguinte comportamento.

Esse cliente deve enviar um comando TYPE I imediatamente antes de cada comando PASV para manter o firewall em um estado sã. Se você precisar de uma transferência não-binária, poderá alterar o parâmetro do comando TYPE.

    
por 24.05.2013 / 18:29
1

Eu não acho que os parênteses sejam os culpados.
Eu prefiro pensar que o intervalo de portas dinâmicas alocado por esse servidor não está de acordo com o Vista / 7.

Para obter uma discussão sobre o assunto, consulte este artigo: O intervalo de porta dinâmica padrão para TCP / IP foi alterado no Windows Vista e no Windows Server 2008

Para visualizar o intervalo de portas dinâmicas no seu computador para o ipv4, use o seguinte comando:

netsh int ipv4 show dynamicport tcp 

Para definir o intervalo de portas dinâmicas para o TCP, use por exemplo:

netsh int ipv4 set dynamicport tcp start=1024 num=30000

Mais comandos são descritos no artigo acima.

EDIT: Por favor, note que o firewall do Windows pode ser inteligente o suficiente para abrir uma porta dinâmica especificada na resposta PASV, mesmo se esta porta não estiver dentro do seu intervalo padrão para portas dinâmicas. Mas pode ser que ainda não seja inteligente o suficiente para entender a resposta sem os parênteses. Talvez valha a pena examinar a possibilidade de estender o intervalo padrão para portas dinâmicas.

    
por 29.04.2011 / 13:47
0

Isso me lembra de um problema que tive com o Java e o FTP em execução no Windows 7.

link

Acabou sendo um bug com o firewall da Microsoft com FTP, modo passivo e conexões IPv6 (o endereço não precisava ser IPv6, apenas o software que fez a conexão usando a pilha IPv6).

O sintoma descrito na sua pergunta soa muito semelhante a esse problema, então eu vou linkar e resumir aqui (mesmo que essa questão não tenha nada a ver com o Java, a correção pode ser a mesma)

Um resumo de algumas soluções mencionadas aqui:

  • hotfix da Microsoft: link
  • Tentativa de tornar seu cliente FTP em execução no Vista / 7 executado com uma pilha IPv4 (pode ser possível, pode não ser)
  • Desabilite o FTP com monitor de estado do firewall do Windows usando netsh advfirewall set global StatefulFTP disable (isso, no entanto, desabilitará as conexões FTP no modo não passivo que passam pelo seu firewall)
por 31.01.2013 / 02:21