У меня есть VPS с установленным debian 10, который в основном используется для хостинга веб-сайтов. когда я отправляю эхо-запрос на сервер с удаленного компьютера, я могу получать и получать ответы для пакетов размером примерно до 64 КБ, используя флаг -s 65507
. использование sudo
также позволяет мне увеличить максимальную частоту пинга по умолчанию с 5 в секунду с помощью флага -i
.как указано на странице man ping
, это правдоподобное поведение.
то, что я хотел бы знать, находится на сервере, как я могу ограничить ответы ping, например, максимум x ответов в секунду и максимальный размер пакета y Kb? так что выполнение следующей команды НЕ должно быть возможным:
sudo ping example.com -s 65507 -i 0.001
то есть «отправлять 1000 пингов по 64 КБ на example.com каждую секунду».
что приведет к наводнению сервер со скоростью пингов со скоростью 64 Мбит / с, на все из которых поступают ответы (хотя и с задержкой) и отправляется сообщение удаленной машине, выдающей эхо-запросы. Повторяю, я НЕ хочу, чтобы это было возможно по понятным причинам. несмотря на наличие базового брандмауэра и fail2ban, я удивлен, что это вообще возможно и допустимо с настройками конфигурации по умолчанию.
Я искал в Google безрезультатно - почти все результаты относятся к выдаче самого пинга, нет ничего о том, как ограничить ответы на целевом сервере. Я также попытался изменить / proc / sys / net / ipv4 / icmp_ratelimit
на более низкое значение, чем 1000
пакетов ICMP в секунду, но это, похоже, не имело никакого эффекта даже при перезагрузке. проверка в /etc/sysctl.conf
.
в идеале я хотел бы установить максимальный интервал 0,5 секунды и максимальный размер пакета 32 байта, что, на мой взгляд, вполне адекватно и разумно для цель пинга, т. е. проверка возможности подключения и задержки. тем самым он защитит от ping-флуда, что является большой проблемой, потому что в настоящий момент сервер подвержен DoS-атакам через этот вектор ICMP.
нужен ли мне какой-то другой инструмент или программное обеспечение, или я что-то не хватает?
заранее большое спасибо
Существуют примеры ограничения скорости ICMP через брандмауэр. nftables wiki, Сопоставления с ограничением скорости . Ошибка сервера, Ограничение скорости рассылки ICMP с помощью nftables
Однако брандмауэр хоста не является полным решением, если полоса пропускания перегружена. Ядру необходимо получить пакет, прежде чем его можно будет отбросить. Более полная защита от отказа в обслуживании должна быть раньше, через службу с большей пропускной способностью, чем у злоумышленников.
Вероятно, вам также нужно изменить /proc/sys/net/ipv4/icmp_ratemask
. По умолчанию ограничение не применяется к эхо-ответам. См. http://man7.org/linux/man-pages/man7/icmp.7. .html