iptables | Типы ICMP: какие из них (потенциально) вредны?
Я читал, что определенные типы ICMP-пакетов могут быть вредными. Вопросы:
- Какие и почему?
- Как мне создать макет набора правил iptables для обработки каждого типа пакета ICMP?
- Должен ли я ограничить скорость любого из этих типов ICMP-пакетов? И как?
[¹] Типы, о которых я читал: Redirect (5), Timestamp (13) и Address Mask Request (17). Пожалуйста, не учитывайте только это в своем ответе.
Больше информации
Это веб-сервер на VPS с Ubuntu Server.
Цель
Я пытаюсь сделать систему более безопасной, снизить риск некоторых D/DoS-атак и общих злоупотреблений.
связанные с
Безопасен ли мой брандмауэр linux?
Почему бы не заблокировать ICMP?
2 ответа
Похоже, вы стали жертвой мантры "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. Это раздражает, расстраивает и заставляет дольше находить и устранять проблемы.:-)
Дело не столько в типах, сколько в возможных векторах атаки. В течение многих лет существовал довольно эффективный вектор DoS-атак, использующий пакет подавления исходного кода ICMP во многих стеках TCP/IP многих распространенных интернет-хостов, и, тем не менее, это не означает, что сообщения ICMP, требующие подавления исходного кода, необходимо фильтровать в целом. Как и во всем, что касается сетевой безопасности, сравните преимущества определенного протокола или службы с возможной поверхностью атаки в зависимости от ваших личных приоритетов. Если в ваших сетях есть узлы, которые восприимчивы к вектору атаки через ICMP, вы не можете их исправить и вам не нужны определенные функции, вам, безусловно, следует подумать об их фильтрации.
Для моих администрируемых сетей v4 я нашел безопасным и удобным, чтобы разрешать ICMP типы 0, 8 (эхо-запрос / ответ), 11 (истек TTL), 3 (пункт назначения недоступен) и 12 (ошибка заголовка IP) и отбрасывать все остальные.