пятница, 16 декабря 2011 г.

Понижение контроллера домена Часть 2: Сбор информаци о DHCP сервере

И так, что мы имеем?












Сеть одноранговая, scope одна: 192.168.0.х из них пул динамических адресов в диапазоне со 192.168.0.100 по 192.168.0.200.

Клиенты DHCP:

1.Рабочие станции на WinXP, Win7
2.Учетные записи пользоватей, подключащихся по VPN
3.IP телефоны Polycom Sound Point 330\310
4.Сетевые принтеры HP\Sharp\Kyocera
5.Несколько сетевых коммутаторов L2

Пункты 2,3,4,5 имеют статическую привязку на сервере, при этом у сететвых принтеров настройки прописаны вручную, на случай отключения электричества и позднего старта DHCP сервера.

Некоторые рабочие станции имеют статическую привязку. На серверах соответственно все прописано ручками.

И так, что я выяснял по поводу DHCP сервера в среде Microsoft:


1.Понятие об "авторизованном сервере"

Актуально тоьлко для DHCP серверов в домене на базе Windows. В статье Microsoft описаны основные понятия. Авторизация сервера DHCP необходима для защиты сети от вторжения с подменой DHCP сервера или DHCP starvation.
Звучит красиво, но по сути реализован вот какой механизм:
Есть сеть с доменом на Windows 200х, на одном из серверов разворачивается DHCP сервер, который получает статус авторизованного.
Любому другому DHCP серверу, не авторизованному в домене будет послана команда контроллером домена на остановку службы DHCP.
Обращаю внимание, что на сервера типа BIND9 эта фишка не распространяется.


2.Параметры, которые выдает DHCP-сервер

DHCP-сервер от Microsoft может выдавать своему клиенту информаицю об основных службах в сети: серверы DNS, серверы AD, NTP, WINS и тд. Наиболее интересная "фича" заключается в том, что сервер DHCP так же дает своему клиенту свой IP-адрес, чтобы в следующий раз клиент не забивал сеть широковещательными запросами, а напрямую обращался к нему.Список большой, посмотреть его можно в консоле DHCP -> Параметры сервера -> Настроить параметры.
Обратите внимания, что есть отдельно Параметры Сервера, отдельно Параметры Области. Не путайте!


3.Взаимоотношения сервера и клиента:


Когда клиент только подключился к сети и не имеет никакого IP адреса, он шлет по сети широковещательный запрос DHCPDISCOVER с целью обнаружения DHCP сервера.


Любой DHCP сервер, получивший этот запрос отвечает клиенту DHCPOFFER, указывая доступный для клиента IP и иногда параметры конфигурации. Если в сети 2,3,5 серверов, ответят ВСЕ! Как ни прискорбно, в этом случае действует правило "кто первый, того и тапки".


Клиент получает предложение от сервера и если его все устраивает,  он шлет запрос DHCPREQUEST с указанием IP адреса, содержащегося в DHCPOFFER с просьбой выдать ему адрес.

Когда DHCP-сервер получает DHCPOFFER от клиента, он шлет в ответ DHCPACK прилагая параметры, указаные в настройках сервера и делает записи в своей базе и базе DNS.

4.Взаимоотношения DHCP и DNS серверов

Есть две схемы взаимодействия клиента и сервера, описанные на сайте Microsoft :

  а) Клиент при обращении к серверу DHCP, получив IP-адрес сервера DNS обращается к серверу DNS с просьбой сделать запись типа А, об этом клиенте. DHCP-сервер в свою очередь делает запись типа PTR.

  б) До ОС 2003\XP клиенты dns не имели представления о динамических записях в DNS, по этому клиент просит (а иногда и не просит) сервер DHCP сделать за него запись в DNS.

Что эта информация нам дает? Она дает представление о владельцах записей в DNS. Т.е. тот, кто делал запись в DNS, становится ее владельцем и имеет право обновлять ее.
Соответственно можно предположить проблему при смене сервера DHCP: владельцем записей PTR и A является старый сервер DHCP, его расформировывают, стартуют новый сервер DHCP и оказывается, что он не может обновить запись в DNS и ему остается только создать новую. Проблема? Еще какая....

Для этого, как я понял, используют группу DnsUpdateProxy, члены которой могут создавать\изменять записи DNS. Изначально ее создали для поддержания совместимости с ОС до 2003\XP, но как оказалось может быть другое применение, а именно:

 а) Создается учетная запись в домене с названием типа DnsUpdater

  б) У dhcp сервера задается параметр dnscredentials либо через консоль: Свойства DHCP -> Другие -> Учетные данные регистрации в динамической DNS  либо через cmd , как описано на сайте Microsoft netsh dhcp server set dnscredentials [Пользователь] [Домен] [Пароль] 

 в) Учетная запись DnsUpdater добавляется в группу DnsUpdateProxy.

Теперь сервера DHCP могут безопасно обновлять записи в DNS, при этом получается масштабируемое решение: если добавить 100 DHCP серверов и прописать им схожую конфигурацию, проблем  (кроме самих 100 серверов)

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

З.Ы. Очень полезной была статья на сайте Microsoftsecurity.com

Комментариев нет:

Отправить комментарий