Назад | Перейти на главную страницу

Атака SYN Flood в Windows Server 2012 R2?

У меня есть веб-сервер IIS Windows Server 2012 R2, работающий на VMWare esxi 5.5, на котором размещено несколько веб-сайтов с разными IP-адресами. Этот сервер в последнее время случайным образом отказывает в подключении на всех сайтах. Когда сервер перестает принимать соединения, в netstat появляется множество записей SYN_RECEIVED. Иногда с одного и того же IP-адреса на всех размещенных IP-адресах, иногда с разных IP-адресов, но их намного больше. Эти записи остаются на некоторое время, а затем исчезнут (при условии, что истечет время ожидания).

Я читал, что это, вероятно, атака SYN-флуда, но предполагается, что Windows имеет встроенный способ обработки этих атак. Я посмотрел эту статью, https://blogs.technet.microsoft.com/nettracer/2010/06/01/syn-attack-protection-on-windows-vista-windows-2008-windows-7-windows-2008-r2-windows-88- 1-окна-2012-и-окна-2012-R2 /, и выполнил трассировку netsh, но в журналах нет ничего, что указывало бы на активацию защиты от SYN-атак. Это заставляет меня задуматься, работает ли защита от SYN-атак. На веб-сервере отключен встроенный брандмауэр Windows. Может ли это привести к отключению защиты от SYN-атак?

Я также читал, что может помочь увеличение ресурсов сервера. Я удвоил ЦП и ОЗУ для виртуальной машины, но эта проблема все еще возникает каждую неделю. Обычно в течение дня, а затем приходит в норму. Когда сервер перестает отвечать на соединения, netstat будет заполнен кучей записей SYN_RECEIVED, и это займет несколько минут. В настоящее время загрузка ЦП действительно низкая, около 5-10%, а использование ОЗУ составляет половину доступной. После предполагаемой атаки netstat вернет все результаты в течение нескольких секунд.

Как я могу остановить отказ от этого соединения? Какие-нибудь советы или хитрости? Имеет ли отключенный брандмауэр Windows какое-то отношение к смягчению атак?

Я думаю, что это сложно остановить на вашей машине с Windows.

Вы должны убедиться, что у вас есть брандмауэр, если не на хосте Windows, то обязательно на границе.

Я успешно отслеживал соединения на машине Linux, чтобы определить нетрадиционное поведение, такое как SYN flood (с которым в ядре Linux есть несколько вариантов решения, подключение из необычных портов (например, соединение с портом 80/443, а не с ним) и и так далее, а затем пометить их и реализовать блокировку в брандмауэре ошибочных адресов.

На машине с Windows вы, вероятно, могли бы отслеживать журнал событий для получения информации об этом, а затем манипулировать системным брандмауэром, но я думаю, что это будет сложнее и менее надежно, чем при использовании Linux, где это согласуется с дизайном ядра.

Если вы хотите попробовать сделать это в ядре, вам нужно будет написать драйвер режима ядра для проверки пакетов, что, вероятно, будет трудным и трудоемким.

Если вам нужно запустить свои хосты под Windows, вы можете исследовать, можете ли вы установить машину Linux, которая могла бы фильтровать трафик и действовать как граница сети.

И убедитесь, что где-то есть файрволл!