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: 160.703 ]

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:password@FQDN: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:password@proxy.incolume.com.br:8080
$ http_proxy=http://username:password@proxy.incolume.com.br:8080
$ ftp_proxy=http://username:password@proxy.incolume.com.br:8080


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

http_proxy=http://username:p\@ssword@proxy.incolume.com.br: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\@ssword@proxy.incolume.com.br:8080
ou
export http_proxy=http://proxy.incolume.com.br:8080
ou
export http_proxy=http://username:password@proxy.incolume.com.br: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:password@proxy.incolume.com.br:3128
export http_proxy=http://username:password@proxy.incolume.com.br:3128
export ftp_proxy=http://username:password@proxy.incolume.com.br: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:password@proxy.incolume.com.br:3128
export http_proxy=http://username:password@proxy.incolume.com.br:3128
export ftp_proxy=http://username:password@proxy.incolume.com.br:3128

    Próxima página

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

Proteção utilizando fail2ban contra ataques do tipo

Configurando Subversion

Clonagem de Hardware Hotline em Software Livre

Explorando o wget

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

Leitura recomendada

Política de Segurança para Dispositivos Móveis

Configurando um servidor de logs simples

Tomcat + SSL: HOW-TO

O espaço e a segurança cibernética

MSN-Proxy no Debian Etch

  
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