segunda-feira, 13 de fevereiro de 2012

Cliente Proxy - Cntlm

Quando se trabalha em uma Organização em que sua estrutura de rede corporativa roda praticamente sob Windows, usuários Linux da empresa sempre se deparam com um problema: o acesso à internet. Isto se deve muito provavelmente por se utilizar a autenticação NTLM (protocolo proprietário da MS) no lado do proxy para acesso à internet. E isso acaba se tornando um problema para usuários não-Windows.

Para resolver a questão utiliza-se um proxy local capaz de traduzir as autenticações NTLM para o proxy da corporação. Existem algumas aplicações para solucionar o problema. Neste post estarei mostrando como instalar e utilizar o Cntlm.

Para a utilização deste post, considero já alguns conhecimentos básicos de edição e de comandos no terminal e utilização do Ubuntu 11.10, porém acredito que rodará em outras distribuições. (Também testado no Debian 6.0 - Squeeze)

1 - Instalação :
O cntlm já está no repositório oficial do Ubuntu 11.10, desta forma basta instalar utilizando o comando:

$sudo apt-get install cntlm

2 - Configurando :
A configuração do cntlm está no /etc/cntlm.conf

Para editá-lo basta utilizar seu editor preferido para fazer algumas alterações. Normalmente utilizo o comando:



Pode-se também utilizar:



Ache os trechos abaixo destacados no arquivo e altere conforme seus dados (lembre-se de tirar meus comentários):

Username nome.sobrenome
Domain seudominio
PassNTLMv2  615CD146794614D291E006E213CDBB15  (gerar hash - explicado mais abaixo)

Proxy 10.217.112.41:8080 (IP do seu proxy, solicite ao administrador da rede ou simplesmente dê um $ping nome.do.proxy)
Listen 3128 (Porta)
NoProxy Localhost, 127.0.0.1, nomeDaSuaIntranet, etc






3 - Gerar Hash da senha
Observe que foi gerado um hash para a senha, desta forma sua segurança fica preservada, caso haja alguma acesso indevido.
Em outro terminal, para gerar o hash da senha utilize o comando:
$sudo cntlm -H
Password:
PassLM 26CFFB4081C1333C9EC16D6C6BDAF60F
PassNT 3089B6B296D064E1038A7FDEFD0240B7
PassNTLMv2 615CD146794614D291E006E213CDBB15 # Only for user ‘nome.sobrenome’, domain ‘seudominio’


Normalmente utilizo PassNTLMv2. Copie e atualize seu arquivo cntlm.conf

Exemplo de hash

4 - Parar/Iniciar serviço
Tanto no Ubuntu quanto no Debian, o cntlm será inicializado automaticamente toda vez que o sistema "subir". Eventualmente caso você precise ajustar alguma configuração no arquivo o serviço deverá ser reiniciado para pegar as novas configurações. Para isso utilize os comandos:

- Debian:
$sudo invoke-rc.d cntlm stop
$sudo invoke-rc.d cntlm start

- Ubuntu:
$sudo service cntlm restart

5 - Configuração as aplicações para utilizar o cntlm


  • O apt-get precisa ser configurado para trabalhar com cntlm:




  •  Alterar as configurações do apt.conf conforme abaixo:







  • Alterar as configurações do sistema, nas configurações de rede do ambiente:



Pronto!!! seu sistema está apto a acessar a internet pelo mais variados aplicativos. Lembrar que sempre que houver necessidade de um aplicativo acessar a internet, verificar se as configurações de proxy estão utilizando as configurações do ambiente, caso contrário deve-se configurar na própria aplicação os endereços 127.0.0.1 e porta 3128.

Referências




4 comentários:

  1. existe alguma forma de autenticar o usuario e nao o sistema? já que o usuario comum nao teria como editar tal arquivo nem reiniciar o servico

    ResponderExcluir
    Respostas
    1. Olá Rogério, da forma como foi apresentado neste post estamos também autenticando o usuário no domínio, além de todo o sistema operacional. Qualquer dúvida entre em contato.
      Abs,
      Cláudio Gontijo

      Excluir
  2. Rogerio, no meu caso que meu proxy pede usuario e senha, aonde entra a senha?

    ResponderExcluir
  3. Bom dia , uma dúvida. E quando este usuário trocar de senha? existe uma forma de atualização automática?

    A configuração do cntlm está com a hash da senha que vai utilizar este micro (ubuntu), sendo assim se ele trocar de senha (ad), ele perderá o acesso, dentro que modificar o arquivo de novo com a nova senha.

    Existe algo que faça isso automática?

    ResponderExcluir