
Tento bloquear todas as portas, exceto 22, 80 e 443. Adicionei as seguintes regras ao iptables
.
*filter
:INPUT ACCEPT [36878:18003219]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [33947:26518456]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -s MY_IP -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -j DROP
COMMIT
A porta 22 está funcionando, mas o Cloudflare não consegue se conectar ao servidor web. -A INPUT -j DROP
causa o problema. Na verdade, a conexão 443 não corresponde a uma regra até o final da lista.
Responder1
Então, depois de uma longa sessão de comentários, aqui está o que reunimos:
Quando você habilitou seu firewall personalizado, CloudFlare relatou um 504 Gateway Timeout. Mas, notavelmente, ele disse que esse foi o erro recebido do seu servidor, e não que o tempo expirou ao tentar acessar o seu servidor. A diferença é sutil, mas importante: isso significa que o CloudFlare estava se comunicando bem com o seu servidor, mas o seu servidor não estava se comunicando consigo mesmo.
Você tem um servidor web que faz proxy para um aplicativo web interno em execução no host local. Mas o seu firewall personalizado não permitiu conexões localhost. Isso é necessário para que o servidor da web se comunique com o aplicativo da web, bem como para que muitos outros serviços internos se comuniquem entre si, de modo que todo construtor de firewall profissional que você possa usar simplesmente permitirá o tráfego do host local sem questionar.
(PS: Você deve deixar o ICMP ativado para evitar outros tipos de quebra, como Path MTU Discovery.)