Я вижу по этому вопросу (Как я могу запретить Linux отправлять ответы ICMP «Назначение недоступно»?), что было много обсуждений, указывающих на то, что вы не должны отключать сообщения о недоступности ICMP. Мне интересно, почему и когда вам следует? Я тоже хочу знать, как это сделать. Я знаю, что это мешает обнаружению пути MTU, но что еще?
На устройствах cisco вы можете включать и выключать это, должна быть причина. В их документации просто говорится, что отключение должно быть для повышения безопасности, так как получить информацию о вашей сети сложнее? Об этом говорится в документации cisco. Мне нужно реализовать возможность включения и выключения этого переключателя для моей компании, поэтому я узнаю об этом. Независимо от того, почему я все еще должен это делать, но я хотел бы получить осознанный ответ о том, почему это делать или не давать другим.
Когда я хочу отключить перенаправления ICMP, я делаю следующее:
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
Есть ли что-то подобное для недостижимых?
Пользователь из другого потока сделал это так:
iptables -A OUTPUT -p icmp --icmp-type destination-unreachable -j DROP
это хороший способ, тогда я мог бы снова включить его, остановив это падение?
Должен ли я говорить людям, что им эта функция не нужна?
РЕДАКТИРОВАТЬ: В сети я вижу это:
An attacker could gather information’s about your network when scanning it,
like unused IP’s and networks. When working with (interface-) Access-Lists,
a deny statement triggers an ICMP Type 3 Code 9/10 message
(Network/Host is Administratively Prohibited). When disabling ICMP unreachables
on the interface where the ACL is applied, the deny statement
acts like a ‘drop’ and does not reply.
Из очень тщательного и хорошо написанного ответ о той же теме безопасность.SE, который я настоятельно рекомендую вам прочитать:
По своей сути ICMP был разработан как механизм отладки, устранения неполадок и сообщений об ошибках для IP. Это делает его безумно ценным, поэтому нужно много подумать, чтобы его закрыть. Это было бы немного похоже на добавление> / dev / null 2> & 1 в конец всех ваших записей cron.
Source Quench / Redirect в значительной степени устарел и удален из современных сетевых устройств. IPv6 требует ICMP для полноценной работы.
Итог: не блокируйте ничего, если вы полностью не понимаете последствия. Если бы я дал вам один совет, это было бы заблокировать эхо icmp во внешнем брандмауэре, а все остальное оставить открытым. Но это только мое мнение.
Предотвращение отправки вашим сервером сообщения «пункт назначения недоступен» в основном делает его отключенным для большинства сканирований портов, что повышает безопасность. Однако ненамного. Это действительно нарушает обнаружение пути, и нет реальной причины блокировать его. Есть много способов просканировать сервер, и ответ ICMP - лишь один из них.
Я думаю, у вас есть ошибки. Перенаправление ICMP и Пункт назначения ICMP недоступен отличается.
ICMP Redirect следует отключить, потому что его очень легко подделать, и злоумышленник может в основном подделать пакеты перенаправления ICMP.
ICMP Destination Unreachable необходим вашему хосту для определения MTU пути, отключение может привести к ложному положению с вашим хостом. Но злоумышленник также может использовать его для обнаружения топологии вашей сети.
Простое решение для вас - заставить ваш брандмауэр отклонять все новые входящие ICMP-пакеты, принимать только пакеты с состоянием ESTABLISHED.
iptables -A INPUT -i eth0 -p icmp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUPUT -i eth0 -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -e eth0 -p icmp -j DROP
Таким образом, ваш хост по-прежнему может определять MTU пути, и он почти «невидим» с помощью некоторых автоматических сканеров.