Squid autenticando no Windows utilizando grupos do AD
Autenticando Squid no AD utilizando grupos do AD como base para o acesso, de forma que podemos habilitar a utilização do proxy ou não para os usuários, liberando ou não a utilização do MSN para os usuários também e permitindo que os administradores ou a diretoria navegue sem restrições.
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.
Porque os grupos?
IMPORTANTE: Se o usuário não estiver no grupo PROXY_USERS ou PROXY_ADM ele não navegará.
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:
Salve e saia:
<ESC> :wq <ENTER>
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:
Explicação:
Descomente as seguinte linhas também:
<ESC> :wq <ENTER>
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:
Explicação:
<ESC> :wq <ENTER>
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
http_port 3128
Salve e saia:
<ESC> :wq <ENTER>
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
auth_param basic realm Digite sua senha
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
<ESC> :wq <ENTER>
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;
<ESC> :wq <ENTER>