Почему трафик 224.0.0.1 фильтруется хостами Linux?

При отправке эхо-запроса ICMPv4 на адрес назначения, например 224.0.0.1 , он игнорируется хостами Linux, получающими запрос. Используемый MAC-адрес назначения - 01: 00: 5e: 00: 00: 01 .

Единственный способ получить ответ от этих хостов Linux - это установить параметр ядра net.ipv4.icmp_echo_ignore_broadcasts на значение 0 . Что даст указание ядру отвечать как на многоадресные, так и на широковещательные запросы ICMPv4 и открыть дверь для широковещательных угроз безопасности.

Почему многоадресный трафик фильтруется этим параметром? есть ли какая-либо атака, оправдывающая это?

С ICMPv6 и эквивалентным адресом назначения, таким как ff02 :: 1 , трафик не фильтруется хостами Linux. Есть ли риск, что он тоже будет отфильтрован в будущем? Есть ли угроза с ICMPv4, которая не существует с ICMPv6?

Хосты Linux:

  • Дистрибутив Linux: Ubuntu 20.04.1 LTS Focal
  • Ядро Linux: 5.4.0
3
задан 4 October 2020 в 20:05
2 ответа

Я понимаю ваш вопрос, поэтому вы хотели бы заблокировать обработку широковещательных рассылок, но не многоадресных рассылок, из-за возможных угроз безопасности широковещательной рассылки.

Это приводит к вопросу, почему вы рассматриваете широковещательные рассылки опаснее многоадресной рассылки. В конце концов, многоадресный адрес 224.0.0.1 означает «все хосты в этой подсети» ( ссылка ). Это более или менее похоже на широковещательные рассылки , которые также идут на все хосты подсети.

Если говорить дальше, можно даже утверждать, что многоадресная рассылка более опасна, чем широковещательная рассылка, потому что она маршрутизируема. По крайней мере, части диапазонов многоадресных адресов являются маршрутизируемыми (неполный краткий обзор см. здесь ), что означает, что кто-то за пределами вашей подсети может отправлять многоадресный трафик на все хосты в вашей подсети. (Примечание: обычно такие данные обрабатываются только заинтересованными хостами в вашей подсети, но это не меняет характера проблемы.)

Во избежание недоразумений адрес 224.0.0.1 не маршрутизируется, поэтому нет никакой опасности извне. Но он по-прежнему обращается ко всем хостам подсети.

Учитывая это, вполне разумно, что Linux на уровне ядра не предоставляет отдельные параметры для игнорирования широковещательных и многоадресных рассылок для IPv4.

По причинам, указанным выше, я пусть обработка широковещательной и многоадресной рассылки включена на уровне ядра, но я блокирую многоадресную рассылку на уровне межсетевого экрана. Мне это не нужно, и я никогда не буду в нем, и я глубоко не доверяю той чепухе о нулевом конфигурировании, которая основана на нем. В качестве примечания не по теме, это то же самое в Windows (я блокирую это на уровне брандмауэра).

3
ответ дан 4 January 2021 в 07:42

За исключением запросов отметок времени (управляемых тем же флагом, только v4 icmp), разница состоит в том, что sysctl для v6 более подходящее имя для групп получателей IPv6 позволяет:

/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

работает очень похоже на

/proc/sys/net/ipv6/icmp/echo_ignore_anycast
/proc/sys/net/ipv6/icmp/echo_ignore_multicast

Доступные элементы управления описаны в Documentation / network / ip-sysctl

Атака - это просто умножение трафика - вы не хотите, чтобы сеть была перегружена из-за ответов маленьким пакетам. Нет общей необходимости применять такой широкий фильтр к трафику в IPv6, потому что, ну, в IPv6 нет широковещательной передачи.

1
ответ дан 4 January 2021 в 07:42

Теги

Похожие вопросы