Авторизация DHCP сервера и устранение проблем

Авторизация DHCP сервера и устранение проблем

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. Ранее мы с вами говорили про принципы работы DHCP протокола и разбирали его поэтапно. В сегодняшней заметке, мне бы хотелось осветить вопрос по защите и безопасности DHCP сервера, и речь пойдет, о авторизации и решения проблем с ней. Ситуаций в жизни бывает много, так что как говорится прокачаем свой навык траблшутинга. Уверен, что мой скромный опыт будет кому-то полезен.

Что такое авторизованный DHCP

Когда вы устанавливаете Active Directory в своей компании, то у вас появляется тройка ролей, которые очень часто идут вместе, я говорю про AD, DNS и DHCP. Эта тройка позволяет системному администратору получить все прелести и преимущества доменной структуры. Очень важным аспектом любой современной IT инфраструктуры, является аспекты безопасности и в случае DHCP, это очень актуально. Небольшое воспоминание из практики. Когда я еще только начинал свой путь инженера, то я плохо разбирался в сетевых протоколах и технологиях, знал так сказать азы. Я знал, что у нас в окружении установлен Windows DHCP сервер и, что он сам раздает ip-адреса. В один из рабочих дней мне позвонил менеджер и сказал, что у него пропал интернет и доступ к сетевым шарам.

Когда я к нему подошел, то стал проводить сетевую диагностику, где одним из этапов было вычисление полученного ip-адреса. Какого же было мое удивление, когда я за место диапазона 192.168.100.0 увидел диапазон адресов 192.168.1.0. Я точно знал, что на моем DHCP сервере такой области нет. В итоге оказалось, что один из программистов принес WIFI роутер в то время, это было диковинкой, а так как мозги данного устройства работали на Linux платформе, то его DHCP сервер отрабатывал быстрее, чем в Windows сервере, что в итоге вело к выдаче адресов из другой области. Вот для предотвращения таких вещей и есть авторизация DHCP сервера.

У каждого вендора своя технология авторизация данного сервиса, например в Cisco оборудовании есть технология DHCP snooping, которая делит порты на которых работает служба на да типа, на которых, это можно делать и на которых нельзя. Там где нельзя, все пакеты с DHCP сервиса будут дропаться. В Windows среде есть авторизация сервера в инфраструктуре Active Directory. Вся соль в том, чтобы если в сети появится Windows DHCP сервер и он не будет авторизован в Active Directory, то его скоупы просто не заработают и выдачи ip-адресов не будет.

Требования к серверу перед авторизацией

Авторизация DHCP сервера является обязательной процедурой и требует соблюдения некоторых вещей:

  • Ваш сервер DHCP должен быть членом Active Directory
  • У вас должны быть права на авторизацию его в AD, администратор предприятия или делегированная группа.
  • Не должно быть проблем с созданием и редактированием атрибутов и классов в схеме Active Directory

Интересные моменты

  • Сервер DHCP проверяет свою авторизацию в AD DS каждый час. Он использует протокол LDAP [MS-ADTS] для связи с Active Directory и проверки, авторизован ли он для обслуживания IP-адресов.
  • При установке в среде с несколькими лесами DHCP-серверы запрашивают авторизацию изнутри. После авторизации серверы DHCP в среде с несколькими лесами сдают в аренду IP-адреса всем доступным клиентам.
  • Если вы устанавливаете роль DHCP на контроллере домена, сервер автоматически авторизуется. Если вы устанавливаете его на рядовой сервер, вам нужно будет вручную выполнить процесс авторизации одним из следующих способов.
  • Если в сети появится DHCP сервер, отличный от Windows платформы, то он сможет раздавать IP-адреса и авторизация ему не потребуется. Чтобы этого избежать нужны технологии на подобии DHCP snooping и системы анализа трафика.

Методы авторизации DHCP в Active Directory

Давайте теперь поговорим, о методах которые смогут добавить ваш DHCP сервер, как доверенный в раздел конфигурации базы данных Active Directory.

  • Авторизация после установки из оснастки в мастере
  • Из оснастки, после всех настроек
  • Авторизация после установки роли, через PowerShell
  • Авторизация сервиса после установки роли через командную строку и утилиту netsh

Первый метод авторизации DHCP

Я покажу его на примере Windows Server 2019, когда вы установили роль DHCP, вас попросят закончить настройку. В итоге у вас откроется окно мастера, где вас попросят авторизовать в Active Directory, обращаю внимание, что вы на этом этапе можете ее пропустить. Напоминаю, что права должны быть минимум администратора домена или аналогично делегированные.

Второй метод авторизации DHCP

Вторым методом я могу выделить возможность, произвести авторизацию сервиса в AD в самой оснастке, после настройки области IPV4 или IPV6. Для этого нажмите в оснастке по самому корню правым кликом и выберите в контекстном меню пункт "Авторизовать".

Так же в данной оснастке можно авторизовать и удаленный сервер, для этого щелкните правым кликом по корню и выберите пункт "Список авторизованных серверов".

В окне "Список авторизованных серверов" нажмите кнопку "Авторизовать". У вас откроется дополнительное окно, где можно указать DNS имя или IP-адрес. Я впишу мой второй дополнительный сервер с ip-адресом 192.168.31.3.


Произойдет поиск роли DHCP на данном сервере. Если она там есть то появится дополнительное окно, где нужно нажать "ОК".

Все сервер у вас должен появится в списке авторизованных.

Авторизовать DHCP-сервер с помощью Netsh

Откройте командную строку с правами администратора и введите следующую команду для авторизации DHCP-сервера.

Команда показывает мои текущие авторизованные серверы в домене, как видим у меня он один dc01/root/pyatilistnik.org. В окне "Управление авторизованными серверами" его видно. Далее авторизуем новый сервер svt2019s01.root.pyatilistnik.org с ip-адресом 192.168.31.3

После этого я сделал вывод списка авторизованных DHCP и вижу, что их теперь два.

Авторизовать DHCP-сервер с помощью PowerShell

Естественно я не могу обойти стороной любимый язык PowerShell, так как он с поставленной задачей справляется на 5+. Откройте свой PowerShell в режиме администратора и выведите для начала список текущих DHCP адресов в домене.

Вижу, что в данный момент он один.

Теперь, чтобы добавить второй сервер, выполните команду:

Как деактивировать DHCP сервер

Логично предположить, что методов деактивации тоже четыре.

  • Из оснастки DHCP сервера, для этого правым кликом по названию сервера и из контекстного меню выбираем пункт "Запретить".

  • Второй метод деактивации — это из окна "Управление авторизованными серверами", выбираем нужный и нажимаем кнопку "Запретить"

  • Третий метод запретить конкретный сервис, это утилита командной строки netsh.
  • Последний метод деактивации, это в PowerShell

Где прописывается DHCP в конфигурации Active Directory

Теперь хочу вам показать, где в классах и с какими атрибутами прописываются записи авторизованных DHCP серверов. Откройте редактор атрибутов AD и зайдите в раздел конфигурации. Перейдите по пути: CN=Services,CN=Configuration,DC=root,DC=pyatilistnik,DC=org. В данном контейнере вы увидите записи ваших авторизованных DHCP сервисов и очень важную запись CN=DhcpRoot, если ее нет, то это плохо.

Когда вы успешно авторизовываете ваш сервис в Active Directory, то он должен создать запись класса dHCPClass в CN должно быть его имя и различающееся имя (distinguished name). Если зайти в свойства любой записи сервиса, то вы обнаружите атрибут dhcpServer, тут должен быть прописан ip-адрес и его DNS-имя.

Во времена Windows 2000, атрибут dhcpServer должен был заполняться у записи CN=DhcpRoot в соответстующем атрибуте, с Windows Server 2003, перестало записываться (https://blogs.technet.microsoft.com/askpfeplat/2015/06/22/windows-server-dhcp-server-migration-two-issues-from-the-field/). Так же записи из контейнера CN=Services AD — сайты и службы (Active Directory Site and Service)вы можете посмотреть и из оснастки. Единственное, вам нужно включить опцию "Показать узел служб"

В итоге у вас появится контейнер "Services", далее "NetServices", в котором вы увидите весь список.

Из-за не правильной деактивации DHCP или восстановлении сервера из резервной копии приличной давности, он у вас может не запускать и при попытке пройти авторизацию написать "Параметр задан неверно"

В таких случаях вам нужно проверять наличие CN=Services,CN=Configuration,DC=root,DC=pyatilistnik,DC=org записи вашего сервера. Если ее нет, то придется создать ее с нуля. Через правый клик создаем новый объект AD.

Выбираем класс объекта dhcpServer.

Прописываем Common-name вашего сервера.

dhcp-Unique-key ставим 0.

dhcp-type ставим 1.

В dhcp-identification прописываем distinguished name сервера.

После создания записи, попробуйте перезапустить DHCP на нужно сервере. Если не поможет, то удаляете данную запись, и заново пробуете его авторизовать, бывает помогает.

Как дать права на авторизацию DHCP сервера

На сколько мне известно, чтобы у вас была возможность авторизовывать серверы DHCP, то вы должны быть администратором предприятия (Enterprise Admin). Понятно, что в данной группе должно быть минимум людей. Вы можете делегировать данные права, любой группе или пользователю. Для этого, в оснастке Active Directory — сайты и службы с включенной опцией "Показать узел служб" вы нажимаете правым кликом по контейнеру NetServices и выбираете пункт делегирование управления.

На первом шаге, вам необходимо указать пользователя или группу, для которой будут выданы права на управление DHCP авторизацией.

Выбираем создание особой задачи для делегирования.

Оставляем пункт "Этой папкой, существующими в ней объектами и созданием новых объектов в этой папке"

На следующем шаге, даем полные права. После этого у нужной группы появится возможность авторизовывать сервера DHCP в вашем домене Active Directory.

Технический блог специалистов ООО"Интерфейс"

  • Главная
  • Active Directory — от теории к практике. Часть 3 — настройка DHCP.

Active Directory — от теории к практике. Часть 3 — настройка DHCP.

  • Автор: Уваров А.С.
  • 14.08.2012

В прошлой статье мы подробно рассмотрели процесс создания контроллеров домена для вашей структуры AD. Сегодня мы хотим поговорить о правильной настройке службы DHCP, которой обычно не придают особого внимания. А зря, от правильной работы этой службы во многом зависит бесперебойная работа вашей локальной сети.

"DHCP? Да что там настраивать?" — скажет иной администратор — и будет неправ. При всей кажущейся простоте данная служба является одной из ключевых и будет очень плохо если об ее отказе вы узнаете от пользователей.

В отличии от DNS или AD, DHCP не позволяет создать два полноценных сервера и реплицировать данные между ними (данная возможность появилась в Windows Server 2012). Как же быть? Единственный DHCP-сервер способен доставить немало головной боли администратору, сервер с данной ролью даже на профилактику вывести проблемно, не говоря уже о сбоях.

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

Обычно DHCP-сервер совмещают с роутером, в простых сетях данный подход оправдан, в структуре AD мы рекомендуем совместить роли контроллера домена и DHCP-сервера. Для создания отказоустойчивой схемы нам понадобится два DHCP-сервера, между которыми следует разделить пул адресов области. Рекомендуется соотношение 80/20, хотя никто не мешает вам разделить область согласно собственным предпочтениям.

Однако перед тем как нарезать пул адресов, стоит сесть и задуматься над схемой распределения адресов в вашей сети. Стоит раз и навсегда выработать определенные правила присвоения адресов и придерживаться их в дальнейшем, это позволит значительно упростить администрирование сети и сократит до минимума глупые вопросы: "а что это за хост с адресом 192.168.51.51 . "

Мы, например, придерживаемся следующей схемы:

Данная схема не претендует на оригинальность и приведена исключительно в качестве примера. Вы можете составить собственные схемы и придерживаться их. Основным достоинством данного подхода является то, что встретив IP-адрес 192.168.51.203 администратор точно знает, что это один из сетевых принтеров, а 192.168.51.51 — Wi-Fi оборудование.

С учетом данной схемы выделите пул DHCP-адресов и поделите его в соотношении 80/20 (или как вам больше нравится). В нашем случае это будут диапазоны до и после адреса (включительно) 192.168.51.210.

Отдельно стоит упомянуть почему мы не используем блок адресов 1-10, как правило многие сетевые устройства настроены на использование адреса 192.168.x.1 по умолчанию и всякие сетевые "умельцы" при попытке подключиться к сети используют адреса из этого диапазона. Особенно это актуально для сетей диапазонов 192.168.0.0 и 192.168.1.0, поэтому мы советуем выбрать для своей корпоративной сети иной диапазон, в самом деле, от 2 до 254 весьма много цифр.

Итак, с теорией закончили, переходим к практике. На первом КД запускаем Диспетчер сервера и добавляем роль DHCP-сервера:

В качестве родительского домена указываем наш домен AD, в качестве DNS-серверов адреса наших КД.

Следующим шагом добавляем область, в настройках указываем полный диапазон адресов: 192.168.51.10-.192.168.51.253, исключения настроим позже.

Затем наш DHCP-сервер требуется авторизовать в AD, если вы вошли в систему как администратор домена, то дополнительных действий не потребуется, иначе нужно будет указать учетные данные доменного администратора.

После этого еще раз проверьте все введенные данные и установите роль DHCP-сервера. После чего перейдите в оснастку управления данной ролью и задайте диапазоны исключения:

В итоге у вас должна получиться примерно аналогичная настройка (согласно вашей схеме распределения адресов):

Теперь аналогичным образом добавляем и настраиваем роль DHCP на втором КД. Настройкам области особого внимания не уделяем, все равно ее придется удалить:

Да, на втором КД удаляем созданную область и снова переходим на первый КД. Щелкаем правой кнопкой мыши по DHCP-области и выбираем Дополнительно — Разделенные области.

В открывшемся мастере выбираем второй DHCP-сервер:

И укажите пропорции в которых следует раздеть область. Можете сильно не вникать в опции, разделив зону "на глаз", более точные настройки позже можно задать вручную.

Следующим шагом укажите задержки ответа серверов, так как первый сервер будет являться основным, то укажем для второго сервера задержку в 10 мс, это позволит выдавать все адреса первым сервером, используя второй только при отказе первого или заполнении его пула адресов.

По окончании работы мастера область будет разделена и на первом сервере она примет вид:

На втором сервере, скорее всего, придется "доработать напильником" и удалить лишний диапазон исключения:

Теперь, убедившись что оба сервера обслуживают непересекающиеся части области, можно активировать область на втором сервере:

Теперь в случае отказа или вывода на профилактику основного DHCP-сервера, второй сервер обработает запросы клиентов с истекшей арендой адреса (по умолчанию 8 дней), если основной сервер выбыл на больший срок, то на дополнительном DHCP-сервере стоит расширить пул адресов, в последующем сделав данный сервер основным, а другой сервер дополнительным.

В любом случае данный подход позволяет обеспечить бесперебойное функционирование вашей сетевой инфраструктуры вне зависимости от работоспособности отдельных узлов.

Прежде чем использовать DHCP-сервер в домене, вы должны авторизовать его в Active Directory. Авторизация сервера означает, что серверу разрешено назначать динамические ІР-адреса в домене. В Windows Server 2008 авторизация требуется для предотвращения обслуживания клиентов неавторизованными DHCP-серверами.

Чтобы авторизовать DHCP-сервер, щелкните правой кнопкой элемент сервера в дереве консоли DHCP и выберите команду Авторизовать (Authorize). Чтобы лишить сервер авторизации, щелкните его правой кнопкой и выберите команду Запретить (Unauthorized).