Para que um firewall faça isso, ele precisa oferecer suporte à inspeção do protocolo HTTP, que não é suportada pela maioria dos firewalls (se não todos). Os firewalls geralmente inspecionam as camadas inferiores.
Eu sugiro instalar um proxy como o squid na frente do apache. O, você pode configurá-lo para negar o acesso com base no user-agent (chamado navegador no squid).
acl aclname browser [-i] regexp ...
O servidor proxy também ajuda no armazenamento em cache e, portanto, melhora o desempenho do seu servidor.