![]() |
Quem trabalha com computadores no seu dia-a-dia dentro de uma empresa, conhece normalmente uma realidade que dá pelo nome de Proxy! Se calhar a maioria de nós nem se apercebe da existência dele mas que na grande parte dos casos está lá, isso está! |
Um Proxy é utilizado normalmente para controlar o acesso à internet para ligações outbound ou seja, as que saem da rede interna em direcção ao mundo exterior. Este controlo permite configurar quais os utilizadores que podem ou não podem utilizar o acesso. Basicamente, o Proxy é um servidor que filtra acessos dos utilizadores à internet (na sua utilização mais simples).
A parte chata de tudo isto, é que o Proxy necessita de autenticação (como é óbvio, terá que identificar o utilizador para saber se este possui permissão ou não) e se na maioria das vezes, estamos perante situações em que o S.O. utilizado é Windows, poderá dar-se o caso de querermos utilizar um sistema Linux. Aqui é que a coisa complica! A primeira coisa que a maioria das pessoas tenta em Linux, é ir à parte da administração e procurar um ícone com o nome http“proxy”. Depois, colocam os dados de autenticação e pasme-se: não funciona! O Firefox não tem grandes problemas porque permite a colocação dos dados de autenticação nas configurações de rede e funciona bem mas o sistema fica sem acesso para realizar, por exemplo, updates ou instalações de aplicações via internet. Ao utilizar um sistema Windows, existem ferramentas para auxiliar na autenticação, como por exemplo o TMG Client da Microsoft. Para sistemas Linux, existe o NTLMAPS (ntlmaps.sourceforge.net/) e o CNTLM (cntlm.sourceforge.net/). Ambos funcionam bem e o princípio adoptado é rigorosamente o mesmo. Vamos tentar perceber pela figura seguinte: Ou seja, redireccionamos TODO o tráfego de rede para o nosso próprio computador (localhost ou 127.0.0.1 que é rigorosamente a mesma coisa), podemos configurar o CNTLM para enviar esse mesmo tráfego para o Proxy, adicionando-lhe as credenciais de autenticação. Isto funciona bastante bem e obriga apenas a ter o CNTLM ou o NTLMPAS a correr em segundo plano à espera de tráfego para poder encaminhá-lo para o Proxy. O problema maior surgiu quando a Microsoft lançou a plataforma TMG 2010. Ambos deixaram de funcionar! |
Agora pode ter o Youtube 3D / Google Maps 3D / Google Earth 3D / Live Messenger / Cooliris e muitas outras aplicações no seu navegador. A nova barra de ferramentas disponíveis para o seu computador está mais completa. Descarregue aqui.
Gostou deste artigo? Subscreva a lista gratuitamente.
|
|
Deixo aqui o output exemplo da tentativa de executar um wget ao site www.matospereira.com utilizando o NTLMAPS para fazer a autenticação no proxy TMG 2010:
ratopersa@rp-laptop:~$ wget –no-check-certificate -d
www.matospereira.com
DEBUG output created by Wget 1.11.4 on linux-gnu.
–2011-05-17 11:47:06– www.matospereira.com
Resolving localhost… 127.0.0.1, ::1
Caching localhost => 127.0.0.1 ::1
Connecting to localhost|127.0.0.1|:5065… connected.
Created socket 3.
Releasing 0x090dbd90 (new refcount 1).
—request begin—
GET www.matospereira.com HTTP/1.0
User-Agent: Wget/1.11.4
Accept: */*
Host: www.matospereira.com
—request end—
Proxy request sent, awaiting response…
—response begin—
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: BASIC realm=”Corporate Internet Gateway”
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache, proxy-revalidate
Content-Length: 810
Connection: Keep-Alive
Set-Cookie: BCSI-CS0AD35501=2; Path=/
Date: Tue, 17 May 2011 11:47:06 GMT
—response end—
407 Proxy Authentication Required
Stored cookie www.matospereira.com -1 (ANY) / <session> <insecure> [expiry none] BCSI-CS0AD35501 2
Closed fd 3
2011-05-17 11:48:35 ERROR 407: Proxy Authentication Required.
Após a leitura do output anterior, verificamos que, à semelhança dos exemplos de Proxy utilizados até aqui, o wget tenta ir através da porta 5065 do 127.0.0.1 contactar o endereço pretendido. A resposta é simples: 407 Proxy Authentication Required !
Depois de muito tentar e pesquisar, verifiquei que o problema tem a ver com o mecanismo de autenticação listado nas especificações HTTP 1.0 conhecido por HTTP Basic Authentication Scheme. Não parece fazer muito sentido utilizar mecanismos de autenticação de um protocolo antigo quando já existe há muito tempo o HTTP 1.1 mas enfim…
Para que isto passe a funcionar correctamente, utilizei uma versão alterada do CNTLM v0.35.1 (crédito para o utilizador Naresh www.naresh.se) que faz exactamente o que é necessário: foi adicionado o suporte para autenticação HTTP 1.0 básico.
No ficheiro de configuração, passa a existir um parâmetro HTTPAUTH cujo valor deve ser colocado a 1. A única coisa que faz é adicionar ao cabeçalho a autenticação correcta.
Segue em anexo o ficheiro comprimido com o programa alterado. Para utilizar, fazer o download do ficheiro, abrir uma consola e colocar a prompt na pasta onde se encontra o ficheiro:
tar xvzf cntlm-0.35.1_HTTPAuth.tar.gz
Após este comando, o ficheiro é descomprimido para uma pasta com o nome cntlm-0.35.1. Depois, executar:
cd cntlm-0.35.1
sudo ./configure
sudo make install
sudo gedit /usr/local/etc/cntlm.conf
O ficheiro é aberto para edição e deverá ser modificado de acordo com as definições necessárias. Um ponto importante é colocar o valor de HTTPAUTH a 1. Conteúdo exemplo do ficheiro com os valores a definir para cada situação a negrito:
#
# Cntlm Authentication Proxy Configuration
#
# NOTE: all values are parsed literally, do NOT escape spaces,
# do not quote. Use 0600 perms if you use plaintext password.
#
Username user
Domain domain
Password password # Use hashes instead (-H)
#Workstation netbios_hostname # Should be auto-guessed
Proxy 192.168.1.1:80
#
# This is the port number where Cntlm will listen
#
Listen 3128
#
# If you wish to use the SOCKS5 proxy feature as well, uncomment
# the following option, SOCKS5. It can be used several times
# to have SOCKS5 on more than one port or on different network
# interfaces (specify explicit source address for that).
#
# WARNING: The service accepts all requests, unless you use
# SOCKS5User and make authentication mandatory. SOCKS5User
# can be used repeatedly for a whole bunch of individual accounts.
#
#SOCKS5Proxy 8010
#SOCKS5User dave:password
#
# Use -M first to detect the best NTLM settings for your proxy.
# Default is to use the only secure hash, NTLMv2, but it is not
# as available as the older stuff.
#
# This example is the most universal setup known to man, but it
# uses the weakest hash ever. I won’t have it’s usage on my
# conscience. Really, try -M first.
#
#Auth LM
#Flags 0x06820000
#
# Enable to allow access from other computers
#
#Gateway yes
#
# Useful in Gateway mode to allow/restrict certain IPs
#
#Allow 127.0.0.1
#Deny 0/0
#
# GFI WebMonitor-handling plugin parameters, disabled by default
#
#ISAScannerSize 1024
#ISAScannerAgent Wget/
#ISAScannerAgent APT-HTTP/
#ISAScannerAgent Yum/
#
# Headers which should be replaced if present in the request
#
#Header User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
#
# Tunnels mapping local port to a machine behind the proxy
#
#Tunnel 11443:remote.com:443
# Naresh 2010/03/03: Defined a new parameter in the config file “HTTP_AUTH” which
# if set to 1 will only do BASIC authentication (BASIC REALM). Further support for
# Digest Access will be added later. A value of 2 should be used in that case.
# Default value for this variable will be 0.
HTTP_AUTH 1
Depois de alterar o ficheiro para os valores correctos, guardamos o ficheiro. Agora já podemos (e devemos) ir às preferências, proxy de rede e colocar na utilização de proxy, os valores 127.0.0.1, porta 3128 a plicar globalmente ao sistema. Para começar a utilizar, basta digitar na consola:
sudo cntlm
A partir daqui, tudo deverá estar a funcionar. apt-get, centro de software, browser, etc…
Espero que o artigo ajude neste problema que se tem revelado, no mínimo, desastroso (e de arrancar cabelos) para algumas pessoas.
Poderá seguir estas e outras discussões também no forum: Autenticação através de um proxy
{module 206}
Se esta ajuda foi útil, por favor deixe a sua opinião.
O KDE também usa por padrão um único clique em vez de clicar duas vezes para abrir arquivos (e isto no inicio é mesmo estranho)