Ajuda necessária Adicionando FTP ao IPTables no Ubuntu 10.10

1

Eu tenho um script IPtables existente em execução em um VPS com LAMP e preciso de ajuda para permitir conexões FTP para que eu possa fazer upload e download de arquivos para o meu servidor web.

Já instalei o vsftpd para o ubuntu e configurei-o para acesso de usuário autenticado, mas acho que meu firewall está recusando a solicitação de conexão.

Eu tentei modprobe ip_conntrack_ftp para carregar o módulo. Mas eu ainda não consigo conectar via FTP

*filter
#  Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT

#  Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allows all outbound traffic
#  You could modify this to only allow certain traffic
#  This is in addition to allowing established and related traffic as listed above
-A OUTPUT -j ACCEPT

# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#Allows FTP traffic
-A INPUT -p tcp -m tcp --dport 20 -j LOG
-A INPUT -p tcp -m tcp --dport 21 -j LOG
-A OUTPUT -p tcp -m tcp --sport 20 -j LOG
-A OUTPUT -p tcp -m tcp --sport 21 -j LOG

#  Allows SSH connections from trusted-host only - drop the rest
-A INPUT -p tcp -m state --state NEW --source 84.70.321.123 --dport 30000 -j ACCEPT
-A INPUT -p tcp --dport 30000 -j DROP

# Create time lock for non-wanted SSH attempts of a period of 1 minute
-A INPUT -p tcp -m state --syn --state NEW --dport 30000 -m limit --limit 1/minute     -limit-burst 1 -j ACCEPT
-A INPUT -p tcp -m state --syn --state NEW --dport 30000 -j DROP

# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT

Continuo a obter a ligação e não sei porquê.

Por favor, explique isso nos termos mais simples, porque parece um pouco complicado e vejo muitas pessoas terem perguntas semelhantes que se beneficiariam de uma explicação simples.

    
por user866190 25.08.2011 / 15:02

2 respostas

1

O FTP pode ser um protocolo problemático. Eu aceitei apenas não usá-lo (substituindo-o pelo SCP ou SFTP mais seguro e eficiente, conforme fornecido pela maioria dos pacotes SSH, ou (melhor ainda) pelo rsync sobre o ssh, quando disponível).

Mas coisas para procurar ou experimentar:

  • Verifique se ele funciona se o firewall estiver temporariamente configurado para aceitar qualquer coisa. Isso confirmará que a configuração do firewall é o problema e, em vez disso, não há nenhum outro problema.
  • Certifique-se de que o cliente esteja usando o modo PASV, caso contrário, o servidor tentará se conectar ao cliente e um bloco nesse ponto poderá ser o problema, não o firewall.
  • Verifique qual porta o cliente está tentando usar para a conexão de dados (um bom cliente de FTP terá a opção de ver um log completo do que é enviado na conexão de comando, procure um comando PORT imediatamente antes de tentar a transferência ). Consulte o link para obter uma explicação de como interpretar os comandos PASV (e a diferença entre os modos ativo e passivo).
  • Você não diz se o cliente FTP se conecta ou se ele falha ao obter uma listagem de diretório ou ao obter / enviar um arquivo. Se o último, então, o modo ativo / passivo é discutível (que só entra em jogo uma vez que a conexão de comando está aberta. Novamente, olhe para os logs, ou tente um cliente de linha de comando. Se o cliente FTP chegar a fazer uma conexão) e aceitando seu nome de usuário / senha), então você está recebendo uma conexão de comando OK.

Embora minha recomendação geral, supondo que você possa combiná-lo com seus usuários, é usar SFPT / SCP via SSH em vez de FTP. Eu o relaciono com meus usuários, explicando a melhor segurança e eficiência, e se isso falhar, eu vou com "se você realmente quiser usar o FTP, por favor considere usar um serviço diferente". Quase todas as configurações do Linux têm suporte a linha de comando e GUI (digite sftp: //server.domain.tld/ ou similar no gerenciador de arquivos padrão no Ubuntu, por exemplo) e há vários bons clientes para Windows ( Eu uso o WinSCP para uso da GUI e o pacote OpenSSH do Cygwin para uso em linha de comando, embora o WinSCP também suporte o uso da linha de comando).

    
por 25.08.2011 / 17:59
1

Por padrão, o vsftp.conf deve ter a seguinte linha:

connect_from_port_20=yes

Isso configura o vsFTP para o modo ativo e, portanto, se conecta ao cliente pela porta 20. Se isso NÃO estiver ativado, significa que o vsFTP está configurado para o modo passivo, o que exigirá que você abra um intervalo de portas no firewall acima de 1024.

    
por 25.08.2011 / 16:42

Tags