Пожалуйста, не отвечайте «это невозможно», так как это пустая трата времени. Я разрабатываю облачное устройство, и у меня есть веская причина для защиты этого уровня от DDoS, и мало компаний делают то же самое, поэтому, пожалуйста, не говорите мне, что я не понимаю, так как многие компании хотят купить это решение, а я нет увидеть проблему с его реализацией с использованием стандартного Linux
Мое ядро Linux дает сбой с ошибками на 10.000 подключениях из-за нехватки ресурсов, таких как ЦП и ОЗУ. Мне было интересно, как безопасно ограничить его, чтобы он не создавал tcp / ip-соединения в таблице отслеживания соединений netfilter или в другом месте, когда кто-то пытается открыть 100000 соединений с разных хостов?
Сетевая карта имеет скорость 1 Гбит / с и с максимальными буферами, она может потребовать много подключений, однако я бы хотел, чтобы она составляла всего 5.000 одновременно, а все остальное было отключено, кроме случаев, когда есть свободные слоты для подключения. На уровне ядра, чтобы он не загрязнял netfilter или что-нибудь еще, и он был удален как можно скорее. Вот эти факторы:
Это сделано для того, чтобы машина могла противостоять DDoS-атакам, не делая упаев, и как только атака прекращается, служба автоматически восстанавливается в прежнем режиме с низкой скоростью.
Речь идет о физическом уровне экземпляра сервера, а не о переключателе. Если предположить, что коммутатор передает мне такой объем трафика, с которым я могу справиться, у вышестоящего провайдера не всегда есть возможность отрегулировать или вообще защитить от этого.
Я не согласен с тем, что ты ничего не можешь сделать. Есть много вещей, которые вы можете сделать, и в зависимости от размера атаки и размера оборудования, которое у вас есть, у вас есть неплохие шансы защитить себя.
Для SYN флудов погуглите немного. Вы, вероятно, захотите получить новое ядро Linux, так как за последнее время было внесено немало улучшений. Перейдите к версии 3.6 и включите файлы cookie синхронизации. Есть несколько других параметров, которые вы можете настроить. Обязательно сначала прочтите об этом, поскольку случайная настройка никогда не является хорошей идеей и вызовет проблемы.
Если это HTTP-флуд, который в наши дни является обычным явлением, вы можете подумать о Varnish. Возможно, вы сможете идентифицировать атакующие запросы по некоторому шаблону и уничтожать их в vcl_recv. Вы можете развернуть модуль щита, чтобы уничтожить это соединение, поскольку обслуживание страницы с ошибкой - напрасная трата усилий. Будьте осторожны: это не быстрое решение и потребует значительных усилий с вашей стороны.
Удачи.
От какого типа DDoS-атаки вы страдаете? Если это синхронный флуд, вы можете включить синхронные файлы cookie.
Не существует реального способа смягчить последствия DDOS со стороны хоста, который подвергается атаке.
К тому времени, когда трафик достиг вашего хоста, он уже прошел через стек вашей локальной сети и потреблял локальные ресурсы. Никакие хакерские действия или колебания не могут этого изменить.
Вам необходимо работать со своим вышестоящим провайдером, чтобы в первую очередь предотвратить попадание трафика на вашу машину. Если они не предоставляют эту услугу, вы, вероятно, можете приобрести ее у них, или вы можете найти поставщика, который это делает.
Я поддержу требование для управления DDoS в восходящем направлении, но в качестве промежуточной меры вы можете использовать какой-то вид контроля или формирования соединений на вашем собственном маршрутизаторе или переключить переход или около того перед рассматриваемыми серверами. Лучший способ оправиться от аварии - это вообще не разбиться. Маршрутизатор / брандмауэр / коммутатор на самом деле не завершает пакеты и (надеюсь) предназначен для работы с гораздо более высокой скоростью.