Você está na página 1de 4

Dando continuidade a nossa seo de tutoriais, agora a vez de fazer com que o squid se autentique em servidores Windows NT.

. Neste artigo, estaremos abordando tanto servidores equipados com a verso 4.0 do WinNT (Que usa a forma antiga de incluso dominios) bem como as verses 2000 e 2003 (Baseados no Active Directory). Primeiramente, nos vem a cabea: "Por que autenticar os usurios no NT, ao invs de utilizar uma autenticao padro, tipo PAM, do proprio squid?" Bem, existem muitos motivos. Imaginemos o seguinte quadro: Voce o novo administrador de uma empresa que possui um parque instalado com base em software proprietrio, que conta hoje com aproximadamente 250 usuarios cadastrados e j devidamente configurados, e lhe solicitado que seja criada uma soluo para a analise de trafego e controle de uso do link da empresa. O prazo no generoso. A migrao Windows-Linux uma soluo bem vista pela empresa em questo, porm, o impacto aos usurios deve ser mnimo. O que voce faz ?? Sugere a compra de uma licena do ISA Server (e recebe um bilhete azul, quando a tesouraria ver o custo do mesmo, rs...)?? A soluo mais eficaz seria a utilizao de uma combinao Proxy+Firewall baseada em linux. Mas como manter as configuraes pertinentes a cada usurio? exatamente esse o cenario que iremos enfrentar neste artigo. Gosto de ilustraes deste tipo, pois demonstram aplicaes praticas aos conhecimentos por ns adquiridos, ento, mos obra!!! Do que precisaremos? Utilizaremos uma verso relativamente nova e estvel do Squid (a 2.5STABLE3-0) disponivel em pacotes .RPM e .DEB, rodando em um Red Hat 9.0 com kernel 2.4.22. Mas pode ser utilizado qualquer outra distribuio, bastando para isso que o procedimento de instalao seja adequado a mesma. A Autenticao em servidores Microsoft A Microsoft adota um padro (chamado NTLM - NT LanManager) para a autenticao de seus usuarios. Esta autenticao possui duas verses distintas: A NTLMv1, usada em servidores NT 3.5 e 4.0; e a NTLMv2, utilizada nas verses mais recentes do sistema de Redmond (Windows 2000, Windows XP e 2003 Server) integrada a tecnologia Active Directory.

Como sabemos, a estrutura de gerenciamento das redes Microsoft, baseada no protocolo SMB. O Mesmo utilizado pelo SAMBA para integrar compartilhamentos Linux com redes Windows e vice-versa. O Milagre e o Santo Fazer com que o Linux, se autentique em uma base de usuarios Microsoft um milagre, uma vez que a empresa em questo, no se empenha em dar suporte a outras plataformas, muito menos a do software livre. Portanto, para obtermos um milagre, precisamos de um santo, e este santo um utilitrio que integra o proprio squid: o smb_auth. Um script que faz uso das ferramentas SMB do linux para "enxergar" redes Windows. Pondo a ideia em prtica. Primeiramente, precisamos preparar o terreno em nosso servidor NT. Para isso, criaremos um arquivo chamado proxyauth (proxyauth sem nenhuma extenso, cuidado para que nao seja adicionada uma extenso .txt automaticamente, caso utilize o bloco de notas para cria-lo) contendo apenas uma linha com a palavra 'allow' (sem as aspas). Este arquivo devera ser criado dentro do compartilhamento NETLOGON do servidor NT, e precisa ter permisso de leitura para todos os usuarios que precisarem ser autenticados no proxy. Uma vez criado o arquivo, sugiro que seja criado um usuario no Servidor NT para efeitos de testes. Bem, nosso trabalho no servidor Microsoft se resume a isto. Vamos agora, a configurao do squid, em nosso servidor linux. Nota: Este artigo no tem como objetivo explicar a configurao do servidor squid, portanto estou assumindo que voce ja tenha instalado o squid, e que ele esteja funcionando perfeitamente com a autenticao PAM. Vamos fazer alguns testes na linha de comando, para verificar o funcionamento da nossa rede. Para isso, iremos criar uma rede imaginria, com as seguintes configuraes:

01 Servidor NT/2000/2003 chamado NTSERVER, com endereo IP 10.10.10.3, controlando o Dominio MINHAEMPRESA; 01 Servidor Linux chamado LINUXSERVER, com endereo IP 10.10.10.2, rodando o squid; Varias estaes de trabalho, rodando sistemas operacionais diversos, todas fazendo parte da mesma rede em questao.

Com base nessas informaes, sabemos que o dominio da nossa rede se chama MINHAEMPRESA e que o IP do PDC (Controlador primrio de domnio) o 10.10.10.3. Vamos fazer um teste com o smb_auth. Localize o arquivo smb_auth (Se voce tiver usando a versao do squid/linux descrita no inicio do tutorial, ele pode ser encontrado dentro de /usr/lib/squid/smb_auth, mas um locate smb_auth pode resolver o problema caso ele nao esteja em sua localizao padro), e digite a seguinte linha de comando (como root, de preferencia) # chmod +x /usr/lib/squid/smb_auth # /usr/lib/squid/smb_auth -W MINHAENPRESA -U 10.10.10.3 -d Ao apertar enter, o cursor passara para a linha inferior, esperando que seja fornecido um nome de usuario e sua senha. digite o nome de usuario, seguido de um espao e logo em seguida pressione ENTER. Se tudo correr bem, voce deve ver uma tela como esta: [root@meupc root]# /usr/lib/squid/smb_auth -W MINHAEMPRESA -U 10.10.10.3 -d usuario senha Domain name: MINHAEMPRESA Pass-through authentication: no Query address options: -U 10.10.10.3 -R Domain controller IP address: 10.10.10.3 Domain controller NETBIOS name: NTSERVER Contents of //NTSERVER/NETLOGON/proxyauth: allow OK Caso a ultima linha seja a ERR, ao invs de OK; alguma coisa deu errado. verifique o arquivo proxyauth, suas permisses e seu conteudo. Se voce recebeu uma tela como esta, podemos seguir em frente e configurar nosso squid para utilizar a autenticao smb. Edite o arquivo /etc/squid/squid.conf , e encontre o seguinte trecho: auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours Provavelmente voce tem uma linha comentada como esta: #auth_param basic program <uncomment and complete this line> Descomente-a e altere o seu contedo da seguinte forma: auth_param basic program /usr/lib/squid/smb_auth -W MINHAEMPRESA -U 10.10.10.3 Note que nao utilizamos o parametro -d na linha de comando dentro do arquivo squid.conf. Este parametro informa ao smb_auth que execute em modo de debug, mostrando as informaes de autenticao passo a passo. Para maiores informaes sobre as opes do smb_auth, consulte sua pagina de manual (man smb_auth).

Agora, reinicie o squid, e verifique se tudo est ok, tente navegar pelo proxy, a partir de uma das estaes. Provavelmente voce recebera uma caixa com espao para informar o nome e a senha do usuario. Digite as informaes de um usuario cadastrado no Dominio NT e veja o resultado. Se tudo correu bem, voce salvou seu emprego e resolveu o problema da empresa com custo 0, e sera considerado o novo heroi da economia :-D Recomendaes: - Inclua o servidor NT em seu arquivo /etc/hosts. Isso evita alguns problemas com resoluo de nomes. - Execute o comando smbclient -L 10.10.10.3 -U <usuario> para verificar as informaes do servidor NT. Espero que tenham gostado!! []'s cordiais Paulo Moreira. Adm. de Redes www.gnubh.com.br