
Intento bloquear todos los puertos excepto 22, 80 y 443. Agregué las siguientes reglas a 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
El puerto 22 está funcionando, pero Cloudflare no puede conectarse al servidor web. -A INPUT -j DROP
causa el problema. De hecho, la conexión 443 no coincide con una regla hasta el final de la lista.
Respuesta1
Entonces, después de una larga sesión de comentarios, esto es lo que hemos reunido:
Cuando habilitó su firewall personalizado, CloudFlare informó un tiempo de espera de puerta de enlace 504. Pero en particular, dijo que ese era el error que recibió de su servidor, no que se agotó el tiempo de espera al intentar comunicarse con su servidor. La diferencia es sutil pero importante: esto significa que CloudFlare estaba hablando bien con su servidor, pero su servidor no hablaba solo.
Tiene un servidor web que actúa como proxy de una aplicación web interna que se ejecuta en localhost. Pero su firewall personalizado no permitía conexiones de host local. Esto es necesario para que el servidor web se comunique con la aplicación web, así como para que muchos otros servicios internos se comuniquen entre sí, de modo que cada constructor de firewall profesional que pueda utilizar simplemente permitirá el tráfico del host local sin lugar a dudas.
(PD: debe dejar ICMP habilitado para evitar otros tipos de fallas, como Path MTU Discovery).