Retirado de : http://www.vivaolinux.com.br/artigo/Squid-autenticando-no-Windows-utilizando-grupos-do-AD
Por: Robinson Czelusniak em 05/04/2010
Configuração no Windows
Vamos precisar saber algumas informações e vamos precisar criar um usuário no Windows.
Precisamos saber qual é domínio do AD (Active Directory).
Clique no iniciar, depois em executar, digite
dsa.msc e pressione ENTER.
Com este comando ele vai abrir o gerenciamento de usuários e grupos do
AD, verifique qual é o nome do domínio. Exemplo: dominio.local.
Criar usuário:
Vamos criar um usuário para autenticar o Squid onde você cria seus usuários.
Crie um usuário com o nome "squid" e defina um senha para ele.
Vamos criar também 3 grupos.
- PROXY_ADM
- PROXY_MSN
- PROXY_USERS
Porque os grupos?
- O usuário do AD que estiver dentro do grupo PROXY_ADM terá acesso total as páginas;
- O usuário do AD que estiver dentro do grupo PROXY_USERS terá acesso as páginas, mas com o bloqueios determinados;
- O usuário do AD que estiver dentro do grupo PROXY_MSN terá acesso ao MSN.
IMPORTANTE: Se o usuário não estiver no grupo PROXY_USERS ou PROXY_ADM ele não navegará.
Instalando e configurando o Squid
A distribuição utilizada para este artigo foi o SUSE
Linux 10.2.
Instalação do Squid:
# yast -i squid
Depois de instalado o Squid cria o diretório /etc/squid com os arquivos de configuração e são eles que vamos usar, digite:
# cd /etc/squid
Faça uma cópia do squid.conf:
# cp squid.conf squid.conf.old
Agora vamos editar o arquivo squid.conf:
# vi squid.conf
Procure a linha:
#http_port 3128
E descomente-a, deixando assim:
# porta pela qual o Squid libera o acesso
http_port 3128
Salve e saia:
:wq
Pesquise pelo binário squid_ldap_auth:
# find / -iname squid_ldap_auth
Você deve obter o caminho completo do binário:
/usr/sbin/squid_ldap_auth
Agora vamos editar o arquivo squid.conf novamente:
# vi squid.conf
Localize a linha:
#auth_param basic program /usr/libexec/ncsa_auth /usr/etc/passwd
E adicione abaixo dela a seguinte linha:
auth_param basic program /usr/sbin/squid_ldap_auth -R -b
dc=dominio,dc=local -f sAMAccountName=%s -h 192.168.0.254 -D
cn=squid,cn=users,dc=dominio,dc=local -w password
Explicação:
- dc=dominio,dc=local = domínio do AD ( meu exemplo no início, dominio.local)
- 192.168.0.254 = Endereço IP do servidor AD
- cn=squid,cn=users,dc=dominio,dc=local = Caminho completo de onde está o usuário
- password = A senha que foi definida no AD
Descomente as seguinte linhas também:
auth_param basic children 5
auth_param basic realm Digite sua senha
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
:wq
Pesquise pelo binário squid_ldap_group:
# find / -iname squid_ldap_group
Você deve obter o caminho completo do binário:
/usr/sbin/squid_ldap_group
Agora vamos editar o arquivo squid.conf novamente:
# vi squid.conf
Localize no arquivo que trata sobre external_acl_type logo abaixo do que alteramos a pouco e adicione a seguinte linha:
external_acl_type ldap_group %LOGIN /usr/sbin/squid_ldap_group -R -b
"dc=dominio,dc=local" -D cn=squid,cn=users,dc=dominio,dc=local -w
password -f
"(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,ou=groups,dc=dominio,dc=local))"
-h 192.168.0.254
Explicação:
- dc=dominio,dc=local = domínio do AD ( meu exemplo no início, dominio.local);
- 192.168.0.254 = Endereço IP do servidor AD;
- cn=squid,cn=users,dc=dominio,dc=local = Caminho completo de onde está o usuário;
- password = A senha que foi definida no AD;
- memberof=cn=%a,ou=groups,dc=dominio,dc=local = Local onde foi criado os 3 grupos no AD;
:wq