{"id":684,"date":"2014-08-08T10:45:11","date_gmt":"2014-08-08T13:45:11","guid":{"rendered":"http:\/\/blog.abratel.com.br\/?p=684"},"modified":"2014-08-08T10:45:11","modified_gmt":"2014-08-08T13:45:11","slug":"autenticando-o-proxy-squid-dansguardian-no-ad-samba4","status":"publish","type":"post","link":"https:\/\/blog.abratel.com.br\/?p=684","title":{"rendered":"Autenticando o Proxy Squid + DansGuardian no AD (samba4)"},"content":{"rendered":"<p>Autenticando o Proxy Squid + DansGuardian no AD (samba4)<br \/>\n\tA autentica\u00e7\u00e3o do usu\u00e1rio e senha e feita sempre pelo squid, mesmo que trabalhe em conjundo com o DansGuardiam e sua porta do browser esteja `virada` para o dans, toda a autentica\u00e7\u00e3o eh feita no squid.<br \/>\n\tH\u00e1 tr\u00eas maneiras de serem feitas as autentica\u00e7\u00f5es do squid no samba4 sendo que duas h\u00e1 necessidade de ingressar anteriormente esse servidor squid no dom\u00ednio existente do samba4.<br \/>\nDescri\u00e7\u00e3o<br \/>\n\u2022\tPermitir que o squid autentique usu\u00e1rios do windows active directory ou samba.<br \/>\n\u2022\tIsso proporcina uma maior integra\u00e7\u00e3o e utiliza\u00e7\u00e3o de uma \u00fanica base de senhas.<br \/>\n\u2022\tTamb\u00e9m facilita o controle da navega\u00e7\u00e3o e relat\u00f3rios por usu\u00e1rios.<br \/>\n\u2022\tExistem 2 autenticadores no squid para isso:<br \/>\no\tNTLM: Pega automaticamente ou n\u00e3o o login do usu\u00e1rio logado no dominio. Caso o usu\u00e1rio n\u00e3o esteja logado, solicita a senha.<br \/>\no\tMSNT: Solicita que o usu\u00e1rio digite o usu\u00e1rio e senha. O NTLM \u00e9 bem melhor, sugiro usar ele.<br \/>\no\tSMB_AUTH: Faz autentica\u00e7\u00e3o atrav\u00e9s do samba. Bem simples e f\u00e1cil de configurar.<br \/>\n\u2022\tSe estiver utilizando o squid do SuSE, ele vem com todos os autenticadores. Caso contr\u00e1rio ter\u00e1 que compilar no squid. <\/p>\n<p>\tUma forma f\u00e1cil e r\u00e1pida eh pelo execut\u00e1vel distribu\u00eddo no squid chamada smb_auth (no freebsd localizado em \/usr\/local\/libexec\/squid\/smb_auth). Usando deste execut\u00e1vel n\u00e3o h\u00e1 necessidade de ingressar o servidor ao dom\u00ednio.<br \/>\n\t1 \u2013 No servidor samba4 sera necess\u00e1rio criar um compartilhamento chamado netlogon contendo um arquivo dentro do diret\u00f3rio de nome proxyauth escrito em seu conte\u00fado o nome allow.<br \/>\n[root@dominio ~]# vim \/etc\/samba\/smb.conf<\/p>\n<p>[netlogon]<br \/>\n        comment = The domain logon service<br \/>\n        path = \/share\/netlogon<br \/>\n  #   valid users = @&#8221;Domain Users&#8221;<br \/>\n        valid users = %U<br \/>\n        browseable = no<br \/>\n        guest ok = yes<br \/>\n        writeable = no<br \/>\n        read only = yes<br \/>\n[root@dominio ~]# cat \/share\/netlogon\/proxyauth<br \/>\nallow<\/p>\n<p>[root@dominio ~]# chmod 777  \/share\/netlogon\/proxyauth<\/p>\n<p>[root@dominio ~]# ls -lah \/share\/netlogon\/<br \/>\ntotal 12K<br \/>\ndrwxr-xr-x. 2 root root 4.0K Mar 20 19:35 .<br \/>\ndrwxr-xr-x. 6 root root 4.0K Mar 20 19:35 ..<br \/>\n-rwxrwxrwx. 1 root root    6 Mar 20 19:35 proxyauth<\/p>\n<p>Abaixo iremos realizer um teste do usuario e senha. Onde escrevo USUARIO SENHA substitui por dados reais. Ap\u00f3s dar um enter no comando escreva com um espa\u00e7o o Usuario e senha e posterior de enter e espere.<\/p>\n<p>Quando eu escrevo um usu\u00e1rio e senha corretos tenho a mensagem de OK ao final.<br \/>\nObserva\u00e7\u00e3o para o dom\u00ednio no qual omite o .net, .com, etc..<\/p>\n<p>(root@proxy)~# \/usr\/local\/libexec\/squid\/smb_auth -W DOMINIOTESTE -d<br \/>\nUSUARIO SENHA<br \/>\nDomain name: DOMINIOTESTE<br \/>\nPass-through authentication: no<br \/>\nQuery address options:<br \/>\nDomain controller IP address: 192.168.218.190<br \/>\nDomain controller NETBIOS name: DOMINIO<br \/>\nContents of \/\/DOMINIO\/NETLOGON\/proxyauth: allow<br \/>\nOK<\/p>\n<p>Quando introduzo um usuario e senha incorretos tenho a mensagem de ERR ao final.<\/p>\n<p> (root@proxy)~# \/usr\/local\/libexec\/squid\/smb_auth -W DOMINIOTESTE -d<br \/>\nuferes 123<br \/>\nDomain name: DOMINIOTESTE<br \/>\nPass-through authentication: no<br \/>\nQuery address options:<br \/>\nDomain controller IP address: 192.168.218.190<br \/>\nDomain controller NETBIOS name: DOMINIO<br \/>\nContents of \/\/DOMINIO\/NETLOGON\/proxyauth:<br \/>\nERR<\/p>\n<p>Para finalizar iremos aplicar no arquivo squid.conf a autentica\u00e7\u00e3o (n\u00e3o irei abortar o arquivo todo e muito menos a configura\u00e7\u00e3o do squid):<\/p>\n<p>auth_param basic program \/usr\/local\/libexec\/squid\/smb_auth -W DOMINIOTESTE -U 192.168.218.190<\/p>\n<p>Mas abaixo temos a clausula de requerimento.<br \/>\nacl auth proxy_auth REQUIRED<\/p>\n<p>Reinicie o squid e teste a autentica\u00e7\u00e3o.<\/p>\n<p>Alguns artigos mandam alterar o conte\u00fado com um patch ou manualmente do arquivo abaixo:<br \/>\n\/usr\/local\/libexec\/squid\/smb_auth.sh<br \/>\nTrocando<br \/>\nUSER=&#8221;$SMBUSER%$SMBPASS&#8221;<br \/>\npor<br \/>\nUSER=&#8221;$SMBUSER&#8221;<br \/>\nPASSWD=&#8221;$SMBPASS&#8221;<\/p>\n<p>Porem isso n\u00e3o foi necess\u00e1rio. Quando realizei essa modifica\u00e7\u00e3o parou de funcionar.<\/p>\n<p>Outras formas de integrar o squid com o samba4<br \/>\nDescri\u00e7\u00e3o<br \/>\n\u2022\tPermitir que o squid autentique usu\u00e1rios do windows active directory ou samba.<br \/>\n\u2022\tIsso proporcina uma maior integra\u00e7\u00e3o e utiliza\u00e7\u00e3o de uma \u00fanica base de senhas.<br \/>\n\u2022\tTamb\u00e9m facilita o controle da navega\u00e7\u00e3o e relat\u00f3rios por usu\u00e1rios.<br \/>\n\u2022\tExistem 2 autenticadores no squid para isso:<br \/>\no\tNTLM: Pega automaticamente ou n\u00e3o o login do usu\u00e1rio logado no dominio. Caso o usu\u00e1rio n\u00e3o esteja logado, solicita a senha.<br \/>\no\tMSNT: Solicita que o usu\u00e1rio digite o usu\u00e1rio e senha. O NTLM \u00e9 bem melhor, sugiro usar ele.<br \/>\no\tSMB_AUTH: Faz autentica\u00e7\u00e3o atrav\u00e9s do samba. Bem simples e f\u00e1cil de configurar.<br \/>\n\u2022\tSe estiver utilizando o squid do SuSE, ele vem com todos os autenticadores. Caso contr\u00e1rio ter\u00e1 que compilar no squid. <\/p>\n<p>Softwares e Vers\u00f5es<br \/>\n\u2022\tSquid 2.5.X<br \/>\n\u2022\tSamba client 3.x<br \/>\nConfigura\u00e7\u00e3o para MSNT e NTLM<br \/>\nConfigurar samba e winbind para entrar no dom\u00ednio<br \/>\n\u2022\tEditar o smb.conf<br \/>\nworkgroup = mydomain<br \/>\npassword server = myPDC<br \/>\nsecurity = ads<br \/>\nwinbind uid = 10000-20000<br \/>\nwinbind gid = 10000-20000<br \/>\nwinbind use default domain = yes<br \/>\n# tirar outras opcoes de dominio master<br \/>\n\u2022\tEditar o \/etc\/hosts e adicionar uma entrada para o nome do servidor AD.<br \/>\n\u2022\tEntrar no dominio.<br \/>\n$ net join -S NOMESERVIDORDOMINIOWINDOWS -Uuserdowindows%senhadowindows<br \/>\n\u2022\tOBS: \u00c8 necess\u00e1rio um usu\u00e1rio no windows com permiss\u00e3o no grupo Administradores.<br \/>\n\u2022\tVerificar se o nscd est\u00e1 rodando e parar<br \/>\n$ ps auxwww | grep [n]scd<br \/>\nroot      3036  0.0  0.2 141416  1080 ?        Ssl  10:04   0:00 \/usr\/sbin\/nscd<br \/>\n$ \/etc\/init.d\/nscd stop<br \/>\n$ chkconfig nscd off<br \/>\n\u2022\tOBS: Esse procedimento acima \u00e9 muito importante, pois dependendo da vers\u00e3o do samba, se o nscd estiver rodando o winbind n\u00e3o funciona!<br \/>\n\u2022\tStartar nmb e winbind<br \/>\n$ \/etc\/init.d\/nmb start; \/etc\/init.d\/winbind start;<br \/>\n\u2022\tSetar diretorio do winbind para mesmo grupo do squid:<br \/>\nchown root.GRUPOSQUID \/var\/lib\/samba\/winbindd_privileged<br \/>\n\u2022\tRodar diariamente no crontab<br \/>\n$ net rpc changetrustpw<br \/>\n\u2022\tTestar se logou com sucesso no dom\u00ednio:<br \/>\n$ wbinfo -t<br \/>\nSecret is good<br \/>\n\u2022\tTestar autentica\u00e7\u00e3o do winbind:<br \/>\n$ wbinfo -a mydomain\\\\myuser%mypasswd<br \/>\nplaintext password authentication succeeded<br \/>\nerror code was NT_STATUS_OK (0x0)<br \/>\nchallenge\/response password authentication succeeded<br \/>\nerror code was NT_STATUS_OK (0x0)<\/p>\n<p>________________________________________<br \/>\nMSNT<br \/>\n\u2022\tEditar o \/etc\/squid\/msntauth.conf<br \/>\nserver PDCNAME PDCNAME WORKGROUP<br \/>\n\u2022\tEditar o squid.conf:<br \/>\nauth_param basic program \/usr\/local\/squid\/libexec\/msnt_auth<br \/>\nauth_param basic children 5<br \/>\nauth_param basic realm Usu\u00e1rio e Senha<br \/>\nauth_param basic credentialsttl 5 minutes<\/p>\n<p>acl password proxy_auth REQUIRED<br \/>\nhttp_access allow LAN password<\/p>\n<p>________________________________________<br \/>\nNTLM<br \/>\n\u2022\tParticularidade do squid RPM do SuSE:<br \/>\no\tNo SUSE tem 2 ntlm_auth, um em \/usr\/bin outro em \/usr\/sbin. TEM QUE USAR O DO \/usr\/bin:<br \/>\n $ \/usr\/bin\/ntlm_auth &#8211;helper-protocol=squid-2.5-basic<br \/>\nmyuser mypasswd<br \/>\nOK<br \/>\n\u2022\tTestar o autenticador na linha de comando:<br \/>\n$ \/usr\/local\/bin\/ntlm_auth &#8211;helper-protocol=squid-2.5-basic<br \/>\nmydomain+myuser mypasswd<br \/>\nOK<br \/>\n\u2022\tPara debugar a autentica\u00e7\u00e3o, rodar o winbind com o parametro -d 6<br \/>\n\u2022\tInserir no squid.conf:<br \/>\n#Auth AD<br \/>\nauth_param ntlm program \/usr\/bin\/ntlm_auth &#8211;helper-protocol=squid-2.5-ntlmssp<br \/>\nauth_param ntlm children 30<br \/>\nauth_param basic program \/usr\/bin\/ntlm_auth &#8211;helper-protocol=squid-2.5-basic<br \/>\nauth_param basic children 5<br \/>\nauth_param basic realm Linux Proxy Server<br \/>\nauth_param basic credentialsttl 2 hours<\/p>\n<p>\u2022\tOBS IMPORTANTE: Perceba que no arquivo squid.conf existem 2 chamadas ao ntlm_auth. A primeira \u00e9 referente a autentica\u00e7\u00e3o autom\u00e1tica, pegando o usu\u00e1rio do windows j\u00e1 logado e a segunda \u00e9 para pedir senha, para usu\u00e1rios n\u00e3o logados. Caso deseje que ele sempre solicite senha, mesmo para usu\u00e1rios logados, comente a primeira op\u00e7\u00e3o (ntlmssp) e deixe somente a segunda op\u00e7\u00e3o (basic). <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Autenticando o Proxy Squid + DansGuardian no AD (samba4) A autentica\u00e7\u00e3o do usu\u00e1rio e senha e feita sempre pelo squid, mesmo que trabalhe em conjundo com o DansGuardiam e sua porta do browser esteja `virada` para o dans, toda a autentica\u00e7\u00e3o eh feita no squid&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[10,2],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/684"}],"collection":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=684"}],"version-history":[{"count":1,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/684\/revisions"}],"predecessor-version":[{"id":685,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/684\/revisions\/685"}],"wp:attachment":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}