Недостатъци на DNS
Системата за разрешаване на имена на DNS, която е една от основите на съвременна система от мрежови взаимодействия, е разработена преди повече от 20 години, когато почти не се мисли за проблемите на защитата на информацията. Един от основните недостатъци на DNS системата е възможността за фалшифициране на отговор на DNS заявка.
Проблемът е, че отговорът на DNS сървъра не се проверява по никакъв начин, това означава, че в случай на счупване на DNS сървъра (и пренасочване към фалшиви DNS сървъри), фалшифициране на DNS записа, отравяне на DNS кеша (отравяне с DNS кеш), можете да изпратите потребителя до всеки IP адрес и потребителят ще бъде напълно уверен, че работи с легитимен уебсайт или услуга. Тези методи се използват широко от нападателите, пренасочвайки потребителите към сайтове, съдържащи злонамерени кодове, или събиране на техните лични данни (пароли, номера на кредитни карти и др.), Използвайки т.нар. фарминг атаки.
Защо имате нужда от DNSSEC технология?
Разширения за сигурност на DNS (DNSSEC) - технологията е предназначена за подобряване на сигурността на DNS услугата чрез използване на криптографски подписи, което недвусмислено ще провери достоверността на информацията, получена от DNS сървъра. Т.е. всички заявки и отговори на DNS сървър с поддръжка на DNSSEC трябва да имат цифров подпис, валидността на който може да бъде потвърдена от клиента с помощта на публичния ключ. Тези цифрови подписи се създават при подписване на зона (прилагане на DNSSEC към нея).
Опростен механизъм за проверка на DNSSEC работи така: клиентът изпраща заявка до DNS сървъра, сървърът връща цифрово подписан DNS отговор. защото клиентът има публичния ключ на сертифициращия орган, подписал DNS записите, той може да декриптира подписа (хеш стойността) и да провери DNS отговора. За да направите това, и клиентът, и DNS сървърът трябва да бъдат конфигурирани да използват един и същ котва за доверие. Доверете се на котва - Предварително конфигуриран публичен ключ, свързан с конкретна DNS зона. Ако DNS сървърът поддържа множество зони, може да се използват множество котви за доверие..
Важно е да се отбележи, че основната цел на DNSSEC е да предпазва от фалшифициране и промяна на DNS заявки и отговори. Но данните, предавани през самата мрежа, не са кодирани (въпреки че поверителността на предаваните DNS данни може да бъде осигурена чрез криптиране, но това не е задължително и не е основната цел на DNSSEC).
Основните компоненти на DNSSEC са дефинирани в следните RFC стандарти:
- RFC 4033
- RFC 4034
- RFC 4035
DNSSEC за Windows системи
Технологията за поддръжка DNSSEC се появи в Windows Server 2008 R2 и Windows 7. Въпреки това, поради сложността и неочевидността на настройките, тя не се използва широко. DNSSEC получи своето по-нататъшно развитие в Windows Server 2012, в който функционалността на DNSSEC беше значително разширена и предполага възможността за конфигуриране чрез графичен интерфейс.
В тази статия ще опишем основната инсталация и конфигурация на DNSSEC въз основа на DNS сървър, работещ под Windows Server 2012, ще създадем подписана зона и точки на доверие.
Инсталиране и конфигуриране на DNSSEC на Windows Server 2012
Създайте нова DNS зона dnssec.contoso.com и добавете към нея един запис на SRV12 сървър с адрес 192.168.1.14.
забележка. В Windows 8/2012, вместо да използвате помощната програма nslookup, е по-добре да използвате командлет Powershell Resolve-DnsName за получаване на информация от DNS сървъра.Разрешаване-DnsName srv12.dnssec.contoso.com -Server SRV12-SUB-CA -DnssecOk
защото зоната не е подписана, заявката няма да върне RRSIG записи.
Ще подпишем цифрово вътрешната DNS зона dnssec.contoso.com. За да направите това, в конзолата DNS щракнете с десния бутон върху зоната и изберете DNSSEC-> Подпишете зоната.
В появилия се съветник за подписване на зоната оставете всички настройки по подразбиране (Използвайте настройките по подразбиране, за да подпишете зоната) -> Следващ -> Следващ -> Край.
След завършване на съветника, следните записи на ресурси ще бъдат автоматично създадени в зоната с подписа:
- RRSIG (Resource Read Signature) - Подпис за запис на ресурса
- DNSKEY (Публичен ключ) - съхранява публичната част на ключа и неговите идентификатори
- DS (подписващ делегация) - съдържа хеш на името на домейна на наследника и неговия ключ KSK
- NSEC (Next Secure) и NSEC3 (Next Secure 3) - използвани за надеждна защита срещу атаки на подправяне
След като зоната е подписана, публичният ключ ще бъде записан във файла% windir% \ system32 \ dns \ keyset-dnssec.
Импортираме в DNS публичния ключ на зоната (същата котва на доверие), като отидем в секцията Trust Point в конзолата DNS, избираме import -> DNSKEY и уточняваме пътя към файла keyset-dnssec.
забележка. Този ключ трябва да бъде разпространен до всички DNS сървъри, които ще участват в сигурното кеширане на подписаните данни на зоната.В резултат на импортирането на ключа, в секцията Trust Points -> dnssec, ще се появят два DNSKEY клавиша (единият ключ е активен, другият е в режим на готовност).
В Windows Server 2012 е възможно автоматично да се репликират ключове за доверителни анкери към всички контролери на домейни в гората, обслужващи тази DNS зона. За да направите това, в свойствата на желаната зона (dnssec) в раздела Доверете се на котва опция за активиране Активирайте разпределението на доверителни котви за тази зона и запазете промените.
Нека се опитаме отново да разпитаме тази зона от клиента.
Както виждаме, в отговора на DNS сървъра има информация за RRSIG записа и цифровия подпис.
Конфигуриране на WIndows клиенти да използват DNSSEC
За да принудите клиентите на Windows OS да принуждават само „защитени“ (DNSSEC) заявки, т.е. приемат DNS данни само ако техният цифров подпис е правилен, необходимо е да се използва NRPT (Таблица на политиката за разрешаване на имена) с помощта на GPO.
За да направите това, в секцията за GPO Конфигурация на компютъра -> Полиции -> Настройки на Windows -> Политика за разрешаване на имена на раздела DNSSEC опции за активиране:
- Активирайте DNSSEC в това правило
- Изисквайте клиентите на DNS да проверят дали това име и адрес на данни са валидирани от DNS сървъра
Остава да присвоите политиката на желания OU. След като приложите правилото, уверете се, че клиентът е конфигуриран да използва "защитен" DNS:
Get-DnsClientNrptPolicy
стойност DNSSecValidationRequired = Вярно, т.е. клиентът изисква валидирани DNS отговори.
В случай, че отговорът, получен от DNS сървъра, не е подписан или сертификатите са подписани неправилно, командата ще върне грешка Неосигурен DNS пакет.
DNSSEC за външни зони
За да DNS сървърът изисква задължителна проверка на DNSSEC за външни зони, трябва да го направите в свойствата на раздела напреднал опция за активиране Активиране на DNSSEC валидиране за отдалечени отговори.
Можете да импортирате котви за доверие на коренова зона ръчно (описано по-горе) или с помощта на командата:
dnscmd / RetrieveRootTrustAnchorsсъвет. За да работи DNSSEC правилно, трябва да направите редица промени в защитните стени:
- Отворете порт 53 от двете страни на TCP и UDP протоколите
- защото размерът на данните в DNSSec пакета надвишава 512 байта, необходимо е да се позволи преминаването на DNS пакети с повече от 512 байта през UDP и TCP