DHCP разное

Популярные сервера
Dhcp tunnel vision

Для любителей подключатся к открытым хотспотам, а затем поднимать какой VPN и думать что защищены 🙂

Атака TunnelVision, позволяющая перенаправить VPN-трафик через манипуляции с DHCP- уязвимость пользовательских vpn.

Красиво сделали: Перенаправление осуществляется через выставления серии маршрутов для подсетей с префиксом /1, которые имеют более высокий приоритет, чем применяемый по умолчанию маршрут с префиксом /0 (0.0.0.0/0), соответственно трафик вместо выставленного для VPN виртуального сетевого интерфейса, будет направлен через физический сетевой интерфейс на хост атакующего в локальной сети.

Атака может быть осуществлена в любых операционных системах, поддерживающих 121 опцию DHCP, включая Linux, Windows, iOS и macOS, независимо от используемого протокола VPN (Wireguard, OpenVPN, IPsec) и набора шифров. Платформа Android атаке не подвержена, так как не обрабатывает опцию 121 в DHCP.

 

DHCP client

Проверка на то, что DHCP делает renew и посмотреть время аренды можно по логам dhcpclient.

sudo grep dhclient /var/log/syslog
2019 Feb  9 13:42:27 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2019 Feb  9 13:42:27 info dhclient[12271]: DHCPACK from 172.2.2.2 (xid=0x1111111111)
2019 Feb  9 13:42:30 info dhclient[12271]: bound to 172.1.1.1 -- renewal in 38785 seconds.
2019 Feb 10 00:28:55 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2019 Feb 10 00:29:03 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2019 Feb 10 00:29:03 info dhclient[12271]: DHCPACK from 172.2.2.2 (xid=0x1111111111)
2019 Feb 10 00:29:05 info dhclient[12271]: bound to 172.1.1.1 -- renewal in 34413 seconds.
2019 Feb 10 10:02:38 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2019 Feb 10 10:02:43 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2020 Feb 10 10:02:43 info dhclient[12271]: DHCPACK from 172.2.2.2 (xid=0x1111111111)
2020 Feb 10 10:02:45 info dhclient[12271]: bound to 172.1.1.1 -- renewal in 38382 seconds.

 

ISC dhcp LOGS/Config/START
cat /var/lib/dhcp/dhcpd.leases
nano /etc/dhcp/dhcpd.conf
sudo service isc-dhcp-server status
Пример настройки выдачи DNS серверов Yandex.
option domain-name-servers 77.88.8.88, 77.88.8.2;
Пример сохраняемой на DHCP сервере информации при запросе IP.
lease 10.3.1.129 {
starts 3 2020/02/09 10:45:42;
ends 4 2020/02/10 10:45:42;
cltt 3 2020/02/09 10:45:42;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet f0:79:59:36:a3:65;
uid "\377Y6\243e\000\001\000\001)q\300\342\360yY6\243e";
option agent.circuit-id 0:4:0:3:0:15;
option agent.remote-id 0:6:1c:5f:2b:16:ae:d8;
client-hostname "serv-01-02";
}

Пример сурового конфига по лизам (максимальная экономия адресов в пуле за счет минимальной времени аренды).

А если это юзер халявной зоны WiFi, то там совсем-совсем другая история.

А если это юзер халявной зоны WiFi, то там совсем-совсем другая история. Они не прогоняются через конторский биллинг принципиально. Для них подняты отдельные ISC DHCPD (другая пара helpers, с failover) с самыми жестокими параметрами. В данном случае порог ((уменьшения лизы до минимального времени в 600 секунд)) это занятость пула на 75%.
max-lease-time 1800;
min-lease-time 600;
adaptive-lease-time-threshold 75;
DHCP options

Опция 82 используется при работе DHCP relay для передачи сведений откуда пришел запрос (для выдачи верных данных и напр. фиксации трапов с какого коммутатора пришли). В целях безопасности по умолчанию DHCP запросы с уже заполненной опцией 82 отбрасываются. Для каждого порта нужно настраивать поведение для обработки запросов с заполненной опцией 82. Обычно опция 82 состоит из двух сабопций: 82.1 Circuit ID и 82.2 Remote ID. Оба поля могут использоваться и по отдельности и вместе. Так же можно использовать любые другие сабопции.

Опции DHCP используются для авто-провижнинга. Это могут быть разные устройства – VOIP телефоны (option 150 с указанием адреса TFTP сервера для IP phones), точки доступа и даже коммутаторы на базе Linux.

Первая загрузка в Cumulus Linux, определяется наличие скриптов настройки через опцию 239 DHCP. Если в ответ получается URL адрес, то по нему запрашивается скрипт, в нем разыскивается CUMULUS-AUTOPROVISIONING и скрипт запускается от root. Поддерживаются Bash, Ruby, Perl, Python.

Опции используются для передачи от DHCP сервера статических маршрутов на DHCP client.

  • 249 – статические маршруты, только винда
  • 121 – и винда и линукс
  • 33 – статические маршруты без поддержки маски (FFx4)
DHCP CONFLICT IP
DHCP SERVER PING
Можно включить на сервере ping-check, недостаток в + секунде на выдачу. При этом в случае если DHCP увидит, что хост доступен – он временно (по умолчанию 24 часа) вынесет IP из пула и пометит его как abandoned.
ping-check
https://linux.die.net/man/5/dhcpd.conf
http://www.ipamworldwide.com/ipam/dhcp-server-params.html

ping-check flag; - when flag = true the DHCP server will ping the address to be offered to a client before issuing the offer. If no response is received the offer is delivered; otherwise the address is abandoned and no response is sent to the client.

ping-timeout seconds; - the default timeout for the ping-check parameter is one second. An alternative timeout value may be specified using this parameter statement.

The lease will remain abandoned for a minimum of abandon-lease-time seconds. If not defined, the default abandon lease time is 86400 seconds (24 hours).
DHCP использует ARP для защиты от конфликта IP

Как минимум два использования ARP для защиты от конфликта:

  • сервер предварительно делает arp request с попыткой резолва IP, который собирается выдать. Делается, если сервер находится в одной подсети с клиентом, которому лизу выдает.
  • клиент делает три garp после получения IP, если клиент получает ответ – он отсылает DHCP серверу DHCP DECLINE, чтобы тот пометил адрес как проблемный

Пример дампа:

Cisco CNR особенности

Узнал пару новых вещей, расширяя забитый пул для одного из сегментов сети:

  • в случае CNR (или по крайнем мере нашей реализацией взаимодействия с ним) нельзя просто увеличить маску сети для сегмента, несмотря на то, что следующая сеть свободна. Если изменить маску, на DHCP дропаются все старые лизы и DHCP пул просто пересоздастся. Поэтому проще работать по стандартной схеме – вынести текущую сеть как secondary, а новую, с большой маской, настроить как primary (разумеется, предварительно добавив на сервер). В таком случае прерывания нет или оно минимально – при перевешивании primary -> secondary у меня не прервался даже telnet.
  • 10% пула по умолчанию уходит в резерв, поэтому выдача IP идет не с 1-го адреса. Нужно это для failover сервера, в случае падения основного. Основной с failover синхронизятся раз в час и чтобы избежать конфликтов для лиз, которые выдались после синхронизации, failover сначала выдает IP из этого резервного пула. Для многих сетей это удобно и тем, что первые адреса диапазона зачастую занимаются под сервера/юр. лиц.
Дамп трафика

flow-graph-1.pcapng

 

question

Какой тип сообщения DHCP отправляется сервером?

DHCP Request

DHCP Discover

DHCP Release

DHCP Offer

DHCP Offer

Выберите правильные шаги для получения Р-адреса через DHCP:

Offer → Request → Discover → Acknowledgment

Discover → Offer → Request → Acknowledgment

Request → Acknowledgment → Discover → Offer

Discover → Request → Offer → Acknowledgment

Discover → Offer → Request → Acknowledgment

 

DHCP использует протокол транспортного уровня:

Final Results

UDP

И UDP, и ТСР

DHCP – протокол транспортного уровня

TCP

UDP

Если для клиента DHCP сервер DHCP находится в другой сети, то какая технология нужна для получения ІР-адреса?

DHCP Relay

DHCP Inform

DHCP Spoofing

DHCP Relay

Какой тип сообщения DHCP отправляется клиентом?

DHCP Acknowledgment (Ack)

DHCP Request

DHCP Offer

DHCP Request

UDP-порт 67 по умолчанию слушает DHCP-…

Никто не слушает

Сервер

Клиент

Сервер

Какой тип сообщения DHCP отправляется клиентом при обновлении (renew) арендованного ранее ІР-адреса?

DHCP Offer

DHCP Acknowledgment (Ack)

DHCP Renew

DHCP Request

DHCP Request

 

Leave a Reply