pfsense: bloqueando um segundo servidor DHCP

2

Na minha LAN, estou usando um servidor PFSense com um servidor DHCP.

Eu preciso bloquear um segundo servidor DHCP que aparece na minha LAN. Acho que posso usar o firewall do PfSense para recusar o outro endereço IP do servidor DHCP.

O que devo fazer?

    
por zore lu 22.04.2017 / 04:05

2 respostas

2

Infelizmente, você não pode bloquear um segundo DHCP na mesma LAN (certamente não no nível de firewall, e mitigá-lo com equipamentos de comutação de empresas de ponta não é um tópico simples); uma solicitação IP é um serviço broacast, que geralmente opera no nível da LAN e, como tal, não há serviços de roteamento para bloquear serviços no nível do firewall.

por exemplo. firewalls não bloqueiam conversas entre as máquinas que pertencem ao mesmo netblock / LAN, porém eles controlam / serviços fazendo roteamento por ele para conversar com outras redes.

O protocolo DHCP define que qualquer resposta chega primeiro a uma estação solicitando um IP, será a resposta aceita. Então, dependendo de quem vencer, as estações de trabalho receberão aleatoriamente um endereço IP do endereço IP oficial ou falso.

O que pode ser feito é a mitigação, ou seja, encontrar o MAC do equipamento em questão e procurar por ele nos seus switches ou bloquear esse MAC nos seus switches / AP sem fio.

Para descobrir, você tem dois caminhos possíveis:

Você acessa uma máquina afetada e tenta descobrir o endereço IP do servidor DHCP que atendeu a essa solicitação. Ou, para esse efeito, libere o endereço IP e peça várias vezes.

Quando tiver uma resposta para o roteador externo, obtenha esse endereço IP (por exemplo, com ipconfig /all em um cliente Windows), depois, para obter esse endereço MAC, suponha que o endereço IP do DHCP não autorizado seja 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

Ou, da minha maneira preferida, em uma caixa do Linux, você usa tcpdump para ouvir algumas solicitações de DHCP (a caixa tem um controle deslizante horizontal para ver todo o 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

Veja as linhas que dizem DHCP Responder:
neste exemplo, o servidor DHCP é 1.1.3.254 e tem o MAC 00: 0b: fc: 07: 04: 00; o segundo tem o endereço IP 1.1.3.200 e tem o endereço MAC 00: 0b: fc: 07: 04: 01 (linhas 6 e 7 da saída).

    
por 22.04.2017 / 10:08
2

Eu usei a privação de DHCP (direcionada especificamente para o servidor DHCP desonesto) por períodos mais longos. Experimente o dhcdrop ou dhcpstarv ou um script de ficção. Eu finalmente fui com o último porque era mais flexível. Tanto no scapy quanto no dhcpstarv é possível direcionar o servidor DHCP ofensivo sem interromper um serviço legítimo.

Alguns roteadores e switches podem soltar links para hosts que ofendem um conjunto de regras. Veja este segmento de suporte da Cisco por exemplo.

    
por 22.04.2017 / 19:51