Dica: Um proxy temporário no Linux.

No meu serviço temos uma configuração mais ou menos assim: Temos um PROXY server, que sai para Internet, que exige autenticação via NTLM. O ‘host1’ é a minha estação de trabalho e ‘host2’ é uma outra estação de trabalho, rodando Linux, que ainda não tem acesso ao proxy.

┏━━━━━━━┓
┃ PROXY ┃
┗━━━┯━━━┛
    │
┌───┴───┐ ┌───────┐
│ host1 │ │ host2 │
└───────┘ └───────┘

O problema é que, para usar autenticação via NTLM é necessário instalar um pacote chamado “cntlm”, mas para instalar o pacote é
necessário o acesso à Internet, que o PROXY provê. Deixando o usuário da estação recém instalada numa “sinuca de bico” já que precisa de acesso à Internet para instalar o cntlm para poder acessar o proxy para poder acessar a Internet…

A solução? Que tal fazermos o ‘host1’ como um proxy temporário para o ‘host2’? A excelente dica, de meu amigo Kl0nEz, é o pequeno utilitário “redir”, instalado pelo pacote do mesmo nome… Basta rodá-lo, no ‘host1’, informando que ele deverá colocar uma porta qualquer em “listen” e repassar tudo o que chegar nessa porta para a porta do CNTLM do ‘host1’.

┏━━━━━━━┓
┃ PROXY ┃
┗━━━┯━━━┛
    │
┌───┴───┐
│ cntlm │
┢━━━━━━━┪   ┌───────┐
┃ host1 ┠───┤ host2 │
┗━━━━━━━┛   └───────┘
  "tmp"
  proxy

Isso é exatamente o que o “cntlm” faz na máquina host1… Ele “ouve” a porta 3128 (por exemplo) do localhost e repassa para o endereço e porta do PROXY (levando em conta o NTLM). Agora é “host1” quem deverá “ouvir” uma porta qualquer (1234, por exemplo) e repassar para a porta 3128 de localhost:

# redir --lport=1234 --cport=3128

Agora o ‘host2’ pode configurar o proxy para o IP de ‘host1’ (vamos supor que ‘host1’ seja 192.168.1.1) e porta 1234. Para parar esse proxy temporário basta interromper o processo “redir” (Envio de signal SIGINT, via Ctrl+C, é suficiente!).

No ‘host2’, tudo o que tem que ser feito é declarar 3 variáveis de ambiente:

export http_proxy=http://192.168.1.1:1234
export https_proxy=http://192.168.1.1:1234
export ftp_proxy=http://192.168.1.1:1234

Retire o ‘export’ e coloque as 3 linhas em /etc/environment, se quiser que a configuração seja permanente. Só um detalhe: O apt-get precisa saber quem é o proxy, independente dessas variáveis de ambiente. Altere /etc/apt/apt.conf modificando/adicionando a linha abaixo:

Acquire::http::Proxy "http://192.168.1.1:1234/";

Voilà!

Anúncios

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s