A autenticação poderá ser feita de várias maneiras, como por exemplo, no formato NCSA (geralmente associado ao utilitário htpasswd, o mesmo utilizado pelo Apache), ou ainda através de um servidor LDAP, um PDC Windows NT/2000, ou módulos PAM, etc. A maneira mais comum de realizar autenticação é com o uso do formato NCSA que usa o módulo ncsa_auth. Para este trabalho nossa implementação foi baseada neste método.
O cadastro dos usuários para acesso ao Squid é feito com o uso do utilitário htpasswd, conforme podemos ver no exemplo abaixo, lembrando apenas que a opção -c deve ser usada apenas caso o arquivo de senhas ainda não exista, pois ela instrui o utilitário a criá-lo.
# htpasswd -c arquivo_de_senhas usuario
Para que o Squid forneça suporte a autenticação devemos habilitar estas configurações no arquivo squid.conf através da TAG auth_param. É nela que são realizadas as mudanças necessárias para que o esquema de autenticação comece a funcionar, já que por padrão ele não vem habilitado. No próprio arquivo tem comentários que mostram como isso deve ser feito para cada tipo escolhido. Como vamos utilizar o método básico, nossa configuração ficou assim.
auth_param basic realm Servidor_Proxy ( Digite Usuario|Senha )
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwd
acl autenticados proxy_auth REQUIRED
http_access allow autenticados
A linha auth_param basic program /usr/lib/squid/ncsa_auth
/etc/squid/squid_passwd especifica qual módulo será usado, no caso /usr/lib/squid3/ncsa_auth é onde se encontra o arquivo com os usuários e senhas gerado conforme comentado acima. Em auth_param basic realm Servidor_Proxy ( Digite Usuario|Senha ) configura-se a mensagem que aparecerá na tela onde são fornecidas as informações do usuário para autenticação. Esta opção é interessante para que possamos personalizar este mensagem da tela de login do nosso servidor. Em acl autenticados proxy_auth REQUIRED configura-se a obrigatoriedade da autenticação sem esta opção um usuario invalido ou até mesmo em barnco conseguiria navegar, e por ultimo http_access allow autenticados setando esta linha confirmamos que apenas os autenticados possam navegar, os demais serao proibidos.