ICMP
Руководство по ICMP: ping, трассировка и диагностика сети
Узнайте, чем ICMP отличается от портов TCP и UDP, когда разрешать эхо-запросы и как сохранить полезность диагностики, не вызывая злоупотреблений.
- Порт по умолчанию
- ICMP
- Протокол
- ICMP
- Основное назначение
- Диагностика сети
Что такое ICMP?
ICMP, или протокол управляющих сообщений Интернета, передает сообщения управления сетью и ошибки. Он используется такими инструментами, как ping и Traceroute, но не является службой TCP или UDP и не имеет номера порта, как HTTP, SSH или DNS.
ICMP имеет типы и коды, а не порты
Ping использует эхо-запрос ICMP и эхо-ответ. Другие сообщения ICMP сообщают о недостижимых пунктах назначения, превышении времени, необходимости фрагментации и проблемах с маршрутизацией.
Блокировка всех ICMP может помешать устранению неполадок.
Некоторые сообщения ICMP важны для обнаружения MTU пути, проверки задержки, мониторинга и диагностики проблем маршрутизации или брандмауэра.
Как работает ICMP
ICMP работает вместе с IP и сообщает о состоянии сети. Хост, маршрутизатор или межсетевой экран могут отправлять ICMP-сообщения, когда пункт назначения недоступен, срок действия пакета истек в пути, необходима фрагментация или диагностический эхо-запрос требует ответа.
Самый знакомый рабочий процесс ICMP — это ping. Клиент отправляет эхо-запрос, а цель отвечает эхо-ответом. Время прохождения туда и обратно дает быстрый сигнал о достижимости и задержке, но не доказывает, что порт приложения, например 443 или 22, открыт.
Порты ICMP и порты TCP и UDP
ICMP не использует номера портов TCP или UDP. Он использует типы и коды сообщений. Вот почему руководство ICMP не следует рассматривать как обычную статью об открытых портах: вы решаете, разрешать ли определенные сообщения ICMP, а не прослушивает ли демон номерной порт.
Средство проверки портов проверяет доступность службы TCP или UDP. Ping проверяет доступность ICMP. Оба полезны, но отвечают на разные вопросы. Сервер может блокировать пинг, пока работает HTTPS, или отвечать на пинг, когда каждый порт приложения закрыт.
Пинг против трассировки
Ping проверяет, отвечает ли цель на эхо ICMP и сколько времени занимает обратный путь. Это полезно для быстрой проверки доступности, мониторинга зондов и определения базовых показателей задержки.
Traceroute отображает путь, отправляя пакеты с увеличивающимися значениями TTL и считывая сообщения о превышении времени ICMP от маршрутизаторов на этом пути. Некоторые платформы используют зонды UDP или TCP для трассировки маршрута, но сообщения ICMP по-прежнему играют центральную роль в том, сколько средств диагностики путей сообщают о промежуточных прыжках.
Когда следует разрешить ICMP
Разрешите ICMP, когда системам мониторинга, балансировщикам нагрузки, сетевым группам или операционному персоналу необходимы сигналы доступности и задержки. Для внутренних сетей разрешение контролируемого ICMP часто улучшает устранение неполадок и уменьшает «слепые зоны».
Для общедоступных систем многие команды разрешают ограниченные эхо-ответы от надежных источников мониторинга и допускают важные сообщения об ошибках, такие как поведение, требующее фрагментации или недоступность пункта назначения. Точная политика должна соответствовать границе вашей сети, состоянию DDoS и потребностям наблюдения.
Перед изменением правил межсетевого экрана ICMP
Прежде чем блокировать или разрешать ICMP, решите, какие сообщения вы контролируете. Эхо-запрос, эхо-ответ, превышение времени, недостижимость пункта назначения и слишком большой размер пакета имеют различное влияние на работу.
Избегайте полной блокировки, если вы не понимаете компромисс. Блокировка всех ICMP может нарушить обнаружение MTU пути, скрыть полезные ошибки маршрутизации, сделать мониторинг менее точным и заставить команды отлаживать более слабые сигналы.
Как управлять ICMP в Windows, Linux и облачных брандмауэрах
В Windows брандмауэр Защитника Windows имеет предопределенные правила эха ICMP, которые можно включить для выбранных профилей и исходных адресов. По возможности применяйте правила к доверенным сетям вместо включения широких общедоступных ответов на запросы ping по умолчанию.
В Linux группы nftables, iptables, firewalld и облачной безопасности могут разрешать или ограничивать ICMP по типу. Многие дистрибутивы также предоставляют настройки ядра sysctl для поведения эха, но политика брандмауэра обычно является более четкой контрольной точкой.
На облачных платформах группы безопасности часто рассматривают ICMP отдельно от TCP и UDP. Проверьте как входящие, так и исходящие политики, и помните, что балансировщики нагрузки, границы CDN и элементы управления DDoS поставщика могут обрабатывать ICMP иначе, чем межсетевые экраны экземпляров.
- Диагностика: разрешите достаточно ICMP для проверки связи, трассировки маршрута, обнаружения MTU пути и видимости ошибок, где это необходимо.
- Определение области действия: ограничить публичные эхо-ответы доверенными источниками мониторинга, когда широкая видимость не требуется.
- Ограничения скорости: используйте ограничение скорости или защиту границ, чтобы снизить риск наводнения без удаления всей диагностики.
- Проверка: проверьте доступность ICMP и порты приложений, поскольку они отвечают на разные вопросы.
Как протестировать ICMP
Используйте команду ping для проверки эхо-запроса и ответа. Используйте трассировку или трассировку, чтобы проверить путь и определить, где останавливаются пакеты, учитывая, что некоторые маршрутизаторы намеренно подавляют ответы ICMP или ограничивают их скорость.
Если проверка связи не удалась, но приложение работает, ICMP может быть заблокирован, тогда как TCP или UDP разрешены. Если проверка связи работает, но приложение завершается сбоем, цель доступна на сетевом уровне, но конкретный порт службы, правило брандмауэра, прослушиватель или приложение могут быть повреждены.
Распространенные случаи устранения неполадок ICMP
Если время пинга истекло, цель может быть недоступна, маршрут может отсутствовать, эхо ICMP может быть заблокировано или промежуточный брандмауэр может отбрасывать сообщение. Тайм-ауты не доказывают автоматически, что хост находится в автономном режиме.
Если трассировка маршрута останавливается на прыжке, этот переход может фильтровать ответы с истекшим сроком TTL или диагностику ограничения скорости. Если при больших передачах происходит сбой, а небольшие запросы выполняются, проверьте обнаружение MTU пути и блокируются ли сообщения со слишком большим пакетом.
Контрольный список безопасности для ICMP
Разрешите ICMP намеренно, а не рефлекторно блокируйте все. Ограничивайте скорость эхо-трафика, при необходимости ограничивайте публичные ответы и сохраняйте важные сообщения об ошибках, необходимые для стабильной работы сети.
Отслеживайте необычный объем ICMP, поддельные источники и схемы флуда на периферии. Для чувствительных сетей сочетайте политику ICMP с сегментацией и надежным мониторингом, а не полагайтесь на видимость ping как на границу безопасности.
Частые вопросы
Какой порт использует ICMP?
ICMP не использует порты TCP или UDP. Он использует типы и коды сообщений, такие как эхо-запрос и эхо-ответ для проверки связи.
Является ли ping тем же самым, что и проверка порта?
Нет. Ping проверяет доступность ICMP. Проверка порта проверяет, доступна ли служба TCP или UDP. Хост может ответить на ping, пока все порты приложений закрыты, или заблокировать ping, пока приложения все еще работают.
Должен ли я заблокировать ICMP?
Не блокируйте все ICMP по умолчанию, не понимая последствий. Контролируемый ICMP помогает отслеживать, отслеживать маршрут, обнаруживать MTU пути и устранять неполадки. Вместо этого, где это возможно, ограничивайте объем или скорость.
Почему пинг не работает, но сайт работает?
Сервер или сеть могут блокировать эхо ICMP, но разрешать HTTP или HTTPS. Проверьте фактический порт приложения, чтобы убедиться в доступности службы.