Para evitar esto disponemos de cntlm que nos facilita mucho la vida. Cntlm nos permite la autentificación NTLM, NTLMv2 de forma rápida y sencilla contra proxys HTTP, el reenvío de puertos, túneles HTTP, ... En lenguaje llano un proxy del proxy.
Una de las ventajas de usar cntlm es que se loga en los proxys haciendo hash a los passwords y no guardas en ningún lado contraseñas en texto plano. En varias distribuciones el paquete esta en los repositorios, pero sino, podéis dirigiros a la página del projecto para descargarlo. Veamos los pasos a seguir.
Instalamos el paquete
sudo aptitude install cntlm
Editamos el archivo /etc/cntlm.conf y modificamos los valores de usuario, dominio, proxy, vamos los datos necesarios para logarte en ISA Server (no poner el password) y el puerto de escucha.
sudo vim /etc/cntlm.conf
Después probamos el funcionamiento de cntlm. Nos pedirá la contraseña de la cuenta de usuario de Active Directory.
cntlm -I -M http://masvale-manya.blogspot.com
...
Auth NTLMv2
PassNTLMv2 E876EC9DEED1BA2F64FDF27D55BF73DC
...
Nos arrojara un código parecido a este que pegaremos en /etc/cntml.conf y así ya tendremos el password cifrado. Otros parámetros del archivo de configuración interesantes son:
ISAScannerAgent Wget/
ISAScannerAgent APT-HTTP/
#ISAScannerAgent Yum/
Descomentamos las opciones apropiadas para tu sistema. Otra para mi muy útil es la de gateway. Uso alguna máquina virtual para opciones muy concretas y para que me funcionaran en estas circunstancias deberían de tener al misma configuración que el host. Con esta opción me permite que otros equipos se conecten a él. Para temas de seguridad tienes para configurar Allow/Deny y las reglas tu firewall.
Gateway yes
Reiniciamos el servicio y ya estará funcionando.
sudo /etc/init.d/cntlm restart
Solo nos queda indicarle al sistema que use cntlm como proxy. Tenemos en cuenta la ip del host y el puerto de escucha antes indicado. Gnome menú > Sistema > Preferencias > Proxy de la red o como yo, si tienes equipos sin X, haces muchos cambios, te va más rápido, ... puedes configurarte un script para cambiar de proxy. Os dejo un ejemplo:
#!/bin/bash
###############################################
####### ELEGIR PROXY A USAR #######
###############################################
############################# Nebur #######
###############################################
# Verificamos que somos root
if [ $UID -ne 0 ]; then
echo "Necesitas ser root (sudo su) para que el script funcione"
exit
fi
# Menú para escoger el lugar donde estamos. Cambiar el valor
# de las variables según las necesidades. Si no quieres proxy
# comentar todas y dejar proxy=sin. Si no usas usuario y
# contraseñas comentalos y si precisas de esos valores poner
# usuario: y contraseña@
echo "Elige que proxy deseas usar y pulsa Intro"
echo "(1)Ninguno (2)Sitio (3)OtroSitio"
while [ "$sitio" != 1 ] && [ "$sitio" != 2 ] && [ "$sitio" != 3 ]; do
read sitio
case $sitio in
1 ) proxy=sin
#puerto=
#usuario=
#pass=
;;
2 ) proxy=localhost
puerto=3128
#usuario=
#pass=
;;
3 ) proxy=localhost
puerto=3128
usuario="usuario:"
pass="password@"
;;
* ) echo "Debes escoger entre 1, 2 ó 3"
;;
esac
done
# Realizamos los cambios para apt, wget
# y las apliaciones de la consola.
if [ "$proxy" = sin ]; then
if [ "$(grep Acquire /etc/apt/apt.conf)" != "" ]; then
sed -i '/Acquire/d' /etc/apt/apt.conf
fi
if [ "$(grep '_proxy="' /etc/environment)" != "" ]; then
sed -i '/_proxy="/d' /etc/environment
fi
if [ "$(grep 'use_proxy = on' /etc/wgetrc | grep -v '#use_proxy')" != "" ]; then
sed -i 's/use_proxy = on/use_proxy = off/' /etc/wgetrc
fi
else
if [ "$(grep "Acquire" /etc/apt/apt.conf)" != "" ]; then
sed -i '/Acquire/d' /etc/apt/apt.conf
echo "Acquire::http::Proxy "http://$usuario$pass$proxy:$puerto/";" >> /etc/apt/apt.conf
echo "Acquire::ftp::Proxy "http://$usuario$pass$proxy:$puerto/";" >> /etc/apt/apt.conf
echo "Acquire::https::Proxy "http://$usuario$pass$proxy:$puerto/";" >> /etc/apt/apt.conf
else
echo "Acquire::http::Proxy "http://$usuario$pass$proxy:$puerto/";" >> /etc/apt/apt.conf
echo "Acquire::ftp::Proxy "http://$usuario$pass$proxy:$puerto/";" >> /etc/apt/apt.conf
echo "Acquire::https::Proxy "http://$usuario$pass$proxy:$puerto/";" >> /etc/apt/apt.conf
fi
if [ "$(grep "_proxy="" /etc/environment)" != "" ]; then
sed -i '/_proxy="/d' /etc/environment
echo "http_proxy="http://$usuario$pass$proxy:$puerto/"" >> /etc/environment
echo "ftp_proxy="http://$usuario$pass$proxy:$puerto/"" >> /etc/environment
echo "https_proxy="http://$usuario$pass$proxy:$puerto/"" >> /etc/environment
else
echo "http_proxy="http://$usuario$pass$proxy:$puerto/"" >> /etc/environment
echo "ftp_proxy="http://$usuario$pass$proxy:$puerto/"" >> /etc/environment
echo "https_proxy="http://$usuario$pass$proxy:$puerto/"" >> /etc/environment
fi
if [ "$(grep 'use_proxy = on' /etc/wgetrc | grep -v '#use_proxy')" = "" ]; then
sed -i 's/use_proxy = off/use_proxy = on/' /etc/wgetrc
fi
fi
exit
Pegamos el código en un archivo nuevo y modificamos las variables.
vim cambiar_proxy
Le damos permisos de ejecución al archivo.
chmod +x cambiar_proxy
Para ejecutarlo simplemente
./cambiar_proxy
Si aprovechando este script queréis ahorraros usar el Proxy de la red del menú de Gnome y realizar los cambios para las aplicaciones que recogen los datos de gconf podéis implementarlo en el script. Os dejo los datos a cambiar y/o tener en cuenta:
gconftool --type bool --set /system/http_proxy/use_http_proxy false/true
gconftool --type string --set /system/http_proxy/host proxy
gconftool --type int --set /system/http_proxy/port puerto
gconftool --type bool --set /system/http_proxy/use_authentication false/true
gconftool --type string --set /system/http_proxy/authentication_user usuario
gconftool --type string --set /system/http_proxy/authentiation_password contraseña
gconftool --type bool --set /system/http_proxy/use_same_proxy false/true
gconftool --type bool --set /system/http_proxy/ignore_hosts excepciones
No hay comentarios:
Publicar un comentario