não pode se conectar ao vsftpd de rede externa

1

Eu sei que isso foi perguntado muitas vezes antes, mas nada parece resolver o meu problema.

Eu tenho o vsftpd rodando no Ubuntu 10.04. Eu posso conectar com ftp localhost na máquina. Eu posso conectar de outra máquina na minha rede. Eu simplesmente não consigo conectar de fora. a máquina está por trás de um extremo do aeroporto gerenciado pelo utilitário do aeroporto em um mac.

21 está aberto de acordo com o nmap:

macmini:~$ nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2011-04-10 23:49 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00045s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 997 closed ports
PORT    STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
631/tcp open  ipp

netstat diz que 21 está ouvindo:

macmini:~$ netstat -lep --tcp | grep ftp
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 *:ftp                   *:*                     LISTEN

iptables:

macmini:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

quando tento conectar-me a partir do meu IP externo (ou um nome de dyndns que resolve lá), ele expira. ("conexão de controle expirou")

Como eu sei muito pouco sobre redes, sinto que algo pode saltar como claramente errado?

    
por rick 11.04.2011 / 05:57

1 resposta

3

Para responder a sua pergunta: como o seu firewall está configurado? Parece que está bloqueando as conexões de entrada. A maioria tem uma negação padrão na porta 21. Na verdade, a maioria tem uma negação padrão em todas as conexões de entrada na interface externa. Seu firewall está fazendo traduções NAT / PAT? Você está executando o FTP no modo passivo ou no modo ativo? Se você estiver executando no modo ativo, os clientes FTP precisarão encaminhar conexões do seu servidor ou as conexões falharão. Se você estiver em execução no modo passivo, então você precisará encaminhar esse intervalo de portas passivo. Todas as suas conexões estão ocorrendo na porta 21? Por padrão, eles não funcionarão, embora alguns clientes (principalmente navegadores da Web) utilizem a porta 21 para dados.

Em termos mais gerais: Fazer o FTP funcionar corretamente através de um firewall é uma PITA tremenda porque o FTP antecede o TCP / IP e o modelo TCP / IP. O FTP precisa de uma porta diferente para cada conexão ao seu servidor do mesmo IP. Você usa a porta 21 para conexões de controle e 20 para conexões de dados geralmente . E, dependendo de você estar usando FTP Ativo ou Passivo, determinará se o seu servidor tentará iniciar essas conexões de dados ou se o cliente precisará. Se você estiver usando FTP passivo, terá que encaminhar mais do que apenas a porta 21. Por padrão, é a porta 20, mas a maioria dos daemons de FTP hoje em dia solicita um intervalo de portas na faixa de 50.000. Você teria que olhar para o arquivo de configuração vsftpd para ver quais portas ele quer usar. Além disso, lembre-se de que o FTP envia senhas em texto simples, por isso é altamente suscetível a ataques man-in-the-middle e de repetição, e assim por diante.

FTPd + firewall = pesadelo. IMX, a resposta inevitável para a pergunta "Por que meu servidor FTP não funciona através do firewall?" é "porque o FTP remonta a 1971".

Em geral, eu recomendo strongmente a mudança para o sftp (OpenSSH é o daemon Linux mais comum), embora isso vai exigir algum tempo para aprender os prós e contras porque o sftp é um subconjunto de comandos ssh. Você precisa ter cuidado ao configurá-lo ou conceder aos usuários externos acesso ao seu servidor. Isso é ruim, obviamente, já que de repente todos os alertas de segurança que dizem "um usuário local malicioso poderia ..." se aplicam a você.

    
por 11.04.2011 / 06:28