Você está na 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.

Você também pode gostar