Ultimamente, muita gente me pergunta porque que nao funciona o controle por mac address, e um monte de gente criticando ou algo do genero, entao se seguirem essas regras certinho, vao ver que funciona.
Primeiro, precisa-se habilitar o suporte a camada 2 para o ipfw.
Colocar em /etc/sysctl.conf :
net.link.ether.ipfw=1
Ou entao, coloque na mao mesmo:
sysctl net.link.ether.ipfw=1
#desativando passagem unica (nao esquecer!)
/sbin/ipfw disable one_pass
# limpando as chains existentes
/sbin/ipfw -f flush
#Bloqueando NetBios
/sbin/ipfw add 100 deny log all from any 135-139,445 to any
/sbin/ipfw add 101 deny log all from any to any 135-139,445
#Limitando a velocidade de down e up do rede 192.168.10 toda. (todos os ips vao ter upload de 64 e download de 128.
/sbin/ipfw pipe 1 mask src-ip 0x000000ff bw 64Kbps queue 5.4
/sbin/ipfw pipe 2 mask dst-ip 0x000000ff bw 128Kbps queue 10.6
#Definindo os pipes para a rede.
add 100 pipe 1 all from 192.168.10.0/24 to any in layer2
add 101 pipe 2 all from any to 192.168.10.0/24 out layer2
#Definindo quem pode trafegar ( IP X MAC )
## 192.168.10.5
add 200 allow all from any to 192.168.10.5 MAC 00:01:02:03:04:05 any layer2
add 201 allow all from 192.168.10.5 to any MAC any 00:01:02:03:04:05 layer2
## 192.168.10.8
add 202 allow all from any to 192.168.10.8 MAC 00:05:04:03:02:01 any layer2
add 203 allow all from 192.168.10.8 to any MAC any 00:05:04:03:02:01 layer2
#fechando tudo
add 65000 deny all from any to any layer2
Estamos com o basico do basico aí.
Sem mais,