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.
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:
: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:
Explicação:
Descomente as seguinte linhas também:
: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:
Explicação:
:wq
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:
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
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;
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:
Crie ACLs com as seguintes informações:
Feito isso salve e feche o arquivo.
:wq
# 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
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.
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).
# 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.