Servidor FTP acessível internamente, mas a listagem de diretórios falha externamente

2

Acabei de configurar um servidor FTP usando a versão mais recente do servidor FileZilla. Eu configurei um usuário e dei a eles um diretório pessoal. Se eu me conectar ao servidor via 127.0.0.1:21 ou 192.168.1.42:21 (meu IP local), os arquivos podem ser carregados e baixados, e tudo funciona como deveria. No entanto, quando eu conecto através do meu nome de domínio externo, www.suchipi.com:21, o servidor se conecta, mas a listagem do diretório falha. Eu pensei que isso pode ser um erro com a forma como eu configurei o meu A Record, mas a conexão com o meu IP externo via 75.70.128.37:21 resulta no mesmo problema. A porta 21 é a única porta encaminhada. Preciso de outras portas?

    
por Suchipi 01.05.2012 / 17:42

4 respostas

3

Você também precisa abrir a porta 20 / TCP para permitir o tráfego para a conexão de dados. Esta porta será usada pelo cliente FTP quando configurada para usar o modo passivo.

    
por 01.05.2012 / 17:54
3

Se o seu firewall tiver rastreamento de conexão do protocolo FTP, como ip_conntrack_ftp e ip_nat_ftp do netfilter, você só precisará carregar o módulo adequado e / ou especificar que está permitindo o protocolo FTP (não apenas a porta 21).

Se o firewall não suportar o protocolo FTP, a única opção é configurar o servidor FTP para permitir clientes no modo passivo. Para isso, você precisará permitir a porta TCP 21 para conexão de controle e a porta TCP 20 para conexão de dados. A conexão de dados é usada para listar as pastas e para transferências de arquivos.

    
por 01.05.2012 / 22:30
1

Do I need to further any other ports?

Sim, você precisa - e não há lista estática. O FTP tem um problema muito ruim: no modo ativo, o servidor conectará TO (!) Ao cliente em uma porta RANDOM (!). Você precisa obter o número da porta do fluxo de comando. Basicamente, você diz "Lista" e o servidor tenta abrir uma conexão TCP PARA O cliente em uma porta RANDOM para ENVIAR A lista. OUCH.

É por isso que você pode colocar o cliente no modo PASSIVO, o que significa que todas as conexões são abertas a partir do cliente, mas mesmo assim você precisará encaminhar outras portas.

Geralmente o FTP vem de um tempo que ninguém pensou em firewalls - e alguém tomou a má decisão de ter o servidor em uma conexão ativa com o cliente.

Isso funciona muito melhor se você não for PORT FORWARD, mas usar um roteador / firewall adequado que saiba como encaminhar o FTP (ou seja, não apenas a sessão TCP, mas manipule o conteúdo da sessão TCP e traduza números de porta etc.) . Quase todos os firewalls sensatos devem ser capazes de fazê-lo - mesmo os do Linux, você só precisa ficar longe do "tcp" de encaminhamento estúpido.

link

tem algumas explicações, também sobre possíveis problemas - como você pode ver, é uma dor na bunda para conseguir isso.

Em geral, é melhor não usar o FTP em tal cenário, lamento dizer.

    
por 01.05.2012 / 18:46
0

Ativar o modo passivo. Defina-os para um intervalo de portas definido (algumas portas altas aleatórias, 20000-22000 fe). Não se esqueça de abrir essas portas em seu firewall e encaminhá-las em seu roteador junto com a porta 20.

    
por 01.05.2012 / 18:30

Tags