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) и отбрасывать все остальные.