cntlm
fornece uma solução, juntamente com alguma configuração.
Os passos básicos a seguir são:
- Instale o cntlm.
- Edite seu arquivo de configuração em /etc/cntlm.conf, os comentários incluídos facilitam bastante.
- Adicione um servidor proxy (ou dois).
- Especifique seu nome de usuário e nome de domínio do NT nos locais apropriados e remova a entrada de senha.
-
Inicie o serviço cntlm, por exemplo, via
$ sudo /etc/init.d/cntlm start
-
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
-
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.
- Pare o servidor cntlm e adicione as linhas obtidas na etapa 6 acima a
/etc/cntlm.conf
.
- 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.