Proxy Blocking apt-get, Permitindo wget / curl

4

Estou tendo um problema ao passar pelo meu servidor proxy corporativo. Eu tive uma exceção colocada em prática para permitir que meu endereço IP passasse, mas não consegui fazer com que apt-get funcionasse.

wget pode acessar os repositórios do Ubuntu sem problemas.

root@server:/tmp# http_proxy=http://<PROXY>:8080 wget http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/multiverse/binary-i386/Packages.bz2
--2014-01-24 09:17:38--  http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/multiverse/binary-i386/Packages.bz2
Resolving <PROXY> (<PROXY>)... x.x.x.25, x.x.x.24
Connecting to <PROXY> (<PROXY>)|x.x.x.25|:8080... connected.
Proxy request sent, awaiting response... 200 OK
Length: 5178 (5.1K) [application/x-bzip2]
Saving to: 'Packages.bz2'

100%[========================================>] 5,178       --.-K/s   in 0.001s

2014-01-24 09:17:38 (7.78 MB/s) - 'Packages.bz2' saved [5178/5178]

root@server:/tmp# ll -h
total 16K
drwxrwxrwt  2 root root 4.0K Jan 24 09:17 ./
drwxr-xr-x 23 root root 4.0K Jan 16 14:14 ../
-rw-r--r--  1 root root 5.1K Jan 24 09:05 Packages.bz2
root@server:/tmp#

Eu configurei minhas configurações de proxy apt-conf.d.

root@server:/tmp# cat /etc/apt/apt.conf.d/30proxy
Acquire::http::proxy "http://<PROXY>:8080";
Acquire::ftp::proxy "ftp://<PROXY>:8080";
Acquire::https::proxy "https://<PROXY>:8080";
root@server:/tmp#

apt-get ainda falha com um erro 403 Forbidden .

root@server:/tmp# apt-get update
Ign http://us.archive.ubuntu.com precise Release.gpg
<...snipped excess...>
Ign http://us.archive.ubuntu.com precise-backports/universe TranslationIndex
Err http://security.ubuntu.com precise-security/main Sources
  403  Forbidden [IP: x.x.x.25 8080]
<...snipped excess...>
Err http://security.ubuntu.com precise-security/multiverse i386 Packages
  403  Forbidden [IP: x.x.x.25 8080]
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/main/source/Sources  403  Forbidden [IP: x.x.x.24 8080]
<...snipped excess...>
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/precise-security/multiverse/binary-i386/Packages  403  Forbidden [IP: x.x.x.25 8080]
E: Some index files failed to download. They have been ignored, or old ones used instead.
root@server:/tmp#

PROXY substitui o FQDN do meu servidor proxy

    
por Ryan Foley 24.01.2014 / 10:50

2 respostas

3

O problema é com o user-agent informado. É por isso que o proxy trabalhou com o wget e não com o apt-get.

Corri tcpdump -Ai eth0 port 8080 para ver como era o http e recebi uma mensagem "user agent não aprovada" do nosso proxy corporativo.

<...snip...>
 <h1>ACCESS DENIED</h1>
 <p>The software you are accessing the internet with is not reporting an 
    approved "User-Agent"</p>
<...snip...>

O Ubuntu Manpage tinha uma seção que explica esse parâmetro de configuração.

  

Adquirir :: http :: User-Agent pode ser usado para definir um User-Agent diferente   para o método de download http, pois alguns proxies permitem acesso para clientes   somente se o cliente usar um identificador conhecido.

erro do apt-get 307 fornecido a sintaxe necessária, basta adicionar o seguinte sintaxe para /etc/apt/apt.conf.d/30proxy (ou o que você escolher).

Acquire::http::User-Agent "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";

Agora, as atualizações do apt-get passam na perfeição.

root@server:/etc/apt/apt.conf.d# apt-get update
Hit http://security.ubuntu.com precise-security Release.gpg
Hit http://us.archive.ubuntu.com precise Release.gpg
<...snip...>
Hit http://us.archive.ubuntu.com precise-backports/multiverse Translation-en
Hit http://us.archive.ubuntu.com precise-backports/restricted Translation-en
Hit http://us.archive.ubuntu.com precise-backports/universe Translation-en
Reading package lists... Done
    
por Ryan Foley 27.01.2014 / 09:36
-1

sim cara, você estava certo desde o começo (acho que entendi o seu problema). Do meu entendimento para o seu problema, o modo wget funciona com proxies, não é o mesmo que apt-get faz. Que tal você remover o 3 de linhas Acquire::http::proxy "http://<PROXY>:8080"; deste diretório /etc/apt/apt.conf.d/30proxy ou talvez remover o arquivo 30proxy e tentar atualizar do terminal usando apenas um endereço de proxy como em root@server:/tmp# http_proxy=http://<PROXY>:8080 apt-get updateor root@server:/tmp# http_proxy=http://<PROXY>:8080 | apt-get update . Acredito que tenha algo a ver com a configuração do proxy e do apt-get , o que eu não tenho ideia de fazer. Estou apenas tentando ajudá-lo a tentar coisas.

Você ainda tem a opção de wget os links das atualizações, em seguida, buscá-los e instalá-los.

    
por ggalaxy 25.01.2014 / 14:22

Tags