NTLMAPS - NTLM Authorization Proxy Server
Colaboração: Camilo Arthur
Data de Publicação: 22 de Julho de 2006
Quando o proxy ISA Server é configurado para pedir autenticação, nós usuários de Linux temos um problema ao utilizar vários recursos. Exemplos disso são:
- Navegação (requer usuário e senha);
- Utilização do apt (falha na autenticação);
- Utilização de programas IM (não conecta ao proxy);
- etc...
Mesmo se o programa utilizado aceitar a configuração de proxy com autenticação, você não conseguirá utilizá-lo, pois o mesmo não consegue fazer a autenticação no ISA. Para resolvermos esse problema, utilizamos um programa escrito em Python chamado NTLMAPS, o qual nos dá uma autenticação do tipo NTLM, que é utilizada no ISA Server.
Os principais recursos do NTLMAPS, como descrito na página do próprio projeto são:
- supports NTLM authentication via parent proxy server (Error 407 Proxy Authentication Required);
- supports NTLM authentication at web servers (Error 401 Access Denied/Unauthorized);
- supports translation of NTLM scheme to standard "Basic" authentication scheme;
- supports the HTTPS 'CONNECT' method for transparent tunnelling through parent proxy server;
- has ability to change arbitrary values in client's request headers;
- supports unlimited number of client connections;
- supports connections from external hosts;
- supports HTTP 1.1 persistent connections;
- stores user's credentials in config file or requests password from a console during the start time;
- supports intelligent failure detection and failover between multiple upstream proxies;
Agora que já entendemos o que o programa faz, mãos à obra.
Download, instalação e configuração
Para começar, baixe a última versão do NTLMAPS em:
- http://sourceforge.net/project/showfiles.php?group_id=69259
Descompacte o arquivo baixado com o comando:
# tar -xzvf ntlmaps-xxx.tar.gz # cd ntlmaps-xxx
Onde 'xxx' é o número da versão. Abra o arquivo server.cfg em seu editor preferido. Abaixo, coloco apenas as configurações necessárias:[server.cfg] . . . # Aqui você utilizará o proxy da sua rede, como no exemplo: 10.5.6.4 PARENT_PROXY: 10.5.6.4 # A porta que o proxy usa para a conexão, geralmente é a 8080. PARENT_PROXY_PORT:8080 # Aqui vai o nome do domínio Windows no qual você está conectado. # No meu caso, o domínio da empresa onde trabalho: (ntecgrms) NT_DOMAIN:ntecgrms # Aqui você utilizará um usuário com permissão de navegação. No meu caso, # utilizei o meu. USER:arthur # Aqui você utilizará a senha do usuário configurado acima. Onde 'xxxxxxx' # é a senha. PASSWORD:xxxxxxxxx
Após ter feito essas configurações, salve e feche o arquivo. Para a pasta do NTLMAPS não ficar "perdida", eu a movi para o diretório /usr/local, renomeando a mesma somente para ntlmaps:# mv .../ntlmaps-xxx /usr/local/ntlmaps
Agora você precisa testar se realmente está funcionando. Para isso devemos executar o arquivo main.py encontrado na pasta do ntlmaps:# python /usr/local/ntlmaps/main.py &
A seguinte mensagem deverá aparecer:Now the NTLMAPS server is listening.
Pronto, o programa está funcionando! Agora configure seu navegador e demais programas para a utilização do proxy no IP 127.0.0.1 e porta padrão 5865. Para iniciar o seu proxy toda vez que liga seu computador, inclua a chamada do programa no arquivo rc.local:# echo "python /usr/local/ntlmaps/main.py &" >> /etc/rc.d/rc.local
Pronto. Agora toda vez em que ligar seu computador, o proxy já estará rodando. Espero que essa dica seja útil a muitos usuários frustrados que nem eu, que para utilizar alguns recursos na rede como IM e etc, ainda FAZIA uso do MS Windows.