Eu posso te dizer como Squid e Dansguardian funcionam.
O Squid é um proxy HTTP. Isso significa que, em vez de um navegador enviar solicitações HTTP diretamente para o endereço de destino que deseja contatar, ele será enviado ao Squid, que em circunstâncias normais emitirá a solicitação para o endereço de destino, receberá a resposta e encaminhará a resposta de volta para o endereço de destino. navegador solicitante original.
Onde as coisas ficam interessantes é na habilidade do Squid fazer mais do que apenas um simples encaminhamento. Uma coisa pela qual é famosa é o armazenamento em cache; é onde ele mantém as páginas acessadas com freqüência no disco e usa o disco para atender às solicitações, em vez de entrar em contato com o servidor de destino para a mesma página várias vezes.
Outra coisa é filtrar; O Squid pode, em resposta a uma solicitação HTTP, retornar uma página de erro (dizendo que a página está bloqueada, por exemplo) se o URL corresponder a padrões ou se um script negar esse URL. Dansguardian trabalha assim, eu acredito; um script é executado para cada solicitação HTTP que verifica a URL e emite uma resposta de aprovação ou negação ao Squid.
Agora, a menos que você queira que os usuários ignorem isso facilmente, o Squid deve ser a única maneira de o tráfego HTTP entrar e sair de sua rede. Os navegadores podem ser configurados explicitamente para usar servidores proxy, mas uma maneira melhor é configurar o Squid para fazer proxy transparente em ou próximo a um dispositivo de gateway em uma rede. Você precisará configurar seu dispositivo de gateway para redirecionar todo o tráfego da porta de saída 80 para o IP e a porta do Squid. Isso faz com que o Squid receba todo o tráfego de saída na porta 80, interceptando todas as solicitações HTTP de forma transparente, forçando todos os usuários a passar pelo proxy. Então, qualquer política implementada no Squid será aplicada a todos os usuários dessa rede.