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 usuários por grupos cadastrados no Active Directory. Por: Ricardo Pardim Claus 29/07/2011 ags: ags : Squid, pfSense, Active irector!, irector!, A, openldap"client, squid#ldap#$roup, squid#ldap#aut%, squid&inc
!er"o do sistema e pacotes utilizados# utilizados# pfSense vers'o 2&0 RC( Squid vers'o 2&7 )indo*s 200( R2 +iste um -u$ no squid e no n o openldap"client, am-os nas vers.es anteriores 2&0 do pfSense& Caso o seu pfSense estea em produ'o, e n'o tem como faer uma nova instala'o, dever3 primeiro resolver estes pro-lemas se$uindo estes tutoriais: %ttp://***&fu fu$ $&com&-r /content/vi vie e*/4 /45 59/ 9/77 77// %ttp %t tp :/ :///** *** *&v &viv iva aol olin inu u &c &com om &&-r / r/dica/Corri$indo"a"opcao"de"ela!"Pools"e"autenticacao"6dap"do"Squid" 2&7&5# 2&7& 5#1" 1" no "P "PfS fSen ense se "1 "1&2 &2&( &( Re Rele leas ase e $ases de %eferencias# %ttp %t tp :/ :///fo foru rum m&p &pfs fsen ense se &or or$ $ / %ttp://***&squid"cac%e&or$&-r/inde&p%poption8com#contenttas8vie*id8;0
Confi$urin$SquidPro!>oAut%enticate)it%Activeirector! oAut%enticate)it%Activeirector! %ttp %t tp :/ :///fo foru rum m&p &pfs fsen ense se &or or$ $ /inde&p%p/topic,20205&0& %tml %tml %ttp %t tp :/ :///** *** *&d &dii$i $ipe pedi dia a&p &pl / l man/doc/vie* /squid #ldap#aut%&5
&"os a obra# Primeirame Primeiramente, nte, o squid n'o pode estar confi$urado confi$urado em modo pro! transparente& transparente& ?este modo, n'o @ possvel nem ao menos confi$urar as op.es de autentica'o no *e-$ui do pfSense, 3 que pro! transparente n'o fa autentica'o& ?o Active irector!, crie uma ', ', com o nome Bnternet B nternet& ?esta DE, crie 2 $rupos Bnternet* B nternet*, , e Bnternet*$ancos Bnternet*$ancos, , ou qualquer nome que mais l%e a$radar& D $rupo <, tem acesso full, sem nen%um -loqueio& F3 o internet"-ancos, ira nave$ar apenas em sites cadastrados em uma lista Glista -rancaH& ?a DE Bsers Bsers, crie um usu3rio com qualquer nome, aqui utiliei o usu3rio squid& efina uma sen%a para este usu3rio, e lem-re de marcar a op'o para n'o epirar a sen%a deste usu3rio& ApIs concluir toda a confi$ura'o indicada neste tutorial, vocJ poder3 criar quantos $rupos desear, e se$uir com os -loqueios e li-era'o para cada um deles& Supon%o que o seu Squid 3 estea funcionando com os -loqueios deseados& Antes, @ necess3rio alterar as re$ras de fire*all, para que as esta.es clientes seam o-ri$adas a utiliarem o pro! local para ter acesso a internet& ?o menu +ire,all - %ules, %ules, as re$ras devem ficar conforme ima$em a-aio: '$S: '$S: A re$ra re$ra importante que desa-ilitei, desa-ilitei, foi a se$unda se$unda re$ra, pois ela permite permite acesso total a qualquer qualquer endereo de destino& ?ote que no final das re$ras, eu criei uma re$ra semel%ante&
Squid autenticado por grupos do AD (pfSense)
Ki$ura 1 " Re$ras de fire*all
A$ora vamos as confi$ura.es do squid& Acesse o menu Services L Pro! Server& ?a $uia Beneral, desa-ilite a op'o de B/ro0y ransparente& +m se$uida, acesse a $uia B Aut1 Settings& Altere as re$ras conforme a ima$em a-aio:
Squid autenticado por grupos do AD (pfSense)
+igura 2 * 3onfigura4"o da guia Aut1 Settings do Squid +plicando os valores que utiliei, para servir como referencia: &eu dominio: dominio&com&-r Servidor AD: 10&0&0&2 suário squid: +ste usu3rio que far3 a autentica'o no A, para efetuar as pesquisas na -ase de dados ldap& 5ota: =uitos tutoriais eistentes na internet, indica para utiliar um usu3rio Administrator para pesquisar na -ase de dados ldap& =as n'o @ necess3rio que o usu3rio sea administrador& Crie um usu3rio com um nome qualquer, sem que este sea administrador do sistema&
Squid autenticado por grupos do AD (pfSense) +ste arquivo se encontra neste diretorio: 8usr8local8p9g8squid.inc D cIdi$o $erado apIs confi$urar a autentica'o na $uia B Aut1 Settings do squid, ira $erar estas lin%as 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 13! -" #cn=$s# -u uid -% 1&'&'&'(3)*
>odas as altera.es que for feita no squid.inc, apIs salvar, poder3 ver no arquivo squid.conf , como esta ficando as confi$ura.es, para efeitos did3ticos 6ocalie estas lin%as no squid.inc: auth_param basic children +processes auth_param basic realm +prompt auth_param basic credentialsttl +auth_ttl minutes acl password prox_auth .U0.D
Ap:s localizar; insira estas lin1as; para que a autentica4"o se2ccount4ame=$v :membero"=cn= $a,ou=0nternet,dc=dominio,dc=com,dc=br# -h 1&'&'&' -p 3)* 90?.2@A6/?96U.06 D68 7U%68 7rupo 2cesso %adrao 2cesso 9imitado acl ldap0nternet-?ancos external ldap_group 0nternet-?ancos 7rupo 2cesso Bull 2cesso Bull acl ldap0nternet-0 external ldap_group 0nternet-0 acl bloqueio url_regex -i #/var/squid/acl/bloqueio'acl# acl liberado url_regex -i #/var/squid/acl/liberado'acl# http_access allow ldap0nternet-0 http_access den ldap0nternet-?ancos Cliberado
?ote que para fins de testes, eu deiei desa-ilitado a AC6 B-loqueio, 3 que neste am-iente, irei utiliar apenas 2 $rupos& Em com acesso total, e outro com acesso limitado& D $rupo nternet*$ancos, definido na AC6 ldapnternet*$ancos, ir3 acessar apenas os sites cadastrados no arquivo li-erado&acl GAC6 li-eradoH, comumente c%amado de Blista branca& =as nada impede que sea utiliado mais $rupos, e outros tipos de -loqueio, ficando a crit@rio de cada um& ?'o esquea de criar os arquivos bloqueio.acl, e liberado.acl, e colocar al$umas ER6Ms no seu conteNdo& estes e resultados# Antes de alterar o pfsense da empresa onde tra-al%o, efetuei testes em ( maquinas virtuais G)inOP, pfSense 2&0 RC( e )in200( R2 Standard +ditionH& ?a =, n'o foi necess3rio colocar um usu3rio administrador para efetuar as pesquisas no 6AP& =as 3 no pfSense instalado na empresa, isso n'o funcionou& Assim tive que colocar o usu3rio Administrator do )in200( para pesquisar no 6AP deste servidor& Portanto, caso n'o funcione com usu3rio comum, troque pelo usu3rio administrator, na $uia Aut% Settin$s, e tam-em na lin%a em que Be0ternal_acl_type ldap_group no arquivo squid.inc& ?o pfSense GempresaH, as confi$ura.es da $uia B Aut1 Settings do squid, foi necess3rio alterar a op'o
Squid autenticado por grupos do AD (pfSense) =DA/ searc1 filter, de cn>?s, para sA&Account5ame>?s, ficando assim: 2uthentication server 10.0.0.2
2uthentication server port 389
9D2% server user D4 cn=Administrator,cn=Users,dc=dominio,dc=com,dc=br
9D2% password senha
9D2% base domain dc=dominio,dc=com,dc=br
9D2% username D4 attribute uid
9D2% search "ilter sAMAccountName=%s
+inalizando epois de al$umas semanas pesquisando na internet, estes foram os passos que se$ui para que o Squid do pfSense autenticasse por $rupos no Active irector!&