
En mi LAN estoy usando un servidor PFSense con un servidor DHCP.
Necesito bloquear la aparición de un segundo servidor DHCP en mi LAN. Creo que puedo usar el firewall PfSense para rechazar la dirección IP del otro servidor DHCP.
¿Qué tengo que hacer?
Respuesta1
Desafortunadamente, no se puede bloquear un segundo DHCP en la misma LAN (ciertamente no a nivel de firewall, y mitigarlo con equipos de conmutación empresarial de alta gama no es un tema sencillo); Una solicitud de IP es un servicio de transmisión que generalmente opera a nivel de LAN y, como tal, no existen servicios de enrutamiento para bloquear servicios a nivel de firewall.
por ejemplo, los firewalls no bloquean las conversaciones entre las máquinas que pertenecen al mismo bloque de red/LAN, sin embargo sí controlan/servicios enrutando por él para hablar con otras redes.
El protocolo DHCP define que cualquier respuesta que llegue primero a una estación que solicita una IP, será la respuesta aceptada. Entonces, dependiendo de quién gane, las estaciones de trabajo obtendrán aleatoriamente una dirección IP de la dirección IP oficial o de la falsa.
Lo que se puede hacer es mitigación, es decir, encontrar la MAC del equipo infractor y buscarla en sus conmutadores o bloquear esa MAC en sus conmutadores/AP inalámbrico.
Para averiguarlo, tienes dos posibles formas:
Vas a una máquina afectada e intentas averiguar la dirección IP del servidor DHCP que atendió esa solicitud. O, de hecho, libere la dirección IP y solicítela varias veces.
Una vez que tenga una respuesta para el enrutador externo, obtenga esa dirección IP (por ejemplo, en ipconfig /all
un cliente de Windows), luego obtenga esa dirección MAC, luego supongamos que la dirección IP del DHCP no autorizado es 1.1.3.200:
$ping -c1 1.1.3.200
PING 1.1.3.200 (1.1.3.200) 56(84) bytes of data.
64 bytes from 1.1.3.200: icmp_seq=1 ttl=255 time=0.273 ms
--- 1.1.3.200 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.273/0.273/0.273/0.000 ms
$arp -a 1.1.3.200
xxxx.local (1.1.3.200) at 00:0b:fc:07:04:01 [ether] on eth0
O mi forma preferida, en un cuadro de Linux, suele tcpdump
escuchar un par de solicitudes de DHCP (el cuadro tiene un control deslizante horizontal para ver todo el texto)
sudo tcpdump -n -c 10 -e port 68
09:23:57.298176 00:21:97:c6:76:fc > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.2.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:21:97:c6:76:fc, length 300
09:23:59.034798 00:19:21:3c:2c:22 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.116.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:19:21:3c:2c:22, length 300
09:24:00.191144 64:00:6a:09:58:16 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.142.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 64:00:6a:09:58:16, length 300
09:24:07.325291 6c:62:6d:d0:20:f4 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.2.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 6c:62:6d:d0:20:f4, length 300
09:24:31.500826 00:23:24:06:e8:0b > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 363: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:23:24:06:e8:0b, length 321
09:24:31.502554 00:0b:fc:07:04:00 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.254.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
09:24:31.502812 00:0b:fc:07:04:01 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.200.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
09:24:32.098505 00:0f:fe:fd:6c:27 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.10.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0f:fe:fd:6c:27, length 300
09:24:49.340908 64:00:6a:09:05:6d > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.174.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 64:00:6a:09:05:6d, length 300
09:24:53.444891 ac:16:2d:08:44:1b > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.170.68 > 255.255.255.255.67: BOOTP/DHCP, Request from ac:16:2d:08:44:1b, length 300
Tenga cuidado con las líneas que dicen Respuesta DHCP:
en este ejemplo, el servidor DHCP es 1.1.3.254 y tiene la MAC 00:0b:fc:07:04:00; el segundo tiene la dirección IP 1.1.3.200 y la dirección MAC 00:0b:fc:07:04:01 (líneas 6 y 7 de la salida).
Respuesta2
He utilizado la inanición de DHCP (dirigida específicamente al servidor DHCP no autorizado) durante períodos de tiempo más prolongados. Intentardhcdropodhcpstarv, o un guión aterrador. Finalmente opté por este último porque era más flexible. Tanto en scapy como en dhcpstarv es posible apuntar al servidor DHCP infractor sin interrumpir un servicio legítimo.
Algunos enrutadores y conmutadores pueden colocar enlaces a hosts que infringen un conjunto de reglas. Vereste hilo de soporte de CiscoPor ejemplo.