이 질문은 부분적으로 설명하는 이 답변 에서 영감을 얻었습니다.
일반 방화벽 매니페스트 파일은 내가 다른 방법으로 허용하지 않은 모든 항목을 삭제하여 종료됩니다 (ICMP 제외. ICMP를 끄지 마십시오).
하지만 방화벽이 ICMP를 허용하는 것이 정말로 좋은 방법입니까? 보안에 미치는 영향은 무엇이며 ICMP를 꺼야하는 경우가 있습니까?
댓글
- I ' 다른 많은 이유가 있지만 그 중 하나는 원격 관리를 악몽으로 만듭니다.
- '는 " ' 네트워크의 신이 아니고 ' 당신이 무엇을하고 있는지 잘 아는 경우가 아니면 ' 그것을 엉망으로 만들지 마세요 ".
- IMO,이 규칙은 ICMP뿐만 아니라 전체 방화벽에 적용됩니다. .
- 참조 : 인터넷 끊기 중지!
- RFC 4890 : ietf.org/rfc/rfc4890.txt 및이 초안 RFC : datatracker.ietf.org/doc/draft-ietf-opsec-icmp- 필터링 / … … 둘 다 ICMPv4 및 ICMPv6 패킷을 필터링하는 방법에 대한 자세한 조언을 제공합니다.
답변
다른 IP 프로토콜에 비해 ICMP는 상당히 작지만 많은 다른 기능을 제공합니다. 핵심 ICMP는 IP에 대한 디버깅, 문제 해결 및 오류보고 메커니즘으로 설계되었습니다. 이것은 매우 가치가 있으므로 많은 생각이 필요합니다. 모든 크론 항목 끝에 >/dev/null 2>&1
를 붙이는 것과 비슷합니다.
사람들에게 ICMP 차단에 대해 이야기 할 때 대부분의 경우 실제로 ping과 traceroute에 대해 이야기합니다. 이것은 3 가지 유형으로 번역됩니다.
- 0-Echo Reply (ping 응답)
- 8-Echo Request (ping 요청)
- 11-Time Exceeded
16 개 중 3 개 유형입니다. 사용 가능한 다른 ICMP 유형 몇 가지를 살펴 보겠습니다.
- 4-Source Quench (라우터가 호스트에 전송 속도를 늦추도록 요청)
- 3-Destination Unreachable (조각화 문제보고에서 방화벽까지 16 가지 종류의 메시지로 구성됨) 포트가 닫 혔음을보고)
둘 다 악성이 아닌 호스트가 네트워크에서 제대로 작동하도록 유지하는 데 매우 유용 할 수 있습니다. 실제로 두 가지가 있습니다 (아마 더 많지만 가장 분명한 것은 나에게) ICMP를 제한하고 싶지 않는 아주 좋은 경우.
- 경로 MTU 검색-Don “t Fragment 플래그와 유형 3 코드 4 (Destination Unreachable-Fragmentation required 및 DF flag set)의 조합을 사용하여 호스트 간 경로에서 가장 작은 MTU를 결정합니다. 이렇게하면 전송 중에 조각화를 방지 할 수 있습니다.
- Active Directory는 클라이언트가 GPO를 풀다운하기 위해 도메인 컨트롤러를 ping해야합니다. 그들은 ping을 사용하여 “가장 가까운”컨트롤러를 결정하고 응답이 없으면 충분히 가까운 컨트롤러가 없다고 가정합니다. 따라서 정책 업데이트가 일어나지 않습니다.
모든 사람이 볼 수 있도록 모든 것을 반드시 열어 두어야한다는 것은 아닙니다. 정찰은 ICMP로 가능 가능하며 일반적으로 차단의 이유입니다. ping을 사용하여 호스트가 실제로 켜져 있는지 확인하거나, Time Exceeds (추적 경로의 일부로)를 사용하여 네트워크 아키텍처를 매핑하거나 Rory가 호스트의 기본 경로를 변경하기 위해 리디렉션을 금지 (유형 5 코드 0) 할 수 있습니다.
모든 것을 감안할 때 제 조언은 항상 그렇듯이 신중하고 신중한 보호 조치를 취하는 것입니다. ICMP를 완전히 차단하는 것이 최선의 방법은 아니지만 차단하는 무엇 과 어디 에서 /에서 차단하는 것을 선택하고 선택하면 원하는 것을 얻을 수 있습니다.
설명
- 작은 세부 정보 : ICMP는 IPv4에서 선택 사항이지만 IPv6에서 정상적으로 작동하려면 필수입니다. ICMP의 역할은 많이 바뀌 었습니다. 간략히 읽어보세요 : blogs.cisco.com/security/icmp-and-security-in-ipv6
- @Mike 오 물론입니다. 저는 ' 명확하지 않았지만 특별히 v4에 대해 이야기하고있는 것 같습니다. IPv6는 v6 네트워크를 설계하고 보호 할 때 완전히 다른 프로토콜로 처리해야 할만큼 충분히 다른 동물입니다.
- +1 " .. . or Rory forbid … " 실제로 크게 웃었습니다.
- @tylerl : 저도 글을 쓰는 것도 웃었습니다. 와인을 마셨고 취침 시간보다 1.5 시간이 지났습니다.
- Source Quench는 공식적으로 지원이 중단되었습니다 ( RFC 6633 ). 그리고 수십 년 동안 인터넷에서 거의 볼 수 없었습니다.
답변
ICMP는 어떤 이유로 존재하며 모든 이유가 . 네트워크 자체에 대한 제어 메시지를 전달하는 데 사용되는 “메타”프로토콜입니다. Wikipedia의 ICMP 에서 무엇을 더 잘 이해하고 있는지 확인하세요. 다른 ICMP 메시지에는 도달 할 수없는 대상 호스트, 조각화 필요, 혼잡 제어, TTL 초과, IP 프로토콜 오류 및 기타 여러 메시지도 포함됩니다.
네트워크는 ICMP없이 작동합니다. 패킷 드롭에 대한 복원력은 IP의 핵심 강점 중 하나입니다. 그러나 문제를 진단하고 해결하는 데 도움이되는 이러한 신호의 이점없이 더 느리고 덜 효율적으로 작동합니다. .
ICMP의 보안 문제는 더 모호한 “정보 공개”문제인 경향이 있습니다. 예를 들어 라우터가 ICMP 메시지를 누군가에게 다시 보내면 누군가가 라우터가 있다는 것을 알고 있습니다. 공격자가 귀하를 알고있을 수도 있습니다. 라우터가 있다는 것은 당신이 걱정하거나 그렇지 않을 가능성이 더 큽니다.하지만 보안 연구는 단지 침묵의 측면에서 오류를 일으키는 경향이 있습니다. 혹시라도 안전한 편입니다.
때로는 OS에 ICMP와 관련된 “Ping of Death”스타일 취약점이 있습니다. 현재 주류 OS에는 존재하지 않습니다. 그러나 다시 한 번, 보안 옹호자들은 만일을 대비하여주의를 기울입니다.
댓글
- 당신 ' 틀렸지 만 일반 사용자 / 관리자는 ICMP를 차단해서는 안된다는 점에 동의합니다. ICMP에는 여러 가지 중요한 보안 문제가 있습니다. 주된 문제는 목적지뿐만 아니라 중간 홉에 의해서도 전송되는 제어 수준 피드백 (ttl-exceeded)이 있다는 것입니다. 특성 (초기 TTL, IP 플래그 및 더 중요한 것은 IP)에 따라 디바이스 핑거 프린팅에 사용할 수 있습니다. ICMP 메시지의 ID). 또한 ICMP 메시지는 방화벽 통과에 대한 피드백이 될 수 있으며 TCP 창 확인 방화벽과 결합하여 시퀀스 번호 추론 공격을 수행 할 수 있습니다.
Answer
솔직히 말해서 라우터 수준과 소프트웨어 방화벽 수준 모두에서 일부 아웃 바운드 ICMP를 추가 보안 계층으로 필터링하는 것이 현명합니다.
내가 중지하는 것과 관련이 없습니다. DoS 또는 DDoS이지만 악의적 인 사람들은 여전히 ICMP를 사용하여 네트워크를 위반하기 전에 가능한 한 많은 정보를 검색하고 검색합니다.
나는 그들이 ICMP만을 사용한다고 말하는 것은 아니지만 이것이 소수 중 하나입니다. 그들이 사용하는 패킷 유형과 “플러드 게이트가 열려 있는지 여부에 따라 매우 짧은 시간에 정보에 대한 자세한 정보를 얻을 수 있습니다.
시간을내어 Google에 시간을내어 NMAP 및 정보 수집을위한 리소스 중 하나로 ICMP를 사용하는 다른 프로그램은 거의 없으며 자신을 보호하고
가능한 경우 내부 테스트 네트워크를 설정합니다 (개인적으로 보조 Wi-Fi 라우터를 저렴한 라우터로 구입하고 내 라우터 / ipchain / 소프트웨어 방화벽을 모두 테스트 할 수있는 보조 PC를 방화벽으로 사용). 내 가정과 네트워크 보안을 위해 나를 고용 한 고객을 위해 기본 네트워크를 통해 설정을 사용하기 전에 설정합니다.
나는 사람들이 포트 검색 및 방화벽을 위반하는 방법에 대해 조사하고 수행 할 것을 적극 권장합니다. 자신과 자신이 돕고있는 가족을 더 잘 보호 할 수 있도록 자체 네트워크를 구축했습니다.
다음은 이전에 친구를 사용하고 추천 한 몇 가지 리소스입니다. Sans Information Security ICMP가 정찰에 사용되는 방법
또한
일부 공격은 더 이상 실행 가능하지 않지만 프로그래머가 원래 공격을 다시 코딩 할 수 있었기 때문에 여전히 작동하는 새로운 형태의 Smurf가 있습니다. 작동 방식을 변경하고 리소스를 사용합니다.
Google은 Stack Exchange와 함께 당신의 친구입니다. 또한 duckduckgo 검색 엔진은 Google이 걸러 낼 수있는 리소스에 훌륭합니다. p>
저는 22 년 동안 PC 기술로 일했고 10 년 동안 네트워크 보안 전문가로 일했습니다. 저는 현재 ECH와 CPTS에 참여하고 있으며이 과정을 마치면 공격 보안 과정을 살펴보고 있습니다.
이 시스템에 내가 만든 백업을 복원 할 때이 정보가 도움이되고 다른 사람들이이 정보를 유용하게 사용하기를 바랍니다.이 문제에 대한 다른 링크와 리소스를 찾아이 답변을 업데이트하겠습니다.
답변
ICMP를 차단하는 것은 쓸모가 없을뿐만 아니라 대부분의 경우 유해합니다. 자신이 무엇을하고 있는지, 특히 왜하고 있는지 확실하지 않은 경우 ICMP를 차단해서는 안되는 몇 가지 이유가 있습니다. 예 icmp ping은 다른 사람들이 네트워크를 “프로파일”하는 데 도움이 될 수 있습니다. 그러나 솔직히 말해서 tcp 서비스가 열려 있으면 볼 수 있습니다. 패킷을 삭제하면 표시됩니다. 당신이 잘못된 방식으로 응답하면 당신이 보일 것입니다.따라서 중요한 서버를 네트워크에 숨겨야한다는 이론을 믿으면 더 안전하게 만들 수 있으므로 icmp를 차단하면 호스트가 훨씬 더 밝은 대상이 될 가능성이 높아집니다. mtu 경로 검색, 혼잡 제어 등을 중단하고 서버를 대량에서 돋보이게 만들 수 있도록 잘못된 작업을 수행하는 수많은 방법이 있습니다. 따라서 너트 셀에서 실제로 할 이유가 없다면 icmp를 차단하지 말고 신중하게 수행하고 icmp 프로토콜 사양을 읽고 자신이 무엇을 왜하고 있는지 이해하십시오. 예, 오래된 커널이 있는지 확실하지 않은 경우 네트워크 가장자리에서 icmp 리디렉션을 차단하는 것이 좋습니다. 그러나 다른 한편으로는 누군가가 어쨌든 버그를 찾을 수있는 카펫 아래에 숨기는 것보다 서버와 다른 호스트를 업데이트 (실제 문제 해결)하는 것이 더 낫습니다.
답변
프로토콜 구조에서 알 수 있듯이 모든 것은 사용되는 영역과 방화벽에 따라 다릅니다. 유형 및 코드 매개 변수에 따라 작동 할 수 있으므로 방화벽을 통과 할 대상과 통과하지 않을 대상을 결정할 수 있습니다. 분명히 방화벽이 ICMP Echo 요청을 수신하고 대상 호스트가 활성 상태인지 여부를 알리는 데 문제가없는 경우 방화벽은 Echo Reply를 통과 할 수 있어야합니다. 그러나주의하십시오 : ICMP 패킷은 DPI를 받아야합니다. 즉, 패킷 사양과 일치해야합니다. ICMP 패킷이 수신 / 발신 방화벽을 통과하고 네트워크 내부의 하나 이상의 호스트에 맬웨어가있는 경우 이러한 호스트는 C & C 서버에서 명령을 얻고 해당 서버로 정보를 유출 할 수 있습니다. 일반적으로 경계 라우터에서 사용하는 것이 현명하지 않다고 생각하지만 내부 네트워크 진단에는 그렇습니다.