Sim, você precisa de ebtables para aplicar as regras do netfilter em uma ponte.
A regra de correspondência é ip
com os parâmetros --ip-source-port
e --ip-destination-port
.
Você configuraria ebtables para permitir o tráfego desejado e, em seguida, uma queda explícita para qualquer outro tráfego.
A porta do cliente DHCP é UDP 68, a porta do servidor DHCP é UDP 67.
Acredito que a sintaxe e a ordem corretas do comando seriam:
ebtables -I INPUT -i eth0 -o eth0 -p ip -j DROP
ebtables -I INPUT -i eth0 -o eth0 -p ip --ip-protocol udp --ip-source-port 67 -j ACCEPT
ebtables -I INPUT -i eth0 -o eth0 -p ip --ip-protocol udp --ip-source-port 68 -j ACCEPT
ebtables -I INPUT -i eth0 -o eth0 -p ip --ip-protocol udp --ip-destination-port 67 -j ACCEPT
ebtables -I INPUT -i eth0 -o eth0 -p ip --ip-protocol udp --ip-destination-port 68 -j ACCEPT
ebtables-save