
22, 80, 443을 제외한 모든 포트를 차단하려고 합니다 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
포트 22가 작동 중이지만 Cloudflare가 웹 서버에 연결할 수 없습니다. -A INPUT -j DROP
문제가 발생합니다. 실제로 443 연결은 목록이 끝날 때까지 규칙과 일치하지 않습니다.
답변1
그래서 긴 논평 세션을 거쳐 우리가 정리한 내용은 다음과 같습니다.
사용자 지정 방화벽을 활성화하면 CloudFlare에서 504 게이트웨이 시간 초과를 보고했습니다. 그러나 특히 서버에 도달하는 동안 시간이 초과된 것이 아니라 서버에서 받은 오류라고 말했습니다. 차이점은 미묘하지만 중요합니다. 즉, CloudFlare가 서버와 제대로 통신했지만 서버가 자체와 통신하지 않았음을 의미합니다.
localhost에서 실행되는 내부 웹 애플리케이션을 프록시하는 웹 서버가 있습니다. 그러나 사용자 정의 방화벽은 localhost 연결을 허용하지 않았습니다. 이는 웹 서버가 웹 앱과 통신하고 다른 많은 내부 서비스가 서로 통신하는 데 필요하므로 사용하는 모든 전문 방화벽 빌더는 의심할 여지 없이 단순히 로컬 호스트 트래픽을 허용합니다.
(PS: 경로 MTU 검색과 같은 다른 종류의 손상을 방지하려면 ICMP를 활성화된 상태로 두어야 합니다.)