Como proibir o acesso externo a 127.0.0.1? [fechadas]

4

Eu uso o soquete tcp em 127.0.0.1:9000 para conectar o nginx ao php5-cgi. No entanto, quero ter certeza de que nenhuma solicitação extrna possa ser feita para esse IP, para que nenhum invasor possa ofuscar o IP e ignorar o nginx para fazer coisas desagradáveis com o php.

Agora eu estou querendo saber se é realmente possível fazer tal exploit, e se sim, como posso evitá-lo usando o iptables?

    
por wbad 14.01.2015 / 08:37

2 respostas

21

Geralmente, não é possível acessar serviços vinculados apenas a localhost de endereços externos. SF é razoavelmente replete com perguntas perguntando como reverter esse estado de coisas, e a calistenia necessário para fazer isso não é trivial, precisamente porque todo o conceito de ligação apenas para localhost é projetado para dar-lhe essa segurança sem mais delongas.

    
por 14.01.2015 / 08:50
5

Você pode criar uma regra de firewall para bloquear esse tráfego, mas é muito mais fácil ativar a filtragem de caminho inverso.

(root)$ echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter

A filtragem de caminho reverso usa tabelas de roteamento para filtrar endereços falsos em pacotes de entrada.

Você pode habilitar isso por padrão em todas as interfaces adicionando o seguinte ao /etc/systcl.conf:

net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

Mais informações: link

No entanto ...

Como já mencionado por MadHatter, isso é completamente desnecessário para 127.0.0.1/8. (Se você quiser, você pode registrar esses pacotes usando net.ipv4.conf.all.log_martians = 1 ).

    
por 14.01.2015 / 09:32