Configurando proxy no shell

Se estiver utilizando um Linux em uma rede com proxy, faz-se necessário configurar o proxy para que o sistema possa baixar as atualizações e alguns serviços funcionem, como dropbox, wget, svn, elinks, skype, scp, entre muitos.

[ Hits: 186.781 ]

Por: Ricardo Brito do Nascimento em 25/09/2011 | Blog: http://brito.blog.incolume.com.br


Introdução



Se estiver utilizando um Linux em uma rede com proxy, faz-se necessário configurar o proxy para que o sistema possa baixar as atualizações, e alguns serviços funcionem, como dropbox, wget, svn, elinks, skype, scp, entre muitos.

O que é proxy

O servidor proxy surgiu com a necessidade de conectar uma rede local (Local Area Network), que possui endereços não roteáveis (10.0.0.0 até 10.255.255.255; 172.16.0.0 até 172.31.255.255; e 192.168.0.0 até 192.168.255.255) à Internet através de um computador da rede que compartilha a sua conexão com a WAN (World Area Network). Ou seja, considerando que a rede local é uma rede "interna" e a Internet é uma rede "externa", podemos dizer que o proxy é aquele que permite que outras máquinas da rede interna, tenham acesso a rede externa.

Geralmente as máquinas da rede interna não possuem endereços válidos na Internet e, portanto, não podem ser roteadas em uma conexão direta com a Internet. Assim, toda a solicitação de conexão de uma máquina da rede local para uma máquina da Internet é direcionada ao proxy; este, por sua vez, realiza a requisição com a web, encaminhando a solicitação para a máquina da rede local. Por este motivo, é utilizado o termo proxy para este tipo de serviço, que é geralmente traduzido como 'intermediário'. Assim, o mais comum é termos um proxy com conexão direta com a Internet, ou entre redes distintas como DMZ/ZDM (Zona Desmilitarizada).

Como identificar a configuração do serviço de proxy

O proxy em qualquer distribuição Linux é configurado através de variáveis de sistema:
  • proxy https: https_proxy
  • http: http_proxy
  • proxy ftp: ftp_proxy

Para verificar se estas variáveis estão setadas, pode-se executar os seguintes comandos:

env
ou
export

Onde:
  • O comando env exibe todas as variáveis carregadas da sessão shell;
  • O comando export exibe todas as variáveis exportadas e habilitadas na sessão shell.

Se não aparecerem as variáveis, quer dizer que não há proxy configurado.

Configuração

Para definir o proxy é simples, basta configurar as variáveis com os valores desta forma:

protocolo_proxy=protocolo://FQDN:porta

Ou se for autenticado:

protocolo_proxy=protocolo://username:[email protected]:porta

Exemplo com proxy sem autenticação:

https_proxy=http://proxy.incolume.com.br:3128
$ http_proxy=http://proxy.incolume.com.br:3128
$ ftp_proxy=http://proxy.incolume.com.br:3128


Exemplo com proxy autenticado:

https_proxy=http://username:[email protected]:8080
$ http_proxy=http://username:[email protected]:8080
$ ftp_proxy=http://username:[email protected]:8080


Se por ventura a senha(password) contiver '@', será necessário proteger sua apresentação, exemplo:

http_proxy=http://username:p\@[email protected]:8080

Para que a configuração de proxy esteja em vigor em todas subsessões, execute com o comando export desta forma:

export http_proxy=http://username:p\@[email protected]:8080
ou
export http_proxy=http://proxy.incolume.com.br:8080
ou
export http_proxy=http://username:[email protected]:8080

Entretanto tudo que foi apresentado até agora é volátil, ou seja, desaparece após o logout.

Para tornar esta configuração permanente, há duas formas:

A primeira por usuário, usando o usuário logado como exemplo, acrescente a configuração ao arquivo ~/.bashrc, ou ao arquivo ~/.bash_profile.

export https_proxy=http://proxy.incolume.com.br:3128
export http_proxy=http://proxy.incolume.com.br:3128
export ftp_proxy=http://proxy.incolume.com.br:3128

Se o proxy for autenticado, acrescente:

export https_proxy=http://username:[email protected]:3128
export http_proxy=http://username:[email protected]:3128
export ftp_proxy=http://username:[email protected]:3128

A segunda é no sistema, acrescente a configuração no arquivo /etc/profile.

export https_proxy=http://proxy.incolume.com.br:3128
export http_proxy=http://proxy.incolume.com.br:3128
export ftp_proxy=http://proxy.incolume.com.br:3128

Se o proxy for autenticado, acrescente:

export https_proxy=http://username:[email protected]:3128
export http_proxy=http://username:[email protected]:3128
export ftp_proxy=http://username:[email protected]:3128

    Próxima página

Páginas do artigo
   1. Introdução
   2. Desfecho
Outros artigos deste autor

CMS Plone 4.1.6 com invólucro Virtualenv + Buildout + Mount Point + BLOB Storage + Unicode UTF-8

Formatando exibição de datas no Linux

Conexão com chaves assimétricas sem uso de senha em servidor sshd

Gerenciando certificados A1 fornecidos pelo ICB-Brasil no navegador Chrome sobre Linux

Explorando o wget

Leitura recomendada

Testando configurações e segurança do Apache com Nikto

Aplicação do firmware intel-microcode no Slackware

Integrando ModSecurity ao NGINX e Apache

Scanners de portas e de vulnerabilidades

Bom escudo não teme espada: o módulo pam_cracklib

  
Comentários
[1] Comentário enviado por FernandoBasso em 25/09/2011 - 09:39h

Eu uso o Arch Linux, e coloco a config do proxy em uma função no ~/.bashrc e em /root/.bashrc. Funciona para wget, curl, pacman, etc, mas, por exemplo, no firefox, se eu escolho "use system proxy settings" não funciona. O firefox parece não usar o proxy, e tenho que setar o proxy no próprio firefox.

O proxy 'integrado gnome 3' não adianta nada. Tanto faz configurar ou não. O mesmo acontece com o networkmanager, e o wicd nem supporte a proxy tem.

O chromium que é "Open Source" me diz isso quando tento configurar o proxy nele em meu sistem open source:

"When running Chromium under a *supported* desktop environment, the system proxy settings will be used. However, either _your system is not supported_ or there was a problem launching your system configuration."


[2] Comentário enviado por removido em 25/09/2011 - 11:17h

@FernandoBasso,

sobre o proxy no Chromium veja essa minha dica:

http://www.vivaolinux.com.br/dica/Proxy-no-Chrome-Chromium-em-outros-WMs

* mas o engraçado é que atualmente e sem adicionar tal opção ao lançador meu Chromium no Debian usa as configurações de proxy do sistema.

[3] Comentário enviado por FernandoBasso em 25/09/2011 - 12:05h

Então deve ser algo do arch mesmo. Quanto a opção chromium --proxy-server eu já tinha lido, mas acho estranho o chromium, sendo open-source - e por tal motivo fortemente atrelado ao linux em geral - não usar as variáveis de ambiente.


[4] Comentário enviado por removido em 25/09/2011 - 12:09h

Esqueci de dizer que uso o OpenBox e Squid3, tanto no Debian, Arch ou Gentoo, antes de postar o comentário anterior rodei um 'tail -f' no log do squid para confirmar.

essa dica do colega já favoritei até porque no Arch Linux não configurei nem wget e pacman para rodar sob o Proxy.

[]'s

[5] Comentário enviado por FernandoBasso em 25/09/2011 - 13:19h

Eu também uso o openbox, mas carrego o gnome-settings-daemon com ele. Já tentei rodar o gnome desktop completinho, só pra ver se funcionava o proxy, mas não funcionou.

Não sei se o iptables poderia estar bloquando alguma coisa, algum pacote que vem do proxy e ele não está deixando passar, sei lá. A princípio meu iptables bloqueia tudo, exceto acesso de hosts da lan.


Contribuir com comentário