¿Qué hacer cuando un equipo no toma la dirección preasignada en nuestro servidor DHCP local?

fetch-php

Puede ocurrir que tengamos algún servidor DHCP ejecutándose en paralelo en nuestra red que no tengamos controlado, por ejemplo, en algún dispositivo de red que responda a peticiones de descubrimiento y se adelante a nuestro servidor DHCP. Si se diera el caso, algunos equipos conectados a nuestra red tomarían direcciones distintas a las esperadas, en caso de que hubiéramos configurado nuestro servidor para, por ejemplo, asociar IP a MAC.

Para descubrir cuál es el dispositivo y así deshabilitarlo usaremos nmap (para este ejemplo consideramos el dispositivo de red eth0):

# nmap --script broadcast-dhcp-discover -e eth0

Se modo que se obtiene la siguiente información:

Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-03 21:22 CEST
Pre-scan script results:
| broadcast-dhcp-discover: 
|   Response 1 of 3: 
|     Interface: eth0
|     IP Offered: 192.168.2.51
|     Subnet Mask: 255.255.255.0
|     Router: 192.168.2.1
|     Domain Name Server: 192.168.2.10, 192.168.2.10
|     IP Forwarding: false
|     Non-local Source Routing: false
|     Maximum Datagram Reassembly Size: 576
|     Default IP TTL: 64
|     Path MTU Aging Timeout: 10m00s
|     Path MTU Plateau: 68, 296, 508, 1006, 1492, 2002, 4352, 8166, 17914
|     All Subnets are Local: false
|     Broadcast Address: 255.255.255.255
|     Perform Mask Discovery: false
|     Mask Supplier: false
|     Perform Router Discovery: true
|     Router Solicitation Address: 224.0.0.2
|     Trailer Encapsulation: false
|     ARP Cache Timeout: 1m00s
|     Ethernet Encapsulation: false
|     TCP Keepalive Interval: 7200
|     TCP Keepalive Garbage: true
|     IP Address Lease Time: 1d00h00m00s
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 192.168.2.10
|   Response 2 of 3: 
|     Interface: eth0
|     IP Offered: 192.168.2.51
|     Subnet Mask: 255.255.255.0
|     Router: 192.168.2.1
|     Domain Name Server: 192.168.2.10, 192.168.2.10
|     IP Forwarding: false
|     Non-local Source Routing: false
|     Maximum Datagram Reassembly Size: 576
|     Default IP TTL: 64
|     Path MTU Aging Timeout: 10m00s
|     Path MTU Plateau: 68, 296, 508, 1006, 1492, 2002, 4352, 8166, 17914
|     All Subnets are Local: false
|     Broadcast Address: 255.255.255.255
|     Perform Mask Discovery: false
|     Mask Supplier: false
|     Perform Router Discovery: true
|     Router Solicitation Address: 224.0.0.2
|     Trailer Encapsulation: false
|     ARP Cache Timeout: 1m00s
|     Ethernet Encapsulation: false
|     TCP Keepalive Interval: 7200
|     TCP Keepalive Garbage: true
|     IP Address Lease Time: 1d00h00m00s
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 192.168.2.10
|   Response 3 of 3: 
|     Interface: eth0
|     IP Offered: 192.168.2.178
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 192.168.2.3
|     IP Address Lease Time: 12h00m00s
|     Renewal Time Value: 6h00m00s
|     Rebinding Time Value: 10h30m00s
|     Subnet Mask: 255.255.255.0
|     Broadcast Address: 192.168.2.255
|     Vendor Specific Information: roguedhcpserver
|     Hostname: Rogue-DHCP-srv
|     Domain Name Server: 192.168.2.10
|_    Router: 192.168.2.1

Nótese que las dos primeras respuestas corresponden a las esperadas por nuestro servidor (lo tenemos para este ejemplo en la 192.168.2.10), mientras que una tercera procede del equipo 192.168.2.3.

Hemos podido detectar el servidor DHCP no controlado en nuestra red. Ahora es nuestro turno el desactivarlo.

Deja un comentario