Um conjunto de regras iptables para um proxy reverso Nginx de alto volume (ou: como usar o NOTRACK para http e https)?

2

Estou procurando um conjunto mínimo de regras do iptables para um proxy reverso Nginx / Varnish de volume bastante alto. Eu gostaria de fechar o servidor, de modo que apenas as portas 80 e 22 estejam abertas para conexões do lado de fora.

Além disso, gostaria de excluir o tráfego nas portas 80 do rastreamento de conexão, já que a lista de conexões tende a crescer. Por outro lado, gostaria de ter a liberdade de usar o rastreamento de conexão para outras coisas.

Como é possível implementar um conjunto de regras mínimo que exclua o tráfego HTTP e HTTPS nas portas 80 e 443 do rastreamento de conexão?

Este é o meu conjunto de regras básicas:

iptables -F INPUT
iptables -P INPUT DROP
iptables -i lo -A INPUT -j ACCEPT
iptables -i eth0 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -i eth0 -A INPUT -p TCP --dport 22 -j ACCEPT
iptables -i eth0 -A INPUT -p TCP --dport 80 -j ACCEPT

iptables -i eth0 -A INPUT -p ICMP -j ACCEPT

O servidor executa Nginx no IP público (10.0.0.1 por causa deste exemplo) nas portas 80 e 443. O Nginx fala com um verniz em 10.0.0.1:8080. O verniz fala com um servidor web em outra máquina (10.0.0.2:80). Este servidor da Web de back-end precisa responder ao Varnish para limpar as URLs.

Eu tentei coisas como

iptables -F PREROUTING -t raw
iptables -F OUTPUT -t raw
iptables -t raw -A PREROUTING -p TCP --dport 80 -j NOTRACK
iptables -t raw -A OUTPUT -p TCP --sport 80 -j NOTRACK
iptables -t raw -A PREROUTING -p TCP --dport 8080 -j NOTRACK
iptables -t raw -A OUTPUT -p TCP --sport 8080 -j NOTRACK

e variações com IPs de origem ou de destino explicitamente mencionados, mas ele quebrou o servidor (bloqueando algum tráfego) ou não conseguiu remover todo o tráfego HTTP do rastreamento de conexão.

    
por flight 09.11.2012 / 18:11

0 respostas