iptables não permitindo loopback quando a porta é especificada

1

Estou tentando configurar o iptables para permitir conexões de uma conexão remota para acessar o mongodb na porta 27017. abaixo estão minhas regras

  ACCEPT     tcp  --  any    any     anywhere  anywhere    tcp dpt:27017

*reject_all_else here*

Isso funciona bem para conexões remotas, mas não consegue se conectar na interface de loopback. Adicionando abaixo com porta não funciona.

iptables -I INPUT 1 -i lo -p tcp --dport 27017 -j ACCEPT

Mas permitir todo o loopback sem especificar portas faz. O loopback muda as portas ou faz algo estranho?

iptables -I INPUT 1 -i lo -p tcp -j ACCEPT

tcmdump abaixo

[root@localhost ~]# tcpdump -i lo -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
17:19:49.528039 IP 127.0.0.1.59372 > 127.0.0.1.27017: Flags [S], seq 2525021556, win 43690, options [mss 65495,sackOK,TS val 10984445 ecr 0,nop,wscale 7], length 0
20:57:14.735029 IP 127.0.0.1.27017 > 127.0.0.1.59372: Flags [S.], seq 1048378415, ack 2525021557, win 43690, options [mss 65495,sackOK,TS val 10984445 ecr 10984445,nop,wscale 7], length 0
17:19:49.528102 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable - admin prohibited, length 68
17:19:50.531012 IP 127.0.0.1.59372 > 127.0.0.1.27017: Flags [S], seq 2525021556, win 43690, options [mss 65495,sackOK,TS val 10985448 ecr 0,nop,wscale 7], length 0
22:09:02.588230 IP 127.0.0.1.27017 > 127.0.0.1.59372: Flags [S.], seq 1064049928, ack 2525021557, win 43690, options [mss 65495,sackOK,TS val 10985448 ecr 10985448,nop,wscale 7], length 0
17:19:50.531066 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable - admin prohibited, length 68
17:19:52.535030 IP 127.0.0.1.59372 > 127.0.0.1.27017: Flags [S], seq 2525021556, win 43690, options [mss 65495,sackOK,TS val 10987452 ecr 0,nop,wscale 7], length 0
00:32:29.704695 IP 127.0.0.1.27017 > 127.0.0.1.59372: Flags [S.], seq 1095362915, ack 2525021557, win 43690, options [mss 65495,sackOK,TS val 10987452 ecr 10987452,nop,wscale 7], length 0
17:19:52.535109 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable - admin prohibited, length 68
    
por Abhinav Vishak 08.08.2017 / 21:57

2 respostas

2

Em contraste com o que parece, o problema não está se conectando ao serviço: o problema é a resposta.

Acho que falta na sua configuração do Netfilter esta regra padrão importante:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED
    
por 08.08.2017 / 23:39
1

Com base na resposta de Hauke, o seguinte funcionou para mim.

iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

O mongo conseguiu alcançar o mongod através da regra INPUT, mas, como Hauke apontou, a resposta do mongod estava sendo filtrada (ao contrário de uma conexão remota, já que todo o tráfego de saída é permitido).

    
por 08.08.2017 / 23:56

Tags