Está en la página 1de 5

Squid autenticado por grupos do AD (pfSense)

Este tutorial demonstra como utilizar os recursos da biblioteca squid_ldap_group para que o
Squid autentique os usurios por grupos cadastrados no Active Directory.
Por: Ricardo Pardim Claus
29/07/2011
Tags: Squid, pfSense, Active Directory, AD, openldap-client, squid_ldap_group, squid_ldap_auth, squid.inc
Vero do sistema e pacotes utilizados:
pfSense verso 2.0 RC3
Squid verso 2.7
Windows 2003 R2
Existe um bug no squid e no openldap-client, ambos nas verses anteriores 2.0 do pfSense.
Caso o seu pfSense esteja em produo, e no tem como fazer uma nova instalao, dever primeiro
resolver estes problemas seguindo estes tutoriais:
http://www.fug.com.br/content/view/689/77/
http://www.vivaolinux.com.br/dica/Corrigindo-a-opcao-de-Delay-Pools-e-autenticacao-Ldap-do-Squid2.7.8_1-no-PfSense-1.2.3Release
Bases de Referencias:
http://forum.pfsense.org/
http://www.squid-cache.org.br/index.php?option=com_content&task=view&id=50&Itemid=27
http://www.cyberciti.biz/tips/howto-configure-squid-ldap-authentication.html
http://www.papercut.com/kb/Main/ConfiguringSquidProxyToAuthenticateWithActiveDirectory
http://forum.pfsense.org/index.php/topic,20208.0.html
http://www.digipedia.pl/man/doc/view/squid_ldap_auth.8
Mos a obra:
Primeiramente, o squid no pode estar configurado em modo proxy transparente. Neste modo, no
possvel nem ao menos configurar as opes de autenticao no webgui do pfSense, j que proxy
transparente no faz autenticao.
No Active Directory, crie uma OU, com o nome Internet.
Nesta OU, crie 2 grupos Internet-TI, e Internet-Bancos, ou qualquer nome que mais lhe agradar.
O grupo Internet-TI, tem acesso full, sem nenhum bloqueio.
J o internet-bancos, ira navegar apenas em sites cadastrados em uma lista (lista branca).
Na OU Users, crie um usurio com qualquer nome, aqui utilizei o usurio squid.
Defina uma senha para este usurio, e lembre de marcar a opo para no expirar a senha deste usurio.
Aps concluir toda a configurao indicada neste tutorial, voc poder criar quantos grupos desejar, e seguir
com os bloqueios e liberao para cada um deles.
Suponho que o seu Squid j esteja funcionando com os bloqueios desejados.
Antes, necessrio alterar as regras de firewall, para que as estaes clientes sejam obrigadas a utilizarem
o proxy local para ter acesso a internet.
No menu Firewall > Rules, as regras devem ficar conforme imagem abaixo:
OBS: A regra importante que desabilitei, foi a segunda regra, pois ela permite acesso total a qualquer
endereo de destino. Note que no final das regras, eu criei uma regra semelhante.

Squid autenticado por grupos do AD (pfSense)

Figura 1 - Regras de firewall


Agora vamos as configuraes do squid.
Acesse o menu Services > Proxy Server.
Na guia General, desabilite a opo de Proxy Transparente.
Em seguida, acesse a guia Auth Settings.
Altere as regras conforme a imagem abaixo:

Squid autenticado por grupos do AD (pfSense)

Figura 2 - Configurao da guia Auth Settings do Squid


Explicando os valores que utilizei, para servir como referencia:
Meu dominio: dominio.com.br
Servidor AD: 10.0.0.2
Usurio squid:
Este usurio que far a autenticao no AD, para efetuar as pesquisas na base de dados ldap.
Nota: Muitos tutoriais existentes na internet, indica para utilizar um usurio Administrator para pesquisar na
base de dados ldap. Mas no necessrio que o usurio seja administrador. Crie um usurio com um nome
qualquer, sem que este seja administrador do sistema. Isto aumenta a segurana, j que a autenticao
feita em texto puro, sem nenhum tipo de encriptao. (Vide seo Testes e resultados)
Aps efetuar as alteraes e salvar, e inclusive o proxy configurado no navegador da maquina cliente, o
Squid j ira solicitar autenticao para navegar.
Autenticao por Grupo
Falta configurar o squid para autenticar por grupo, e no por usurio ou IP.
Lembrando que nenhuma alterao deve ser feito no arquivo squid.conf (/usr/local/etc/squid/squid.conf),
como feito em outras distribuies linux.
Estas configuraes so sobre escritas sempre que o pfSense for reiniciado, ou qualquer alterao feita pela
webgui.
O correto alterar diretamente o arquivo squid.inc.

Squid autenticado por grupos do AD (pfSense)


Este arquivo se encontra neste diretorio: /usr/local/pkg/squid.inc
O cdigo gerado aps configurar a autenticao na guia Auth Settings do squid, ira gerar estas linhas no
squid.conf:
auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -v 3 -b
dc=dominio,dc=com,dc=br -D cn=squid,cn=Users,dc=dominio,dc=com,dc=br -w 1234 -f
"cn=%s" -u uid -P 10.0.0.2:389
Todas as alteraes que for feita no squid.inc, aps salvar, poder ver no arquivo squid.conf, como esta
ficando as configuraes, para efeitos didticos
Localize estas linhas no squid.inc:
auth_param basic children $processes
auth_param basic realm $prompt
auth_param basic credentialsttl $auth_ttl minutes
acl password proxy_auth REQUIRED
Aps localizar, insira estas linhas, para que a autenticao seja feita por grupo, e inclusive,
ativa os bloqueios/liberao nos grupos desejados:
#AUTENTICACAO POR GRUPOS DO AD
external_acl_type ldap_group children=30
%LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b
"dc=dominio,dc=com,dc=br" -D "cn=squid,cn=Users,dc=dominio,dc=com,dc=br" -w
"1234" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=
%a,ou=Internet,dc=dominio,dc=com,dc=br))" -h 10.0.0.2 -p 389
#LIBERAO/BLOQUEIO DOS GRUPOS
#Grupo Acesso Padrao Acesso Limitado
acl ldapInternet-Bancos external ldap_group Internet-Bancos
#Grupo Acesso Full Acesso Full
acl ldapInternet-TI external ldap_group Internet-TI
#acl bloqueio url_regex -i "/var/squid/acl/bloqueio.acl"
acl liberado url_regex -i "/var/squid/acl/liberado.acl"
http_access allow ldapInternet-TI
http_access deny ldapInternet-Bancos !liberado
Note que para fins de testes, eu deixei desabilitado a ACL bloqueio, j que neste ambiente, irei utilizar
apenas 2 grupos. Um com acesso total, e outro com acesso limitado.
O grupo Internet-Bancos, definido na ACL ldapInternet-Bancos, ir acessar apenas os sites
cadastrados no arquivo liberado.acl (ACL liberado), comumente chamado de lista branca.
Mas nada impede que seja utilizado mais grupos, e outros tipos de bloqueio, ficando a critrio de cada um.
No esquea de criar os arquivos bloqueio.acl, e liberado.acl, e colocar algumas URL's no seu contedo.
Testes e resultados:
Antes de alterar o pfsense da empresa onde trabalho, efetuei testes em 3 maquinas virtuais (WinXP, pfSense
2.0 RC3 e Win2003 R2 Standard Edition).
Na VM, no foi necessrio colocar um usurio administrador para efetuar as pesquisas no LDAP. Mas j no
pfSense instalado na empresa, isso no funcionou. Assim tive que colocar o usurio Administrator do
Win2003 para pesquisar no LDAP deste servidor. Portanto, caso no funcione com usurio comum, troque
pelo usurio administrator, na guia Auth Settings, e tambem na linha em que external_acl_type
ldap_group no arquivo squid.inc.
No pfSense (empresa), as configuraes da guia Auth Settings do squid, foi necessrio alterar a opo

Squid autenticado por grupos do AD (pfSense)


LDAP search filter, de cn=%s, para sAMAccountName=%s, ficando assim:
Authentication server
10.0.0.2
Authentication server port
389
LDAP server user DN
cn=Administrator,cn=Users,dc=dominio,dc=com,dc=br
LDAP password
senha
LDAP base domain
dc=dominio,dc=com,dc=br
LDAP username DN attribute
uid
LDAP search filter
sAMAccountName=%s
Finalizando
Depois de algumas semanas pesquisando na internet, estes foram os passos que segui para que o Squid do
pfSense autenticasse por grupos no Active Directory.

También podría gustarte