Похоже, вы стали жертвой мантры "ICMP IS EVIL".
ICMP НЕ ЗЛО, просто неправильно понято. Печальная реальность заключается в том, что многие администраторы боятся того, чего они не понимают, и поэтому они вытесняют ICMP из своей сетевой вселенной, избегая его на уровне пограничного межсетевого экрана и не давая ему занять свое правильное и правильное место для блага своей сети.
Сказав это, позвольте мне ответить на ваши вопросы:
Какие типы сообщений ICMP могут быть вредными и почему?
Почти все из них.
Echo
пакеты могут использоваться для прерывания обслуживания (особенно для систем с плохо реализованными стеками IP); При правильном использовании они могут дать информацию о вашей сети.
Destination Unreachable
может быть злонамеренно введен; При правильном использовании они могут предоставить информацию о * вашем брандмауэре / структуре маршрутизации или о конкретной машине в вашей сети.
Source Quench
может быть злонамеренно отправлен, чтобы заставить ваш сервер эффективно сидеть в углу и сосать большой палец.
redirect
может использоваться как следует из названия.
router advertisement
и router solicitation
запросы могут использоваться для создания «интересных» топологий трафика (и для облегчения атак MITM), если ваши хосты действительно обращают на них внимание.
traceroute
будет разработано , чтобы дать информацию о топологии СЕТЕВОЙ.
…так далее...
В именах различных сообщений ICMP довольно много деталей , что они способны делать. Тренируй свою врожденную паранойю в придумывая сценарии кошмара :-)
Как мне создать макет набора правил iptables для обработки каждого типа пакета ICMP?
Если нет веских причин возиться с трафиком ICMP, оставьте его в покое!
Разрушение трафика ICMP препятствует надлежащему использованию сообщений ICMP (управление трафиком и устранение неполадок) - это будет скорее разочарованием, чем полезным.
Должен ли я ограничить скорость любого из этих типов ICMP-пакетов? И как?
Это может быть единственным законным исключением из философии «оставь это в покое» - ICMP-сообщения, ограничивающие скорость или пропускную способность, могут помочь вам избежать незаконного использования ICMP-сообщений. FreeBSD поставляется с ICMP Bandwidth / Rate Limiting по умолчанию, и я предполагаю, что Linux имеет аналогичную функциональность.
Ограничение скорости / полосы пропускания гораздо предпочтительнее, чем общее правило брандмауэра, отбрасывающее трафик ICMP: оно по-прежнему позволяет ICMP выполнять свои функции в сети, а также частично смягчает попытки злоупотребления сервером.
Вышеизложенное отражает мнение одного системного администратора, который со своей стороны FREAKIN 'Утомлен наличием сетей устранения неполадок, в которых пропадает весь трафик ICMP. Это раздражает, расстраивает и отнимает больше времени на поиск и устранение проблем. :-)
--state INVALID
упадет Ping of Death?Source Quench
, и вы можете заблокировать это с относительной безнаказанностью (TCP в конечном итоге сам это выяснит). Ping & Traceroute, безусловно, являются утечкой информации, но на практике я не думаю, что это добавляет слишком реальной безопасности вашей среде. Ваш пробег (и требуемый уровень паранойи) может варьироваться (в зависимости от чувствительности ваших данных / среды).Дело не столько в типах, сколько в возможных векторах атаки. Там был довольно эффективный вектор атаки DoS с использованием источника закалки ICMP пакета в TCP / IP стеке много общих Интернетов - хозяина в течение многих лет - и все же это не означает , что исходный закалку ICMP сообщение должно быть отфильтрованы в целом. Как и во всем, что касается сетевой безопасности, сравните преимущества определенного протокола или службы с возможной поверхностью атаки в зависимости от ваших личных приоритетов. Если в ваших сетях есть узлы, которые восприимчивы к вектору атаки через ICMP, вы не можете их исправить и вам не нужны определенные функции, вам, безусловно, следует подумать об их фильтрации.
Для моих администрируемых сетей v4 я считаю безопасным и удобным разрешать ICMP типы 0, 8 (эхо-запрос / ответ), 11 (истек срок действия TTL), 3 (пункт назначения недоступен) и 12 (ошибка заголовка IP) и отбрасывать все остальные.
источник