É verdade que os clientes podem alterar seus endereços mac, tornando assim qualquer tipo de filtragem mais ou menos inútil.
Em LANs com fio, com o tipo certo de comutadores, você pode controlar com MACs a permissão de conectar de quais portas e limitar o número de MACs permitidos em uma porta. Isso pode ajudar, se os clientes estiverem sempre conectados e ligados, mas alguém com o conhecimento do que o MAC está em uma determinada máquina pode desconectar a caixa legítima e alterar seu endereço MAC para corresponder. Alguns switches podem ser configurados para bloquear uma porta se o link ficar inativo e exigir intervenção administrativa, mas isso não é muito adequado.
Então, esse é exatamente o tipo de coisa que o protocolo 802.1x pretendia ajudar. Em resumo, é necessário que um cliente apresente credenciais autenticadas antes do acesso à rede ser concedido. O artigo wikipedia tem uma boa descrição de como funciona.
Até onde eu sei, sem algum tipo de credenciais de acesso, o que você está tentando realizar não pode ser feito. O 802.1x, pelo menos, coloca a autenticação no nível da rede, em vez de permitir o acesso e, em seguida, bloquear o uso de recursos de rede por outros meios.