Se puede hacer todo lo que pedis. Hay que instalarle el paquete "squid" y configurarlo como proxy transparente.
Se le pueden definir listas de control de acceso (ACLs )por MAC, o por IPs, conjuntos de IPs, expresiones regulares, URLs, subredes en formato clasico o CIDR, y mas…
Y a cada ACL se le permite o deniega el acceso.
Supongo que tambien se puede hacer con las reglas de firewall PF, (por si no quereis que haga de proxy transparente), pero solo llevo 4 dias con esta appliance, y no se la sintaxis de PF.
El squid ya lo habia manejado en linux, y hay mucha documentacion sobre como configurarlo, no se si pfSense tiene una buena GUI para hacerlo.
Se instala en System-> Packages.
Se configura en Services-> Proxy.
Si ademas quereis un filtro de contenidos instalad "squidguard", que se configura en Services ->filter.