Ftp via navegador não lista o contéudo
Olha... Ter jeito até deve ter... Mas daí seria o caso de você fazer isso em tooodos os servidores FTP que vc quiser acessar.
Eu fiz dois testes práticos aqui com um servidorzinho FTP que rodo em casa.
Também li os rfcs de FTP. Olha só o que acontece:
Se você está com o ip 192.168.0.2, e conecta no servidor ftp 200.215.198.22, sem usar modo passivo, você conecta direitinho, e não tem porque dar errado. Afinal seu computador pode abrir qualquer conexão a partir de qualquer porta para a porta 21. O problema é que o servidor FTP te vê, por exemplo, como 201.22.192.184.
Daí seu cliente FTP como não é adivinho, ao 'pedir' uma conexão para transmissão de dados (bem como a listagem de arquivos), 'abre' uma porta 1099, e fala pro servidor 200.215 lá:
'Fineza efetuar conexão pelo meu IP 192.168.0.2, porta 1099'
E o servidor, que não é nenhum babaca:
'Caríssimo. Você está conectado a mim pelo IP 201.22.192.184, como quer que eu mande dados para esse IP 192.168.0.2?'
E então você tem o famoso 'illegal port command'. O helper do linux (ip_conntrack_ftp) justamente captura os pacotes que mandam 'Fineza blahblah', e trocam o 192.168.0.2 pelo IP real da regra masquerade. Porém existem algumas configurações do iptables que não permitem que esse helper funcione.
O que muda quando você usa o modo passivo é que ao invés de -você- alocar a porta (sempre >1024), o servidor é quem o faz. Daí não tem como haver aquele problema de você informar o IP que na verdade não é.
O modo passivo podia funcionar melhor né.. Por exemplo, fazer com que o mesmo canal de transferencia de dados seja o canal que já tá aberto na conexão, como funciona com o http. Daí funcionaria mais ou menos como akeles modems antigamente, que a gente baixava por xmodem/kermit... Eles paravam a interação com o terminal (bbs entre outros) e tomava conta uma transferência frenética de dados.
Você me falou que por padrão seus navegadores usam modo passivo. Então certamente você não utiliza o Internet Explorer do Windows. Pois mesmo no windows XP é necessário que você 'manualmente' mande que ele use o modo passivo. No windows 98, a opção de ftp passivo simplesmente é ausente (parece um bug no IE6 para win9x -- eu editei o registro do Windows para colocar a opção como a do windowsXP, com os atalhos dos registros e tudo, e tudo que ganhei foi um GPF do IE6 no meu win9x).
O que deve estar acontecendo pro lynx funcionar normalmente é que de repente você está rodando ele por uma máquina cujo IP que os servidores remotos vêm nela é o IP que está configurado nela na eth0, por exemplo (assim evitando ela falar que é 192.168.0.1 quando é 200.x.x.x).
Daí que eu vi que a solução das nossas mágoas possa ser essa budeguinha desse helper!.. Desativa o modo passivo no seu cliente, vai no servidor linux, e:
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
E tum! deve funcionar o FTP em moto -ativo-.
Eu -acho- que esse ip_nat_ftp não vai te ajudar muito caso você utilize regras SNAT <ip> no lugar de MASQUERADE.
Minto! Funcionou usando SNAT IP! Acho que isso deve resolver seu problema -- mas daí vai ser requerido que você utilize FTP -ativo- ao invés do passivo.
Olha só, testei aquo no meu windows 98:
Código :
230 User avenger logged in.
ftp> quote port 10,3,172,198,254,232
200 PORT command successful
ftp>
Note que 10.3.172.198 é um IP falso, nesse momento meu IP era 201.19.algo.algo. Eu daqui de casa falei '10.3', o firewall interceptou, e falou lá '201,19' hehe Interessante como esse lance funciona
(precisa dizer que aprendi isso enquanto elaborava a resposta prá você!?)
Ftp via navegador não lista o contéudo
Caramba !!!
Valeu pela aula, hehehe :D .
Vou dar uma mexida aqui e posto o resulatdo.
Vlw :good: