Red Hat Training

A Red Hat training course is available for RHEL 8

9.10. ICMP 요청 관리

ICMP( Internet Control Message Protocol )는 다양한 네트워크 장치에서 오류 메시지 및 연결 문제를 나타내는 운영 정보를 전송하는 데 사용하는 지원 프로토콜입니다(예: 요청된 서비스를 사용할 수 없음). ICMP 는 시스템 간에 데이터를 교환하는 데 사용되지 않으므로 TCP 및 UDP와 같은 전송 프로토콜과 다릅니다.

안타깝게도 ICMP 메시지, 특히 에코 요청 및 에코 를 사용하여 네트워크에 대한 정보를 공개하고 다양한 유형의 사기 활동에 이러한 정보를 오용할 수 있습니다. 따라서 firewalld 를 사용하면 ICMP 요청을 차단하여 네트워크 정보를 보호할 수 있습니다.

9.10.1. ICMP 요청 나열 및 차단

ICMP 요청 나열

ICMP 요청은 /usr/lib/firewalld/icmptypes/ 디렉터리에 있는 개별 XML 파일에 설명되어 있습니다. 이러한 파일을 읽고 요청에 대한 설명을 확인할 수 있습니다. firewall-cmd 명령은 ICMP 요청 조작을 제어합니다.

  • 사용 가능한 모든 ICMP 유형을 나열하려면 다음을 수행합니다.

    # firewall-cmd --get-icmptypes
  • ICMP 요청은 IPv4, IPv6 또는 두 프로토콜 모두에서 사용할 수 있습니다. ICMP 요청이 사용된 프로토콜을 보려면 다음을 수행합니다.

    # firewall-cmd --info-icmptype=<icmptype>
  • 요청이 현재 차단되었거나 없는 경우 ICMP 요청의 상태는 yes 를 표시합니다. ICMP 요청이 현재 차단되어 있는지 확인하려면 다음을 수행하십시오.

    # firewall-cmd --query-icmp-block=<icmptype>

ICMP 요청 차단 또는 차단 해제

서버에서 ICMP 요청을 차단하면 일반적으로 수행하는 정보를 제공하지 않습니다. 그러나 이는 정보가 전혀 제공되지 않음을 의미하지는 않습니다. 클라이언트는 특정 ICMP 요청이 차단되는 정보를 수신합니다(거부됨). 특히 IPv6 트래픽에서는 통신 문제가 발생할 수 있으므로 ICMP 요청을 차단하는 것은 신중하게 고려해야 합니다.

  • ICMP 요청이 현재 차단되어 있는지 확인하려면 다음을 수행하십시오.

    # firewall-cmd --query-icmp-block=<icmptype>
  • ICMP 요청을 차단하려면 다음을 수행합니다.

    # firewall-cmd --add-icmp-block=<icmptype>
  • ICMP 요청에 대한 블록을 제거하려면 다음을 수행합니다.

    # firewall-cmd --remove-icmp-block=<icmptype>

정보를 제공하지 않고 ICMP 요청 차단

일반적으로 ICMP 요청을 차단하면 클라이언트가 이를 차단하고 있음을 알고 있습니다. 따라서 실시간 IP 주소를 스니핑하는 잠재적인 공격자는 IP 주소가 온라인 상태임을 계속 확인할 수 있습니다. 이 정보를 완전히 숨기려면 ICMP 요청을 모두 삭제해야 합니다.

  • 모든 ICMP 요청을 차단 및 삭제합니다.
  • 영역의 대상을 DROP 으로 설정합니다.

    # firewall-cmd --permanent --set-target=DROP

이제 명시적으로 허용된 트래픽을 제외하고 ICMP 요청을 포함한 모든 트래픽이 삭제됩니다.

특정 ICMP 요청을 차단 및 삭제하고 다른 요청을 허용하려면 다음을 수행합니다.

  1. 영역의 대상을 DROP 으로 설정합니다.

    # firewall-cmd --permanent --set-target=DROP
  2. ICMP 블록 inversion을 추가하여 모든 ICMP 요청을 한 번에 차단합니다.

    # firewall-cmd --add-icmp-block-inversion
  3. 허용하려는 ICMP 요청에 대한 ICMP 블록을 추가합니다.

    # firewall-cmd --add-icmp-block=<icmptype>
  4. 새 설정을 영구적으로 설정합니다.

    # firewall-cmd --runtime-to-permanent

block inversionICMP 요청 블록의 설정을 반전시켜 이전에 차단되지 않은 모든 요청은 영역의 대상이 DROP 으로 변경되므로 차단됩니다. 차단된 요청은 차단되지 않습니다. 즉, 요청 차단을 해제하려면 차단 명령을 사용해야 합니다.

블록 인버전을 완전히 허용 설정으로 되돌리려면 다음을 수행합니다.

  1. 영역의 대상을 기본값 또는 ACCEPT 로 설정합니다.

    # firewall-cmd --permanent --set-target=default
  2. ICMP 요청에 추가된 모든 블록을 제거합니다.

    # firewall-cmd --remove-icmp-block=<icmptype>
  3. ICMP 블록 inversion을 제거합니다.

    # firewall-cmd --remove-icmp-block-inversion
  4. 새 설정을 영구적으로 설정합니다.

    # firewall-cmd --runtime-to-permanent

9.10.2. GUI를 사용하여 ICMP 필터 구성

  • ICMP 필터를 활성화하거나 비활성화하려면 firewall-config 도구를 시작하고, 메시지를 필터링할 네트워크 영역을 선택합니다. ICMP 필터 탭을 선택하고 필터링할 각 ICMP 메시지 유형에 대한 확인란을 선택합니다. 확인란을 지워 필터를 비활성화합니다. 이 설정은 방향에 따라 설정되며 기본값은 모든 것을 허용합니다.
  • ICMP 필터링 을 활성화하려면 오른쪽에 있는 Invert Filter 확인란을 클릭합니다. 표시된 ICMP 유형만 이제 수락되고 다른 모든 유형은 거부됩니다. DROP 대상을 사용하는 영역에서는 해당 대상이 삭제됩니다.