IIS 7.5 no Windows Server 2008 R2 recusando-se a criar conexões FTP de MODO PASSIVO

4

Estou tentando obter um cliente FTP escrito em perl para transferir arquivos de um servidor FTP do IIS 7.5 usando o modo passivo.

Configurei o servidor FTP de acordo com as instruções e também configurei o Firewall do Windows para permitir esse tipo de tráfego. Eu validei que o firewall está funcionando corretamente, verificando para garantir que não haja pacotes bloqueados nos logs. Verifiquei que o canal de controle FTP está sendo aberto na porta 21.

Eu acredito que o cliente está sendo informado pelo IIS qual porta conectar para o modo passivo e IIS está se recusando a permitir essa conexão.

O log perl se parece com:

C:\cygwin\Perl\lib\FMT>perl FTPTest.pl
Net::FTP>>> Net::FTP(2.77)
Net::FTP>>>   Exporter(5.64_01)
Net::FTP>>>   Net::Cmd(2.29)
Net::FTP>>>   IO::Socket::INET(1.31)
Net::FTP>>>     IO::Socket(1.31)
Net::FTP>>>       IO::Handle(1.28)
Net::FTP=GLOB(0x20abac0)<<< 220 Microsoft FTP Service
Net::FTP=GLOB(0x20abac0)>>> USER ftpuser
Net::FTP=GLOB(0x20abac0)<<< 331 Password required for ftpuser.
Net::FTP=GLOB(0x20abac0)>>> PASS ....
Net::FTP=GLOB(0x20abac0)<<< 230 User logged in.
Net::FTP=GLOB(0x20abac0)>>> CWD /Logs
Net::FTP=GLOB(0x20abac0)<<< 250 CWD command successful.
Net::FTP=GLOB(0x20abac0)>>> PASV
Net::FTP=GLOB(0x20abac0)<<< 227 Entering Passive Mode (xx,xxx,xxx,xxx,160,41).
Net::FTP=GLOB(0x20abac0)>>> RETR filename.txt
Can't use an undefined value as a symbol reference at C:/Utilities/strawberryper
l/perl/lib/Net/FTP/dataconn.pm line 54.

Os logs do IIS têm a seguinte aparência:

2010-10-02 17:40:06 xx.xxx.xx.xx - yy.y.yy.yy ControlChannelOpened - - 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:06 xx.xxx.xx.xx - yy.y.yy.yy USER ftpuser 331 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:06 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy PASS *** 230 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a / -
2010-10-02 17:40:06 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy CWD /Logs 250 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a /Logs -
2010-10-02 17:40:06 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy PASV - 227 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:27 - MACHINENAME\ftpuser zz.z.zz.zzz 41001 DataChannelClosed - - 64 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:27 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy ControlChannelClosed - - 64 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:27 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy RETR filename.txt 550 1236 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a filename.txt -

Também conseguimos ver este problema com outros clientes FTP, não acho que seja algo engraçado em Perl. Fui informado de que isso funciona bem no servidor FTP do IIS 6. Eu estou querendo saber se algo está faltando aqui.

    
por Campbell 02.10.2010 / 19:55

4 respostas

0

Eu tive esse mesmo problema. O IIS FTP 7.5 é configurado por padrão para permitir somente FTP ativo, não passivo, eu acredito - pelo menos em duas instalações padrão que eu fiz. Talvez o seu roteiro esteja ficando preso a isso. O site do IIS link me ajudou imensamente - embora meu problema fosse com um cliente FTP regular (filezilla) não PERL deve aplicar neste caso. Olhe especialmente para o Passo 3: Configurar o Firewall do Windows

    
por 15.10.2010 / 22:29
0

Eu tive esse mesmo problema com um script Perl. Eu estava me conectando de um endereço IP privado. No modo passivo, o endereço IP público é retornado ao emitir o comando PASV! A solução foi definir Passive = > 0 para usar o modo ativo quando dentro do firewall e usar passivo = > 1 quando fora do firewall.

    
por 10.10.2011 / 23:08
0

Eu encontrei problemas semelhantes com outros softwares de servidor ftp.

você pode precisar fazer o mapeamento de porta se o seu servidor ftp estiver atrás do NAT. você também pode precisar verificar a porta do servidor usado para o modo passivo e mapear a porta. Verifique também o firewall de que essas portas são permitidas.

    
por 08.05.2016 / 12:12
0

Tente usar o editor de configuração do IIS e navegue até System.applicationHost / sites - > siteDefaults - > ftpServer- > segurança- > dataChannelSecurity e desative matchClientAddressForPort e matchClientAddressForPasv. Essa foi a minha correção ao passar do IIS 6 para o IIS 7.5

    
por 07.11.2017 / 20:09