cntlm
proporciona una solución, junto con alguna configuración.
Los pasos básicos a seguir son:
- Instalar cntlm.
- Edite su archivo de configuración en /etc/cntlm.conf, los comentarios incluidos lo hacen bastante fácil.
- Agregue un servidor proxy (o dos).
- Especifique su nombre de usuario y nombre de dominio NT en los lugares apropiados y elimine la entrada de contraseña.
Inicie el servicio cntlm, por ejemplo, a través de
$ sudo /etc/init.d/cntlm start
cntlm proporciona una forma de probar el proxy y generar un hash a partir de su contraseña, por ejemplo, mediante el comando (como root)
$ cntlm -I -M http://www.test.com
cntlm le pedirá su contraseña de dominio. Luego probará diferentes mecanismos de autenticación contra el servidor proxy configurado. Cuando se encuentra un método de trabajo, imprime dos líneas que deben ir a su archivo de configuración.
- Detenga el servidor cntlm y agregue las líneas obtenidas en el paso 6 anterior a
/etc/cntlm.conf
.
- Reiniciar cntlm
Ahora cntlm
está funcionando y listo para ser utilizado. Se pueden usar varios lugares para configurar varios programas para usarlo. cntlm
luego agregará de manera transparente tokens de autenticación de dominio NT a los paquetes salientes y los reenviará al servidor proxy configurado.
Usando Qt / KDE
Para las aplicaciones nativas de Qt / KDE, especifique "Usar servidor proxy configurado manualmente" en Configuración del sistema KDE -> Configuración de red -> Configuración de proxy . El proxy se especifica como http://localhost
con el puerto 3128 (El valor predeterminado paracntlm
menos que lo haya cambiado). Estas aplicaciones se actualizan dinámicamente con nuevas configuraciones y no se requiere reiniciar o cerrar sesión / iniciar sesión para actualizar la configuración.
Clientes de Dropbox y Google
Muchas aplicaciones pueden usar variables de entorno de shell. Destacan aquí los clientes de Dropbox y Google Earth. Para estas aplicaciones, use variables de entorno de 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, rizo y wget
Nota: Algunas aplicaciones usarán solo los nombres en minúsculas, otras solo en mayúsculas, algunas probarán primero una, luego la otra.
s3cmd
(El cliente de Amazon S3), curl
y wget
se puede configurar adicionalmente a través de sus propios archivos de configuración si lo desea. Esto es útil porque leen sus propios archivos de configuración en cada invocación. Dado que estos programas suelen ser de corta duración (existe una sola invocación después de completar una descarga), eso es muy útil.
El formato para s3cmd
en ~/.s3cfg
es:
proxy_host = localhost
proxy_port = 3128
El formato para wget ~/.wgetrc
es:
https_proxy = http://localhost:3128
http_proxy = http://localhost:3128
ftp_proxy = http://localhost:3128
El formato para curl
en ~/.curlrc
es:
proxy = localhost:3128
Por otro lado, la edición del perfil de shell u otros archivos de configuración del entorno generalmente requieren un reinicio, cierre y cierre de sesión o similar. Vale la pena investigar /etc/environment
, ~/.pam_environment
,~/.kde/env/proxy.sh
etc. ya que estos son lugares estándar para establecer configuraciones de proxy configuradas a través de variables de entorno de shell, particularmente para afectar a todos los usuarios y servicios en el sistema.
También entiendo que es posible cambiar la configuración del entorno por aplicación utilizando sus respectivos .desktop
archivos, pero aún no lo he probado (con éxito).
VirtualBox
VirtualBox se puede configurar para usar un proxy (por ejemplo, para buscar y descargar actualizaciones de software) usando su GUI o usando el comando:
$ VBoxManage setextradata global GUI/ProxySettings \
"proxyEnabled,localhost,3128,authDisabled,,"
Para completar, para deshabilitarlo, use:
$ VBoxManage setextradata global GUI/ProxySettings \
"proxyDisabled,,,authDisabled,,"
Firefox
Para Firefox, uso el complemento QuickProxy. El propio Firefox si está configurado manualmente para usar el servidor proxy en la máquina local, por lo que QuickProxy simplemente habilita / deshabilita la configuración.
APTO
APT (utilizado en segundo plano por synaptic, muon y amigos) utiliza un archivo de configuración /etc/apt/apt.conf.d/
, por ejemplo, la 00proxy
activación del proxy para APT se realiza mediante líneas como:
Acquire::http::Proxy "http://localhost:3128";
#Acquire::ftp::proxy "ftp://localhost:3128/";
#Acquire::https::proxy "https://localhost:3128/";
Nota: add-apt-repository usa el perfil raíz, o puede configurar sudo para permitir que todas las configuraciones de http * _proxy se caigan.
Un guión para gobernarlos a todos
FWIW Ahora mismo estoy en el proceso de escribir un script modular para habilitar / deshabilitar proxy para numerosos programas. Hasta ahora he escrito los siguientes 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*
Así como una aplicación de control. Con suerte, pronto se trasladarán a un github u otro hogar en línea.