Quero permitir o tráfego FTP recebido.
CentOS 5.4:
Este é o meu /etc/sysconfig/iptables
arquivo.
# Generated by iptables-save v1.3.5 on Thu Oct 3 21:23:07 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [133:14837]
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
COMMIT
# Completed on Thu Oct 3 21:23:07 2013
Além disso, por padrão, o módulo ip_conntrack_netbios_n está sendo carregado.
#service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
Mas o problema não está nesse módulo, pois tentei descarregá-lo e ainda não tive sorte.
Se eu desativar o iptables, posso transferir meu backup de outra máquina para o FTP. Se o iptables estiver sendo aplicado, a transferência falhou.
fonte
--sport 1024: and --dport 1024:
significa que estamos incluindo todas as portas no intervalo1024:32535
que são portas sem privilégios, o que significa que usuários sem acesso privilegiado podem usá-las para testar seus aplicativos.--sport
um modo não privilegiado para problemas particulares de firewall e permitir que os clientes se conectem ao servidor.NEW,ESTABLISHED
mas isso não deve importar. Uma conexão está sempre sempre em umNEW
estado e, em seguida, salta para oRELATED
que indica que essa conexão está relacionada a uma conexão já permitida. Quando a conexão muda para oESTABLISHED
estado, informa que uma conexão foi estabelecida nos dois lados (servidor / cliente). Você pode tentar-m state --state ...
.NEW
fato realmente importa. Parece não funcionar sem ele.--sport 1024:
. Por que a porta do cliente seria útil para a regra? Se ele se conectar de uma porta 80 às portas passivas do servidor, ele também deverá se conectar.Eu já vi regras tão extensas em vários blogs, etc., e me perguntei por que não usar simplesmente
junto com o
nf_conntrack_ftp
módulo. Isso é mais conciso e legível, o que geralmente é uma coisa boa, especialmente com firewalls ...FWIW, parece que houve uma alteração no kernel 4.7, de modo que você precisa configurar
net.netfilter.nf_conntrack_helper=1
viasysctl
(por exemplo, colocá-lo/etc/sysctl.d/conntrack.conf
) ou usar(veja aqui para mais detalhes)
fonte
echo "1" > /proc/sys/net/netfilter/nf_conntrack_helper
e tudo funciona como esperado.Cliente FTP:
SERVIDOR FTP:
Para alternar entre o modo passivo e ativo no lado do cliente
fonte
Adicionar NEW corrigiu, acredito.
Agora, meu arquivo iptables fica assim ..
Digitando como resposta, já que muitos caracteres não são permitidos nos comentários. Muito obrigado por sua ajuda.
fonte
--dport 20:65535
está deixando todas as portas de 20 a 65535 abertas a partir de qualquer porta de origem entre 1024: 65535, o que deixa muitos serviços expostos que provavelmente não deveriam, a menos que explicitamente permitido. Eu acredito que o que se pretendia é--dport 1024:65535
Se você precisar de conexões ativas e passivas e já aceitar
ESTABLISHED
conexões, como:Então você só precisa abrir a porta 21 e adicionar uma regra especial para portas passivas. Nenhuma regra é necessária para a porta 20, pois ela já é aceita pela
ESTABLISHED
regra acima.Primeiro aceite novas conexões em
port 21
:Em seguida, adicione o auxiliar CT para portas passivas
1024:
:Veja também:
Nota: você deve definir o
1024:
como no seu servidor FTP: procure as portas passivas padrão na sua configuração de FTP. Caso contrário, você abriria muitas portas que podem não ser relativas ao FTP.Nota importante: eu não adicionei
OUTPUT
regras conforme meus padrõesiptables -P OUTPUT ACCEPT
. Significando que eu confio no que está saindo da minha caixa. Essa pode não ser uma boa opção, especialmente em uma configuração de NAT.Nota muito importante: o FTPS não funcionará com essa configuração, pois a porta passiva está oculta (criptografada), portanto, não há como
iptables
adivinhar a boa porta. Consulte Alterando IPTables para permitir FTP através de TLS usando portas passivas e https://serverfault.com/questions/811431/are-my-iptables-for-ftps-with-tls-okfonte