Windows Server 2003 bloqueando o modo passivo de FTP de saída

1

Eu tenho duas máquinas atrás do mesmo firewall / roteador - uma é uma estação de trabalho do Windows 7 e a outra é um servidor Windows 2003. O problema é com o acesso FTP de saída usando o cliente FileZilla FTP (nota: não servidor) no servidor Windows 2003.

Usando o cliente FileZilla na estação de trabalho Win7, posso me conectar a um site FTP externo usando o modo passivo sem problemas. No entanto, quando eu tento a mesma coisa do cliente FileZilla no servidor Windows 2003, ele trava ao tentar recuperar a lista de diretórios. A saída do log é a seguinte:

Status: Resolving address of xxxxx.com
Status: Connecting to xxx.xxx.xxx.xxx:21...
Status: Connection established, waiting for welcome message...
Response:   220---------- Welcome to ...
Command:    USER ...
Response:   331 User ... OK. Password required
Command:    PASS *************
Response:   230 OK. Current directory is /
Command:    SYST
Response:   215 UNIX Type: L8
Command:    FEAT
Response:   211-Extensions supported:
Response:    EPRT
Response:    IDLE
Response:    MDTM
Response:    SIZE
Response:    REST STREAM
Response:    MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Response:    MLSD
Response:    ESTP
Response:    PASV
Response:    EPSV
Response:    SPSV
Response:   211 End.
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is your current location
Command:    TYPE I
Response:   200 TYPE is now 8-bit binary
Command:    PASV
Response:   227 Entering Passive Mode (xxx,xxx,xxx,xxx,164,24)
Command:    MLSD
Error:  Connection timed out
Error:  Failed to retrieve directory listing

Como você pode ver, uma conexão pela porta 21 é estabelecida e uma solicitação para entrar no modo passivo resulta na porta 42008 sendo estabelecida. Mas a tentativa de recuperar dados por essa porta falha. Isso funciona perfeitamente na máquina Win7.

Eu entendo o modo passivo versus ativo razoavelmente bem. Parece neste caso que o Windows Server 2003 está bloqueando o tráfego em determinadas portas. O serviço do Firewall do Windows não está sendo executado neste dispositivo para que eu possa eliminá-lo como o culpado. Eu gostaria de receber outras sugestões sobre como rastrear isso.

UPDATE Acontece que é específico para um site FTP. Eu posso me conectar a outro site usando o modo passivo muito bem. A diferença parece ser o número da porta. O número de porta passivo no site que eu posso alcançar é 4693. O número de porta passivo no site que eu não posso alcançar é mais de 42000. Isso tem alguma influência sobre a situação?

UPDATE Eu escrevi um pequeno programa de servidor de socket rodando na estação de trabalho do Win7 que escutava na porta 50000, então da caixa do Windows 2003 eu corri o telnet para o endereço / porta da estação de trabalho e ... funcionou. Portanto, dentro da LAN, o Windows 2003 está permitindo o tráfego. De alguma forma, não está permitindo o tráfego pela Internet. Desconcertante.

UPDATE Problema estava com o servidor FTP. Veja a resposta abaixo .

    
por Bob Mc 08.04.2011 / 17:28

2 respostas

0

Então, agora parece que isso foi um problema com o servidor FTP (PureFTPd). O admin mexeu em algo e reiniciou o servidor e, voilá, tudo começou funcionando. Eu tenho que parar de assumir que o problema é com o meu código / configuração o tempo todo.

Obrigado a todos que contribuíram.

    
por 03.05.2011 / 20:24
1

On Windows Server 2003 and Windows XP the default range of ephemeral ports used by client applications is from 1025 through 5000. Under certain conditions it is possible that the available ports in the default range will be exhausted.

netstat -n ou netstat -b para ver as conexões ativas

Aumente o intervalo superior de portas efêmeras que são alocadas dinamicamente a conexões de soquete TCP / IP do cliente.

  1. Inicie o Editor do Registro.
  2. Procure e clique na seguinte chave no registro:   HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters
  3. No menu Editar, clique em Novo, Valor DWORD e adicione o seguinte valor do Registro para aumentar o número de portas efêmeras que podem ser alocadas dinamicamente a clientes:   Nome do valor   MaxUserPort   Dados do valor   
  4. Feche o Editor do Registro.

Nota: Você deve reiniciar o computador para que essa alteração entre em vigor.

Nota: Aumentar o intervalo de portas efêmeras usadas para conexões TCP / IP do cliente consome a memória do kernel do Windows. Não aumente o limite superior dessa configuração para um valor maior do que o necessário para acomodar as conexões de soquete de aplicativo cliente, de modo a minimizar o consumo desnecessário de memória do kernel do Windows.

    
por 09.04.2011 / 04:40