Se você não quiser usar o proxy (por exemplo, redirecionando todo o tráfego via regra ipfw para o proxy - os usuários não notarão nada) - para a solução, você precisa de algo que seja capaz de > inspeção profunda de pacotes .
Verifique o: link ele deve fazer o que você quiser, "filtragem layer7" com ipfw. (ou com pf também)
Ou faça o download de pfSense
(firewall excelente baseado no FreeBSD) e verifique como usá-lo. De acordo com os documentos, ( link ) é usado ipfw-classifyd
.
Ps: só imaginando por que você não usa pf ao invés de ipfw + ngnat)