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

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

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

Formatando exibição de datas no Linux

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

Proteção utilizando fail2ban contra ataques do tipo

Instalação Plone 2.5.5 com módulos customizados

Leitura recomendada

Usando e instalando o Nessus no Linux

Enviando alertas do Snort por SMS

Criando senhas seguras com o mkpasswd

Race condition - vulnerabilidades em suids

Principais fontes de vulnerabilidade no Linux

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts