"Відкритий DNS-розв'язувач" - це сервер DNS, який готовий вирішувати рекурсивні пошуки DNS для будь-кого в Інтернеті. Це дуже схоже на відкрите реле SMTP, оскільки проста відсутність автентифікації дозволяє зловмисникам третьої сторони розповсюджувати свої корисні навантаження за допомогою незахищеного обладнання. При відкритих реле SMTP проблема полягає в тому, що вони пересилають спам. З відкритими DNS-рішеннями проблема полягає в тому, що вони дозволяють атаку відмови в обслуговуванні, відому як атака посилення DNS.
Спосіб цієї атаки досить простий - оскільки ваш сервер буде вирішувати рекурсивні запити DNS від будь-кого, зловмисник може змусити його брати участь у DDoS, надіславши на ваш сервер рекурсивний запит DNS, який поверне великий обсяг даних, набагато більший, ніж оригінальний пакет запитів DNS. Підробляючи (підробляючи) свою IP-адресу, вони спрямовуватимуть цей додатковий трафік на комп’ютери жертви замість власних, і, звичайно, вони будуть робити якомога швидше запити на ваш сервер та будь-який інший відкритий DNS рішення, яке вони можуть знайти. Таким чином, хтось із відносно невеликою трубою може "посилити" атаку відмови в обслуговуванні, використовуючи всю пропускну здатність на їх трубі, щоб направити набагато більший обсяг трафіку на своїх жертв.
ArsTechnica зробив гідну статтю про недавню атаку DDoS Amplification DDoS проти Spamhaus , і варто швидко прочитати, щоб отримати основи (та гарну візуальність розширення).
Найпростіший спосіб захистити вашу систему від зловживань, як це обмежити адреси, на яких ваш сервер здійснюватиме рекурсивні пошуки для ваших локальних підмереж. (Особливості яких, звичайно, залежать від того, який DNS-сервер ви використовуєте, звичайно).
Наприклад, якщо я використовував BIND 9 і хотів просто запобігти рекурсії DNS з зовнішніх адрес, я використовував би такий код у своїй конфігурації:
options {
directory "/var/named/master";
allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };
Цей рядок коду повідомляє моєму серверу BIND обробляти лише рекурсивні запити DNS для локальної адреси зворотного циклу (яку, мабуть, я міг / повинен встановити для локального блоку зворотного зв'язку, весь / 8) та 3 приватних просторів IPv4 адрес.
Для Windows Server 2012, який, як ви кажете, використовуєте, у вас є наведені нижче варіанти.
1. Відокремте свій DNS-сервер від IIS-сервера.
- Принаймні, в ідеальному світі немає жодної причини запускати DNS у тому ж полі, що і IIS.
- Помістіть DNS у внутрішнє вікно, яке не є НАТУМЕНОМ, щоб зовнішній світ не міг потрапити на нього, і нехай IIS перебуває на зовнішньому вікні, до якого може потрапити решта світу. Ви можете використовувати правила подвійного наведення або брандмауера, щоб вибірково дозволити доступ до вашого DNS-сервера з вашого IIS-сервера.
2. Блокуйте зовнішні запити DNS за допомогою брандмауера, наприклад вбудованого брандмауера Windows.
- На мій подив, Windows DNS не дозволяє вам обмежувати адреси, на які рекурсивні запити DNS шануються, тому це фактично рекомендований Microsoft.
-
- Виберіть правила DNS (TCP та UDP), перейдіть до
Remote IP address
розділу та додайте підмережі, які використовуються у вашій локальній мережі, а також будь-які відкриті IP адреси серверів, яким потрібен доступ до Active Directory. Як і в прикладі BIND, приватними адресними просторами IPv4 є 127.0.0.0/8
10.0.0.0/8
192.168.0.0/16
і 172.16.0.0/12
.
- Я, чесно кажучи, не впевнений, який вплив це матиме на ваше оточення, оскільки ви насправді не заявили, як налаштовані DNS та AD у вашому оточенні, і, відповідно, це останній варіант.
-
- Відкрийте Диспетчер DNS.
- У дереві консолі клацніть правою кнопкою миші відповідний сервер DNS, а потім натисніть кнопку Властивості.
- Де?
- DNS / застосований DNS-сервер
- Перейдіть на вкладку Додатково.
- У параметрах сервера встановіть прапорець Відключити рекурсію та натисніть кнопку ОК.
- Оскільки в нас є багатолісове середовище і використовую умовні експедитори для роботи, я не збираюся перевіряти це поле. Можливо, ви також можете врахувати щось.