Протокол DHCP: как он работает и примеры его настройки

Протокол DHCP является одним из наиболее часто используемых маршрутизаторами, как домашними, так и профессиональными, кроме того, по умолчанию любые проводные или Wi-Fi клиент настроен на получение IP-адреса по DHCP. Хотя мы постоянно используем DHCP, вы наверняка не знаете, для чего он нужен, его функции, а также как он работает и какие сообщения обмениваются между сервером и клиентами. Сегодня в этой статье мы расскажем все, что вам нужно знать о протоколе DHCP.

Что это за протокол и для чего он нужен?

Протокол DHCP

Протокол DHCP (протокол динамической конфигурации хоста ) или также известный как «Протокол динамической конфигурации хоста», представляет собой сетевой протокол, использующий архитектуру клиент-сервер. Следовательно, у нас будет один или несколько серверов DHCP, а также один или несколько клиентов, которые должны правильно взаимодействовать друг с другом, чтобы сервер DHCP предоставлял информацию различным подключенным клиентам. Этот протокол отвечает за динамическое и автоматическое присвоение IP-адреса, либо частного IP-адреса от маршрутизатора компьютерам в локальной сети, либо общедоступного IP-адреса оператором, который использует этот тип протокола для установления соединения.

Когда у нас запущен DHCP-сервер, все IP-адреса, которые он предоставил различным клиентам, хранятся в списке, в котором указаны предоставленный IP (логический адрес) и MAC-адрес (физический адрес сетевой карты). . Благодаря этому списку DHCP-сервер не предоставляет двум разным компьютерам один и тот же IP-адрес, что вызывает хаос в локальной сети. Когда сервер назначает IP-адреса, он также принимает во внимание, когда проходит определенное время, и они истекают, оставляя возможность другому клиенту получить этот же IP-адрес. Сервер DHCP всегда будет знать, кто владел IP-адресом, как долго он был и когда был назначен другому клиенту.

Протокол DHCP включает несколько форм назначения IP-адресов, в зависимости от конфигурации, которую мы делаем, и сценария, мы можем использовать ту или иную форму назначения:

  • Ручной или статический : DHCP-сервер позволит нам настроить список пар IP-MAC, чтобы клиенту всегда предоставлялся конкретный IP-адрес и чтобы этот адрес никогда не менялся.
  • Автоматический : DHCP-сервер отвечает за предоставление IP-адреса клиенту, выполняющему запрос, и он будет доступен этому клиенту до тех пор, пока не будет выпущен. Существуют маршрутизаторы, которые внутренне настроены для последовательного предоставления частных IP-адресов, однако есть микропрограммы, которые предназначены для предоставления определенного IP-адреса в пределах диапазона и не являются последовательными, на основе внутреннего алгоритма и используемого MAC-адреса. подключили.
  • Dynamic : Этот метод позволяет динамическое повторное использование IP-адресов.

Хотя протокол DHCP хорошо известен тем, что предоставляет IP-адрес, маску подсети и шлюз, три основных и основных параметра, он также может предоставлять другую информацию для клиентов, такую ​​как следующие параметры, которые можно настраивать и опционально:

  • Первичный и вторичный DNS-сервер.
  • DNS-имя.
  • MTU для интерфейса.
  • Домен и сервер NIS.
  • Серверы NTP.
  • Сервер имен WINS для Windows.
  • Другие дополнительные опции, все это есть в RFC2132 .

Очень важным аспектом является то, что если Windows система не может получить IP-адрес через DHCP-клиент в сети, запускается процесс, называемый APIPA (автоматическая адресация частного интернет-протокола). Этот процесс APIPA, используемый операционными системами, когда IP-адрес не может быть получен с помощью DHCP, этот протокол отвечает за назначение частного IP-адреса класса B в диапазоне 169.254.0.0/16 с соответствующей маской подсети 255.255.0.0. Этот блок адресации известен как «локальный канал» для сетей IPv4. Хотя операционные системы самостоятельно настраивают этот частный IP-адрес, каждые 5 минут они будут снова проверять, есть ли в сети DHCP-сервер, чтобы предоставить им типичный частный IP-адрес класса A, B или C. Когда DHCP-сервер не работает или он не настроен, вы можете проверить автоматически настроенный IP-адрес, если мы сверимся с частным IP-адресом, который у нас есть на нашем компьютере.

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

Работа и обмен сообщениями

Связь между DHCP-сервером и DHCP-клиентами, которые мы подключили к сети, осуществляется через протокол UDP, протокол, который мы уже знаем из других статей и который не ориентирован на установление соединения. В случае DHCP-сервера мы используем протокол UDP на порт 67, в случае клиентов мы используем протокол UDP на порт 68. Если у нас есть брандмауэр блокируя эти порты, либо на сервере, либо на клиенте, мы должны проверить это и добавить правило для принятия этих портов в качестве источника и / или пункта назначения, в противном случае служба не будет работать, и мы не сможем получить IP-адреса автоматически.

Когда мы впервые подключаем компьютер к сети, он не имеет IP-адресации, поэтому нам придется «искать» DHCP-сервер по всей сети, поскольку у нас сначала нет информации о протоколе ARP. По этой причине первое, что сделает клиент, - это отправит ОБНАРУЖЕНИЕ DHCP с исходным IP-адресом 0.0.0.0 и целевым IP-адресом 255.255.255.255, который является глобальным широковещательным IP. Конечно, дейтаграмма UDP отправляется с портом источника 68 (клиент) и портом назначения 67 (сервер). Это сообщение транслируется в сети, и внутренне оно может быть сконфигурировано для приема ПРЕДЛОЖЕНИЯ посредством широковещательной или одноадресной рассылки, хотя обычно оно является одноадресным в ПРЕДЛОЖЕНИИ.

Если сервер существует и работает правильно, он отправит вам ответ с именем ПРЕДЛОЖЕНИЕ DHCP . Это дейтаграмма ответа от сервера клиенту перед запросом на получение параметров через протокол. В этом случае исходным IP-адресом будет сам сервер, который обычно также действует как маршрутизатор, IP-адрес назначения также будет 255.255.255.255, исходный порт 67 и порт назначения 68. В этом пакете у нас будет частный IP-адрес, который может быть предоставлен и связан с MAC-адресом компьютера. Это сообщение, как правило, одноадресное, хотя при желании оно может транслироваться.

Как только клиент получит ПРЕДЛОЖЕНИЕ, он отправит ЗАПРОС DHCP назад. В этом случае клиент выбирает конфигурацию, полученную ПРЕДЛОЖЕНИЕМ, и еще раз клиент запрашивает IP, который ранее указал сервер. Это сообщение также транслируется, потому что у него еще нет действующего частного IP-адреса.

Наконец, сервер отправит DHCP-ACK клиенту, сообщая ему, что он получил его правильно и включает всю информацию, которую мы настроили на сервере, такую ​​как продолжительность соединения, информацию о DNS серверы и многое другое. С этим последним процессом все шаги процесса завершены, протокол также будет ждать определенное время, пока DHCP-клиент не настроит свой интерфейс правильно с согласованными параметрами. Как только клиент получит IP-адрес, он начнет получать информацию из протокола ARP со всеми компьютерами в локальной сети, чтобы предотвратить возможные конфликты IP-адресов или перекрытие групп адресов от DHCP-серверов. В случае возникновения проблемы клиент отправит серверу сообщение DHCPDECLINE, указывающее, что адрес уже используется.

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

Атаки, существующие на DHCP

Протокол DHCP не использует какой-либо тип аутентификации, по этой причине он очень уязвим для атак, и существуют различные типы атак, которые мы сможем выполнить.

Очень распространенная атака заключается в настройке мошеннического DHCP-сервера для предоставления клиентам «ложной» или «вредоносной» информации. Когда мы подключаем мошеннический DHCP-сервер к локальной сети, в которой уже есть законный DHCP-сервер, клиенты получат IP-адрес, DNS и другую информацию при первом ответе. По этой причине злоумышленник мог настроить " Ненужный DHCP-сервер »В сети, чтобы получить контроль над адресами различных клиентов. Когда киберпреступник устанавливает Rogue DHCP, он делает это по нескольким причинам:

  • Выполните атаку отказа в обслуживании в сети : Если клиент или клиенты получают этот адрес, они могут «отключить» подключение к Интернету. Таким образом, у клиентов не будет доступа к Интернету или локальной сети.
  • Человек в середине атаки : имея полный контроль над адресацией и DNS-серверами, нет необходимости даже проводить атаку ARP Spoofing, потому что у нас будет полный контроль над всей сетью, и мы сможем перенаправлять клиентов на вредоносные веб-сайты, изменяя DNS-серверы с наш собственный DHCP-сервер, который мы только что установили. Нелегитимный DHCP-сервер может предоставлять ложную информацию о DNS-сервере различным клиентам. Конечно, они не только получат доступ к вредоносным веб-сайтам, но вы также можете легко шпионить за соединениями, потому что мы будем шлюзом.

Чтобы смягчить эту атаку, необходимо убедиться, что в нашей локальной сети нет незаконного DHCP, и именно здесь в игру вступает функция «DHCP Snooping», встроенная в коммутаторы. Эта технология позволяет блокировать сообщения DHCP Offer и DHCP Ack с портов, где это запрещено, то есть там, где нет легитимного сервера. Таким образом, даже если поддельный DHCP-сервер получит сообщения, он никогда не сможет ответить, и клиенты в локальной сети останутся в безопасности. На следующей диаграмме вы можете увидеть, как работает DHCP Snooping:

Еще одна очень распространенная атака на DHCP-серверы из-за того, что у нас нет какого-либо механизма аутентификации клиентов, заключается в том, чтобы сделать десятки запросов на IP-адреса, чтобы исчерпать хранилище IP-адресов сервера, представляя каждый новый идентификатор клиента. время отправки запроса. Это приведет к «сбою» сервера и невозможности дальнейшей адресации. Есть некоторые механизмы смягчения, особенно на уровне интернет-операторов, которые используют DHCP, например RFC3046 с использованием тегов, которые используются в качестве токена авторизации, у нас также есть RFC3118, который предназначен для аутентификации сообщений, но не получил широкого распространения. С выпуском протокола 802.1X для аутентификации проводных клиентов эти RFC были отодвинуты на задний план.

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

Что такое статический DHCP или «Статический DHCP»

Функциональность статического DHCP, также известная как «Статический DHCP» или «Статическое сопоставление», представляет собой возможность специальной настройки определенного клиента на основе его MAC-адреса или его «идентификатора клиента». Благодаря этой функции мы можем установить определенные параметры для этого конкретного клиента, такие как, например, всегда один и тот же частный IP-адрес, чтобы он никогда не менялся. Другие параметры, которые мы можем настроить, - это имя хоста, настройка серверов DNS и WINS, имя домена, серверы NTP, TFTP, LDAP и другая информация, которую также могут предоставить серверы DHCP.

Работа статического DHCP очень проста, мы должны поместить MAC или идентификатор клиента в соответствующий раздел, затем мы настроим конкретный IP-адрес и остальные параметры, которые мы хотим, чтобы клиент имел. Ниже вы можете увидеть все параметры конфигурации, доступные в операционной системе pfSense.

После того, как мы увидели, как можно настроить статический DHCP, мы увидим глобальную конфигурацию DHCP-сервера.

Глобальные настройки DHCP-сервера

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

В случае pfSense мы можем включить или отключить DHCP-сервер, игнорировать или не игнорировать запросы протокола BOOTP, мы также можем составить список контроля доступа, чтобы клиенты могли или не могли получать адреса, мы также можем настроить диапазон IP-адресов. адресация Внутри настроенной нами подсети у нас будет возможность без каких-либо проблем создавать дополнительные «пулы». Конечно, нам также нужно будет заполнить информацию для серверов DNS и WINS, а также другие дополнительные параметры, если они нам понадобятся.

На предыдущих снимках экрана вы можете видеть, что у нас есть возможность настроить DHCP-сервер в pfSense очень продвинутым способом, обычно профессиональные маршрутизаторы имеют все эти параметры конфигурации, в отличие от домашних маршрутизаторов, которые являются гораздо более простыми и не имеют такого большого количества настроек. параметры. Например, мы можем настроить NTP, TFTP и даже LDAP, если захотим, кроме того, у нас также будет возможность отображать эти параметры для их подробной настройки.

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