Pesquisar este blog

domingo, 15 de novembro de 2015

Squid autenticando no Windows utilizando grupos do AD


Autor: Robinson Czelusniak
Data: 05/04/2010
Retirado de: http://www.vivaolinux.com.br/artigo/Squid-autenticando-no-Windows-utilizando-grupos-do-AD

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


Configurações das regras do Squid

Digite:
# vi /etc/squid/squid.conf

Vamos criar as ACLs.
Procure a linha:
#acl password proxy_auth REQUIRED

Descomente-a:

acl password proxy_auth REQUIRED

Crie ACLs com as seguintes informações:

# Administradores - Acesso total liberado
acl proxyadmins external ldap_group PROXY_ADM

# Grupo para acesso a Internet
acl proxyusers external ldap_group PROXY_USERS

# Grupo para acesso ao MSN
acl proxymsn external ldap_group PROXY_MSN

# Regras de bloqueio/desbloqueio de conteudo

# Controle de downloads

# Sites que nao precisam de autenticacao
acl sites_sem_autenticacao dstdom_regex -i "/etc/squid/rules/sites_sem_autenticacao"

# Controle de uso do MSN
acl msn_urls urlpath_regex -i "/etc/squid/rules/msn_urls"
#acl msn_ips dst -i "/etc/squid/rules/msn_ips"

# Controle de downloads
acl downloads_proibidos urlpath_regex -i "/etc/squid/rules/downloads_proibidos"
acl downloads_permitidos urlpath_regex -i "/etc/squid/rules/downloads_permitidos"

# Controle de palavras
acl palavras_proibidas url_regex -i "/etc/squid/rules/palavras_proibidas"
acl palavras_permitidas url_regex -i "/etc/squid/rules/palavras_permitidas"

# Controle de dominios
acl sites_proibidos dstdom_regex -i "/etc
/squid/rules/sites_proibidos"
acl sites_permitidos dstdom_regex -i "/etc/squid/rules/sites_permitidos"

# Controle de URL's
acl urls_proibidas url_regex -i "/etc/squid/rules/urls_proibidas"
acl urls_permitidas url_regex -i "/etc/squid/rules/urls_permitidas"

#Configuracao das regras:

# Libera sites sem autenticacao
http_access allow sites_sem_autenticacao

# Libera acesso total para administradores
http_access allow proxyadmins

# Controle de uso do MSN
http_access deny msn_urls !proxymsn
#http_access deny msn_ips !proxymsn

# Controle de downloads
http_access deny downloads_proibidos !downloads_permitidos !sites_permitidos !urls_permitidas

# Controle de palavras
http_access deny palavras_proibidas !sites_permitidos !urls_permitidas

# Controle de sites
http_access deny sites_proibidos

# Controle de URL's
http_access deny urls_proibidas !urls_permitidas

# Libera acesso para usuarios autenticados
http_access allow password proxyusers


# Example rule allowing access from your local networks. Adapt
# to list your (internal) IP networks from where browsing should
# be allowed
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all

Feito isso salve e feche o arquivo.

:wq


Criando arquivos e iniciando o Squid

Para finalizar as configurações vamos criar os arquivos onde ficarão as regras:

# mkdir /etc/squid/rules
# touch /etc/squid/rules/sites_sem_autenticacao
# touch /etc/squid/rules/msn_urls
# touch /etc/squid/rules/msn_ips
# touch /etc/squid/rules/downloads_proibidos
# touch /etc/squid/rules/downloads_permitidos
# touch /etc/squid/rules/palavras_proibidas
# touch /etc/squid/rules/palavras_permitidas
# touch /etc/squid/rules/sites_proibidos
# touch /etc/squid/rules/sites_permitidos
# touch /etc/squid/rules/urls_proibidas
# touch /etc/squid/rules/urls_permitidas


E dentro de cada arquivo adicionar as URLs ou palavras a serem bloqueadas ou liberadas de acordo com o nome de cada arquivo.

Vamos criar o cache para o Squid:

# squid -z

Agora vamos iniciar o Squid:

# /etc/rc.d/squid start
ou
# rcsquid restart

Para garantir que o serviço irá iniciar caso seja feito reboot no servidor digite:

# chkconfig squid on

E pronto, seu Squid já estará autenticando os usuários, agora basta configurar no navegador das estações para que usem proxy. Lembre-se para que o usuário possa navegar ele tem que estar em dos grupos do AD (PROXY_ADM ou PROXY_USERS).




Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.