Como configurar para um servidor proxy de autenticação

8

Meu servidor proxy de trabalho requer autenticação com as credenciais de usuário do domínio do Microsoft AD. Todos sabem como funciona: Se você fizer logon em uma estação de trabalho Windows, suas solicitações de acesso à Internet baseadas no navegador "Internet Explorer" serão autenticadas automaticamente (e identificadas) usando as credenciais de login do seu domínio.

Descobri que o Firefox também pode autenticar contra esses servidores proxy e supõe que eles "fazem algo especial". Recentemente, um colega instalou o Linux Mint em uma VM e, para minha surpresa, ele estava ocupado recebendo atualizações da Internet. Quando eu perguntei como ele conseguiu trabalhar, ele deu de ombros e disse: "Só funcionou"

Isso me levou a olhar novamente as configurações de proxy. Eu corro o Kubuntu (com uma mistura de aplicativos G * e K *, mas eu só uso os aplicativos GTK quando estou convencido de que eles são muito melhores do que qualquer coisa K *)

Ainda tenho uma cópia do convidado do Windows em execução em uma VM do VirtualBox, principalmente para impressão e acesso a sites internos / corporativos (que exigem autenticação e identificação por meio de credenciais de domínio MS), bem como para alterar minha senha de domínio a cada tantos dias.

Portanto, seria muito útil se eu conseguisse que [alguns / mais / todos] meus aplicativos Linux funcionassem através do servidor proxy. As minhas necessidades mais urgentes são que Akregator e Muon possam trabalhar. Outros aplicativos que podem se beneficiar são alguns aplicativos que atualizam automaticamente (por exemplo, Virtual Box Extentions) ou envolvem um navegador (Get More Themes / Papéis de parede / etc vem à mente, e o uso ocasional de wget)

Clientes SSH / SCP conseguem trabalhar através do firewall sem autenticação.

Qual é o caminho certo (ferramenta e / ou procedimento) para configurar isso, idealmente em um único local, porque ter que manter minha senha em vários locais é uma receita para ficar bloqueado em minha conta: - /

Ah, e seria um sonho se eu pudesse ter o equivalente ao utilitário de desativação / ativação do proxy "Quick Proxy" do Firefox, por exemplo, um clique para ativar ou desativar o uso de proxy, sem precisar fazer logout e de volta, dependendo da rede em que estou. Na verdade, pensando nisso, um utilitário deve ser treinável para olhar para o seu endereço IP e saber quando você precisa usar o proxy! Mas eu divago.

Eu imagino que executar um servidor proxy local que possa adicionar dinamicamente a autenticação e encaminhar para um servidor proxy upstream quando necessário pode ser a única solução real.

    
por Johan 02.04.2013 / 12:46

3 respostas

2

From my Linux workstation, the only application that can access the internet are a) Firefox (using its own proxy configuration and authentication stored in Firefox), as well as applications running in a Windows VM (Note - the windows VM is a domain member and the user authenticates against the domain when logging in)

Opção de solução : execute um proxy da Web na sua VM do Windows. Configure seu sistema para usar essa instância como seu proxy.

Como sua VM do Windows já está autenticada e o tráfego é permitido por meio dela, a configuração de um proxy SOCKS nessa instância de VM centralizará suas necessidades de autenticação. Se é apenas para você e suas caixas, isso deve ser bom e provavelmente é bastante simples.

Piggybacking nesta ideia é fazer com que um daemon SSHD seja executado na VM do Windows, para que você possa fazer coisas como túneis SSH SOCKS de suas outras caixas por meio da VM:

ssh -D 1080 windows-user@windows-vm

Para aqueles aplicativos que podem ter problemas ou onde você não deseja reconfigurar os aplicativos, você pode usar o sshtunnel , que configurará as regras do iptables para rotear o tráfego. Funciona para sistemas Linux e Mac.

Se você precisar evitar a instalação de um proxy na própria VM do Windows, poderá configurar uma caixa de proxy do Squid configurada para se autenticar no Windows AD. Um guia sobre como fazer isso localizado aqui:

Opção de solução : Squid Proxy autenticado via AD / NTLM

link ( elo morto )

Outra solução de proxy NTLM, embora eu ache que esta seja executada em uma máquina Windows:

Opção de solução : proxy NTLM link

    
por 10.04.2013 / 22:11
7

cntlm fornece uma solução, juntamente com alguma configuração.

Os passos básicos a seguir são:

  1. Instale o cntlm.
  2. Edite seu arquivo de configuração em /etc/cntlm.conf, os comentários incluídos facilitam bastante.
  3. Adicione um servidor proxy (ou dois).
  4. Especifique seu nome de usuário e nome de domínio do NT nos locais apropriados e remova a entrada de senha.
  5. Inicie o serviço cntlm, por exemplo, via

    $ sudo /etc/init.d/cntlm start
    
  6. O cntlm fornece uma maneira de testar o proxy e gerar um hash da sua senha - por exemplo, pelo comando (como root)

    $ cntlm -I -M http://www.test.com
    
  7. O cntlm solicitará a senha do seu domínio. Em seguida, ele testará diferentes mecanismos de autenticação no servidor proxy configurado. Quando um método de trabalho é encontrado, ele imprime duas linhas que precisam entrar em seu arquivo de configuração.

  8. Pare o servidor cntlm e adicione as linhas obtidas na etapa 6 acima a /etc/cntlm.conf .
  9. Reinicie o cntlm

Agora, cntlm está em execução e pronto para ser usado. Um número de lugares pode ser usado para configurar vários programas para usá-lo. Em seguida, cntlm adicionará transparentemente os tokens de autenticação de domínio NT aos pacotes de saída e os encaminhará ao servidor proxy configurado.

Usando o Qt / KDE

Para aplicações nativas do Qt / KDE, especifique "Usar servidor proxy configurado manualmente" em Configurações do Sistema do KDE - > Configurações de Rede - > Configurações de proxy . O proxy é especificado como http://localhost com a porta 3128 (O padrão para cntlm , a menos que você o tenha alterado). Esses aplicativos são atualizados dinamicamente com novas configurações e não é necessário reiniciar ou fazer logout / login para atualizar as configurações.

Dropbox & Clientes do Google

Muitos aplicativos podem usar variáveis de ambiente do shell. Digno de nota aqui são os clientes Dropbox e Google Earth. Para essas aplicações, use variáveis de ambiente shell como estas:

no_proxy=localhost,127.0.0.0/8,*.local
NO_PROXY=localhost,127.0.0.0/8,*.local
all_proxy=socks://localhost:3128/
ALL_PROXY=socks://localhost:3128
http_proxy=http://localhost:3128
HTTP_PROXY=http://localhost:3128
ftp_proxy=http://localhost:3128
FTP_PROXY=http://localhost:3128
https_proxy=http://localhost:3128
HTTPS_PROXY=http://localhost:3128

s3cmd, curl, & wget

Observação: alguns aplicativos usarão apenas os nomes em minúsculas, outros apenas os nomes em letras maiúsculas, alguns tentarão primeiro um e depois o outro.

s3cmd (o cliente do Amazon S3), curl e wget também podem ser configurados por meio de seus próprios arquivos de configuração, se desejado. Isso é útil porque eles lêem seus próprios arquivos de configuração em cada chamada. Uma vez que estes programas são tipicamente de curta duração (Uma invocação única existe depois de completar um download) que é muito útil.

O formato para s3cmd em ~/.s3cfg é:

proxy_host = localhost
proxy_port = 3128

O formato para o wget em ~/.wgetrc é:

https_proxy = http://localhost:3128
http_proxy = http://localhost:3128
ftp_proxy = http://localhost:3128

O formato para curl em ~/.curlrc é:

proxy = localhost:3128

Por outro lado, a edição do perfil do shell ou outros arquivos de configuração do ambiente geralmente exigem reinicialização, logout e back-in ou similar. Vale a pena investigar /etc/environment , ~/.pam_environment , ~/.kde/env/proxy.sh etc, pois esses são locais padrão para definir configurações de proxy configuradas por meio de variáveis de ambiente shell, especialmente para afetar todos os usuários e serviços no sistema.

Eu também entendo que é possível alterar as configurações de ambiente por aplicativo usando seus respectivos arquivos .desktop , mas ainda não tentei (com êxito).

VirtualBox

O VirtualBox pode ser configurado para usar um proxy (por exemplo, para verificar e baixar atualizações de software) usando sua GUI ou usando o comando:

$ VBoxManage setextradata global GUI/ProxySettings \
    "proxyEnabled,localhost,3128,authDisabled,,"

Por motivos de integridade, para desativá-lo, use:

$ VBoxManage setextradata global GUI/ProxySettings \    
    "proxyDisabled,,,authDisabled,,"

Firefox

Para o Firefox eu uso o addon QuickProxy. O próprio Firefox se configurado manualmente para usar o servidor proxy na máquina local, portanto, o QuickProxy apenas ativa / desativa a configuração.

APT

O APT (usado em segundo plano por synaptic, muon e amigos) usa um arquivo de configuração em /etc/apt/apt.conf.d/ , por exemplo, 00proxy A ativação do proxy para o APT é feita usando linhas como:

Acquire::http::Proxy "http://localhost:3128";
#Acquire::ftp::proxy "ftp://localhost:3128/";
#Acquire::https::proxy "https://localhost:3128/";

Nota: o add-apt-repository usa o perfil raiz, ou você pode configurar o sudo para permitir que todas as configurações http * _proxy passem.

Um script para governá-los todos

FWIW Estou agora no processo de escrever um script modular para habilitar / desabilitar o proxy para vários programas. Até agora escrevi os seguintes módulos:

$ ls -lF proxymanager/modules/
total 60
-rwxr-xr-x 1 root root  919 Oct  8 17:27 apt*
-rwxr-xr-x 1 root root 1037 Oct  8 13:10 bashrc*
-rwxr-xr-x 1 root root  391 Oct  8 12:18 cntlm*
-rwxr-xr-x 1 root root  684 Oct  8 12:58 curl*
-rwxr-xr-x 1 root root  609 Oct  8 13:02 dropbox*
-rwxr-xr-x 1 root root  672 Oct  8 12:18 gnome*
-rwxr-xr-x 1 root root  691 Oct  8 12:18 kde*
-rwxr-xr-x 1 root root  689 Oct  8 13:03 root_bashrc*
-rwxr-xr-x 1 root root  691 Oct  8 13:03 root_curl*
-rwxr-xr-x 1 root root  827 Oct  8 13:03 s3cmd*
-rwxr-xr-x 1 root root  454 Oct  8 13:03 survive_reboot*
-rwxr-xr-x 1 root root  860 Oct  8 13:06 suse-sysproxy*
-rwxr-xr-x 1 root root  653 Oct  8 12:46 sysenvironment*
-rwxr-xr-x 1 root root  465 Oct  8 13:04 virtualbox*
-rwxr-xr-x 1 root root  573 Oct  8 13:04 wgetrc*

Além de um aplicativo de controle. Esperamos que em breve eles sejam movidos para um github ou outro lar on-line.

    
por 09.10.2013 / 14:27
0

A autenticação por proxy com ntlm é bem explicada nos links abaixo.

Mas o problema com o ntlm é que você precisa atualizar o arquivo de configuração cntlm várias vezes ao dia. Considere uma situação em que usuários diferentes compartilham uma máquina comum e precisam atualizar sua senha do AD no arquivo cntlm config sempre que fizerem login no sistema. Talvez haja um método disponível para atualizar automaticamente o arquivo de configuração cntlm sempre que um usuário estiver logado.

    
por 06.05.2015 / 13:10