Пример 6. Редактирование реестра с целью защиты DNS-серверов от DoS-атак.
Атаки типа "отказ в обслуживании" (Denial of Service, DoS-attacks) и особенно распределенные атаки (Distributed Denial of Service, DDoS) за последние несколько лет начали представлять собой одну из наиболее серьезных угроз безопасности сетей любого масштаба. При этом количество таких атак с каждым годом растет, и теперь уже практически никто не может считать себя полностью от них застрахованным. Подобно рекомендациям, рассмотренным в предыдущем разделе, советы, приведенные здесь, не дадут полной гарантии защиты от атак сервера DNS. Однако они послужат хорошим дополнением к принимаемым вами мерам защиты.
Перед тем как вносить описанные ниже изменения в конфигурацию сервера, используемого в производственном процессе, рекомендуется испытать их в лабораторных условиях.
Все параметры реестра, описанные в данном разделе, находятся под ключом реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters (рис. 24.18).
Рис. 24.18. Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters
Краткие описания этих параметров и рекомендуемые значения приведены ниже.
- EnableDeadcwDetect (тип данных REG_DWORD). Значение по умолчанию позволяет TCP/IP переключаться на дополнительный шлюз в том случае, когда большое количество соединений начинает испытывать проблемы. Такое поведение нежелательно в случае DoS-атак, поскольку в этом случае трафик может быть перенаправлен на шлюз, который не является объектом постоянного мониторинга. Поэтому установите для данного параметра значение 0.
- EnablePMTUDiscovery (тип данных REG_DWORD). Значение, по умолчанию устанавливаемое для данного параметра, позволяет TCP/IP определять максимальный размер передаваемого фрагмента (maximum transmission unit, MTU), который может быть передан системе. В принципе, это опасно, поскольку дает возможность обойти систему защиты или вывести ее из строя путем передачи фрагментированного трафика (например, многие системы обнаружения атак не умеют правильно восстанавливать фрагментированные IP-пакеты). Если для этого параметра установить значение 0, то MTU всегда будет установлено на значение 576 байт.
- KeepAlive (тип данных REG_DWORD). Этот параметр указывает, насколько часто будет осуществляться проверка и верификация активности открытых соединений. Для этого параметра рекомендуется установить значение 300 000.
- synAttackProtect (тип данных REG_DWORD). Создание этого параметра позволяет защититься от атак SYN Flood, препятствующих нормальному процессу установления соединения между клиентом и сервером. При нормальных условиях, этот процесс протекает в три этапа.
- Клиент отправляет серверу запрос на установление соединения (SYN).
- Сервер отвечает отправкой подтверждения (SYN-ACK).
- Клиент подтверждает прием, отправляя сообщение АСК.
Если сервер стал мишенью для атаки SYN Flood, он будет получать огромное количество запросов на соединения, что создаст препятствия в получении подтверждений от клиентов и, таким образом, не позволит легальным пользователям устанавливать соединения. Рекомендуемое значение для этого параметра – 2 (можно также установить значение 1, но оно действует менее эффективно).