Permitindo FTP com IPTables

26

Meu cenário atual envolve a permissão de várias regras, mas preciso que o ftp seja acessível de qualquer lugar. O sistema operacional é o Cent 5 e estou usando o VSFTPD. Eu não consigo obter a sintaxe correta. Todas as outras regras funcionam corretamente.

## Filter all previous rules
*filter

## Loopback address
-A INPUT -i lo -j ACCEPT

## Established inbound rule
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## Management ports
-A INPUT -s x.x.x.x/24 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/23 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s x.x.x.x/23 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/23 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT

## Allow NRPE port (Nagios)
-A INPUT -s x.x.x.x -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT
-A INPUT -s x.x.x.x -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT

##Allow FTP

## Default rules
:INPUT DROP [0:0]
:FORWARD DROP
:OUTPUT ACCEPT [0:0]
COMMIT

Seguem as regras que tentei.

##Allow FTP
-A INPUT --dport 21 any -j ACCEPT
-A INPUT --dport 20 any -j ACCEPT

-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT


-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 20 -j ACCEPT
-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 21 -j ACCEPT

-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
    
por IOTAMAN 09.07.2009 / 15:59

3 respostas

40

Este é o documento para o qual eu indico as pessoas para que possam seguir o protocolo FTP: link

  • Para fazer FTP de modo ativo, você precisa permitir conexões de entrada para a porta TCP 21 e conexões de saída da porta 20.
  • Para fazer FTP de modo passivo, você precisa permitir conexões de entrada para a porta TCP 21 e conexões de entrada para uma porta gerada aleatoriamente no computador servidor (necessitando usar um módulo conntrack no netfilter)

Você não tem nada de novo: sua cadeia de saída em sua postagem, então incluirei isso aqui também. Se a sua cadeia OUTPUT for default-drop, isso é importante.

Adicione estas regras à sua configuração do iptables:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

Para suportar FTP no modo passivo, você precisa carregar o módulo ip_conntrack_ftp na inicialização. Descomente e modifique a linha IPTABLES_MODULES no arquivo / etc / sysconfig / iptables-config para ler:

IPTABLES_MODULES="ip_conntrack_ftp"

Salve a configuração do iptables e reinicie o iptables.

service iptables save
service iptables restart

Para descartar completamente o VSFTPD como sendo um problema, pare o VSFTPD, verifique se ele não está escutando na porta 21 com um "netstat -a" e, em seguida, execute um:

nc -l 21

Isso iniciará o netcat escutando na porta 21 e fará eco na entrada do seu shell. De outro host, TELNET para a porta 21 do seu servidor e verifique se você obtém uma conexão TCP e se você vê a saída no shell ao digitar a conexão TELNET.

Finalmente, faça backup do VSFTPD, verifique se ele está escutando na porta 21 e tente se conectar novamente. Se a conexão com o netcat funcionou, suas regras do iptables estão corretas. Se a conexão com o VSFTPD não funcionar depois do netcat, então algo está errado com a configuração do VSFTPD.

    
por 09.07.2009 / 16:19
0

Tente esta regra. Nota: $EXTIP é o seu endereço IP externo para o servidor FTP.

-A INPUT -i $EXTIP -m state --state NEW,ESTABLISHED,RELATED -p TCP -s 0.0.0.0 -d $EXTIP --dport 21 -j ACCEPT
    
por 09.07.2009 / 16:13
0

No meu caso, estava faltando o módulo do kernel ip_conntrack_ftp. Precisa ser carregado. Então você pode tentar isso:

modprobe ip_conntrack_ftp

E também adicione ip_conntrack_ftp a / etc / modules para que funcione após o reinício

    
por 22.02.2017 / 14:37