edupersoft
(usa Manjaro Linux)
Enviado em 23/10/2007 - 16:28h
No FTP são feitas duas conexões, uma de controle (porta 21) e quando os dados forem transferidos, a lista de arquivos também é considerada dados, é feita uma outra conexão em outra porta, assim se for necessário transferir um arquivo grande e no meio da transferência você decide encerrar a transferência, você pode enviar um comando pela porta de controle mandando encerrar a transferência.
O problema é que a conexão de dados que pode ser feita a partir do cliente no servidor, ou ao contrário, o servidor pode ser obrigado a fazer a conexão no cliente, invertendo os papeis para esta conexão o cliente vira servidor e o servidor vira cliente. É o tal ftp passivo. Quando a conexão de dados parte do cliente ele irá usar a porta 20, se for ao contrário é que o bicho pega, porque o seu servidor irá usar qualquer porta alta para isso e é ai que você não esta conseguindo a navegação, porque seu firewall deve estar bloqueando estas portas.
Para resolver o problema você pode permitir que seu servidor estabeleça a conexão em qualquer porta alta, como se fosse um cliente, ou você limita as portas que serão usadas para a conexão.
No proftp você pode usar um cláusula no proftpd.conf:
PassivePorts 40000 a 40009
e no seu firewall você libera da 40000 a 40009, sabendo que serão usadas no ftp. Assim fica mais seguro. O intervalo de portas que você deve deixar, depende do número de conexões que você vai prever que serão realizadas simultaneamente, já que você vai precisar de uma porta para cada conexão.
A porta 20 deve continuar liberada porque você nunca vai saber como o usuário irá se conectar.