답변1
GCP 방화벽 규칙 페이지의 스크린샷에서 볼 수 있듯이 보안상의 이유로 방화벽 규칙에서 ICMP 프로토콜을 제거해야 합니까? 공격받을 확률이 줄어들까요?
이에 대해서는 다양한 의견이 있지만 ICMP 패킷을 허용하는 것은 일반적으로 보안 위험으로 간주되지 않습니다.
CentOS 7을 사용하고 있습니다. /etc/sysctl.d에 net.ipv4.icmp_echo_ignore_all=1을 추가했습니다. 이는 GCP 방화벽 규칙 페이지에서 ICMP 프로토콜을 제거하는 것과 동일한 효과가 있나요?
아니요. ICMP 요청에는 다양한 유형이 있습니다. 핑이나 에코 요청은 그 중 하나일 뿐입니다. 이 설정은 icmp_echo_ignore_all
핑 응답만 비활성화하는 반면, 방화벽에서 ICMP를 차단하면 모든 ICMP 트래픽, 핑 및 기타 모든 트래픽이 차단됩니다. ICMP 패킷이 제대로 작동해야 하는 경우가 있기 때문에 이로 인해 문제가 발생할 수 있습니다.
답변2
ICMP에서 누출 유형 메시지를 허용하는 것에 대해 많은 논의가 있습니다. 그러나 ICMPv6에서는 강화되었으므로 이러한 메시지와 관련된 모든 CVE가 더 이상 사용되지 않을 수 있습니다(참조핑에 대한 CVE그리고타임스탬프에 대한 CVE).
ping 유틸리티는 시스템에 대한 정보를 제공합니다. 주로 일어납니다. 웹사이트와 같은 다른 서비스가 있는 경우 해커는 어쨌든 귀하의 시스템이 작동 중이라는 것을 알게 됩니다.
타임스탬프는 컴퓨터의 현재 시간을 반환합니다. 많은 시스템이 현재 시간을 사용하여 난수를 생성하기 때문에 이는 나쁜 습관으로 간주됩니다. 나는 대부분의 시스템이 클라이언트 액세스 가능 서비스를 대상으로 하지 않는다고 생각합니다(즉, 나는 여전히 time_t now = time(nullptr); srand(now);
단위 테스트에 이 시스템을 사용하고 있으며 완전히 안전합니다).
마찬가지로 ICMP 메시지를 차단하여 타임스탬프를 숨기려는 시도는 도움이 되지 않을 것입니다. 동일한 서버의 웹페이지를 방문하면 Date: ...
현재 시간이 포함된 필드가 표시됩니다 . 충분히 클릭하면 웹 서버의 날짜와 시간에 대한 매우 가까운 근사치를 확인할 수 있습니다.
관심 있는 분들을 위해 핑 및 타임스탬프 차단 규칙은 다음과 같습니다.
-A INPUT --ipv4 -i eth0 -p icmp -m icmp --icmp-type echo-request -j DROP
-A INPUT --ipv4 -i eth0 -p icmp -m icmp --icmp-type timestamp-request -j DROP
위에서 언급했듯이 아마도 사용하고 싶지 않을 것입니다. Ping은 실제로 시스템이 제대로 작동하는지 테스트하는 데 유용합니다. Ping을 차단하는 것은 최선의 방법이 아닙니다.
지원되는 ICMP 유형의 전체 목록을 보려면 다음을 사용하세요.
$ iptables -p icmp -h
$ ip6tables -p icmpv6 -h