Программа LOIC (в новостях очень много в последние дни) наносит большой ущерб. Что я могу сделать на своем сервере, чтобы предотвратить подобные атаки? Автоблокировка ip при странном соединении? Потому что в основном это будет один пользователь.
Есть ли уже решения для этого?
На ISC SANS Запись в дневнике по этой теме, в одном из комментариев есть очень веская подсказка.
Автор DarkFiber:
Раньше я работал с организацией, которая подвергалась постоянным атакам со стороны анонимов и их инструмента LOIC. Эти DoS-атаки очень легко смягчить, поскольку они не требуют особой нагрузки на полосу пропускания. Простого ограничения количества подключений на IP-адрес за интервал на брандмауэре было достаточно, чтобы предотвратить атаку. Я считаю, что правильно настроенные контрольные точки способны обнаруживать и полностью отбрасывать эти атаки. Но прослушивание их IRC-канала - лучший способ быть на шаг впереди этой группы. Нечасто злоумышленники транслируют свои цели и векторы перед стрельбой.
Чтобы ограничить трафик по исходному IP, на основе того, что говорит @ sysadmin1138, есть отличный модуль iptables под названием «hashlimit». Вот примерный набор правил:
iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit-upto 50/min \
--hashlimit-burst 500 --hashlimit-mode srcip --hashlimit-name http -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
Это позволяет использовать до 500 пакетов (не соединений, потому что HTTP может выполнять несколько транзакций для каждого соединения, вы должны решить, хотите ли вы сделать это для всех пакетов или только для SYN-пакетов). Если скорость превышает 500 ударов в минуту, он будет снижать скорость до 50 ударов в минуту, пока скорость не упадет. Все, что выходит за эти пределы, получает DROP.
Хотя обычно вы хотите внести некоторые IP-адреса в белый список, вы, вероятно, захотите создать таблицу и перейти к ней, если это порт 80, затем иметь там свои правила белого списка и последнее. Таким образом, пакеты, отличные от HTTP, не проверяют эти правила белого списка, и у вас может быть несколько служб, вызывающих этот набор правил белого списка.
Кроме того, вы, вероятно, захотите включить SYN файлы cookie, так что если DoS отправляет пакеты SYN, это очень мало влияет на вашу систему.
Я работал с несколькими глобальными банками и их интернет-провайдерами, чтобы посмотреть на эффективность методов предотвращения DDoS-атак. Это очень сложно сделать в одиночку, но то, что мы видели, хорошо работало, это когда интернет-провайдеры объединились с партнерами по предотвращению DDoS-атак. Лучше всего посмотреть ответы на этот вопрос на IT Security Stack Exchange как ответ Дэвида говорит все.
Да, и причина, по которой стало намного сложнее заблокировать LOIC, заключается в том, что первые запускались из сетей добровольцев, которые были довольно небольшими. Более поздние из них также используют нелегальные бот-сети, поэтому они значительно расширились, добавляя 30 000 с лишним машин на ботнет.
Я предполагаю, что потребляемая пропускная способность зависит от размера ботнета, направленного на ваш сайт.
Из http://www.theregister.co.uk/2010/12/09/twitter_api_wikileaks_ddos/
«Самая опасная атака на Visa началась незадолго до 13:00 по калифорнийскому времени в среду, когда организаторы передали команду через IRC, чтобы заполнить сайт большим объемом трафика, чем он мог обработать».
Как ранее указывал Рори, очень сложно противостоять потоку, казалось бы, законных запросов без помощи вышестоящих провайдеров, и часто вашим провайдерам 2 или 3 уровня требуется помощь их провайдеров. Для эффективного противодействия серьезной атаке требуются скоординированные усилия между вами, вашим интернет-провайдером и их вышестоящим провайдером, несмотря на значительные капиталовложения.
Потоки трафика также являются лишь одним из векторов атаки, и для их эффективной работы требуется приличный ботнет. Атаки SYN-флуда должны исходить только от нескольких хостов и могут быстро вывести из строя ваши серверы переднего плана, однако вы можете что-то с этим сделать, убедившись, что ваш стек tcp усилен, посмотрите на модули приложений безопасности для своих веб-серверов и убедитесь, что такие фильтры включены в вашем комплекте сети периметра.
Существуют устройства для предотвращения DDoS-атак, такие как toplayer, которые вы можете купить, и управляемые сервисы для предотвращения DDoS-атак, такие как одно предложение Prolexic.
Многослойный подход - единственный способ смягчить последствия, вы сами по себе тосты.
По сути, такие атаки типа «отказ в обслуживании» включают отправку серверу большего количества запросов, чем он может обработать. Это может быть большое количество ботов, отправляющих простые запросы (хотя для этого не требуются миллиарды, чтобы вывести из строя один сервер - несколько тысяч вершин), или несколько ботов, отправляющих запросы, которые, как известно, долго выполняются.
Второй тип атаки является наиболее опасным, поскольку один бот вполне может вывести из строя сервер. Например, MySQL LIMIT N OFFSET M, как известно, работает медленно, когда M становится большим, поэтому простая атака будет заключаться в быстром последовательном запросе страниц 200–300 из 500, засоряя все рабочие потоки MySQL. На незащищенном сервере это можно сделать с помощью firebug. Единственное решение - определить дорогостоящие операции, а затем либо чертовски оптимизировать их, либо сделать их последовательными (чтобы засорение этой части сайта не повредило остальную часть сайта), либо обнаружить IP-адреса, требующие дорогостоящих операций и отказываться выполнять эту операцию, если не соблюдается определенный интервал ожидания.
Первый тип атаки осуществить сложнее, потому что вам нужно много ботов. С другой стороны, также сложнее остановить сервер: если у вас есть тысячи ботов, отправляющих вам данные так быстро, как они могут, ваша пропускная способность будет съедена наводнением, и сервер ничего не сможет с этим поделать (даже если он полностью отклоняет 99% этих запросов), поэтому маршрутизатор с защитой от флуда - хороший выбор, если вы думаете, что можете стать целью.
Источник: stackoverflow.com
Это проще, чем все эти предложения.
-A INPUT -d {your_server_ip} -p tcp -m connlimit --connlimit-above 8 --connlimit-mask 24 -j REJECT --reject-with tcp-reset
или DROP, но оба имеют свои последствия, которые никогда не будут одинаковыми.
Вот инструмент, который может смягчить некоторые DDOS-атаки, ограничив количество подключений на IP-адрес на серверах Linux. http://www.ddosattack.info
Как, вероятно, намекает отрицательный рейтинг, такой подход не популярен. Это экстремально - это может нанести больший ущерб, чем вы уже испытываете. С другой стороны, если ваш сервер выйдет из строя на 100% в результате DDOS, то следующий подход Lock-down несколько облегчит вашу ситуацию.
Попробуйте это, только если ничего не помогает.
Установите временное правило брандмауэра, которое будет отбрасывать новые входящие подключения по месту назначения (IP-адрес вашего сервера). Ваш сервер разорвет новые соединения во время атаки.
Это снизит нагрузку на сервер. Позвольте вам управлять сервером во время атаки. Держите услугу доступной для допустимых клиентов из белого списка.
Вам нужно периодически удалять правило брандмауэра на короткий период времени. Это даст возможность определить, когда атака закончилась или когда она уменьшится. Как только атака закончится, ваш скрипт должен навсегда удалить правило брандмауэра.
Вы можете занести в белый список свои рабочие станции и рабочие станции вашего супервизора, чтобы вы оба могли получить доступ к серверу во время атаки.
Сделайте вывод о списке IP-адресов реальных клиентов (что в целом неплохо) и внесите в белый список.
Некоторым из законных клиентов сервер будет доступен. Стремитесь к большему количеству истинных положительных моментов - если вы внесете в белый список некоторых DDOS-атак, тогда ничего страшного.
Вы можете попробовать добавить большие участки IP-адресов в белый список. Посмотрите, сколько DDOS-атак вы сможете обработать, прежде чем ваш сервер снова начнет замедляться.