Integrando Ubuntu en nuestro dominio Windows – Proxy NTLM
Introducción
En
muchas empresas las granjas de servidores y los ordenadores de trabajo que
utilizan Microsoft Windows están organizados dentro de lo que se conoce como
dominios.
Estos
dominios no son más que un conjunto de ordenadores conectados
en una red que confían a uno de los equipos de
dicha red la administración de los usuarios y los privilegios que cada uno de
los usuarios tiene en dicha red.
Este
equipo, al que se le denomina controlador de dominio, tiene un conjunto de
roles o responsabilidades. Uno de ellos es la autenticación de los usuarios.
La
autenticación es el proceso de garantizar o denegar a un usuario el acceso a
recursos compartidos o a otra máquina de la red, normalmente a través del uso
de una contraseña.
El
protocolo básico de comunicación en el dominio es Directorio Activo (Active
Directory).Este protocolo implementa un servicio de directorio en una red de
ordenadores conectadas a un dominio de Windows, basándose en una serie de
protocolos estándares tales como LDAP, Kerberos, DNS, DHCP, NTLM, etc.
Microsoft Proxy Server
Junto
con el controlador de dominio, se utilizan otros servidores que realizan
funciones específicas, como el Microsoft Proxy Server.
El Proxy Server
actúa como un gateway o pasarela segura para conectar su red local LAN a
Internet. Gateway se refiere un software u ordenador ejecutando software que
permite la comunicación entre dos redes.
Usando un gateway Proxy Server, es posible que la red quede protegida contra intrusos. El Gateway actúa como una barrera que permite hacer peticiones a Internet y recibir información, pero no permitirá el acceso a la red de usuarios no autorizados.
Usando un gateway Proxy Server, es posible que la red quede protegida contra intrusos. El Gateway actúa como una barrera que permite hacer peticiones a Internet y recibir información, pero no permitirá el acceso a la red de usuarios no autorizados.
El Proxy Server se
apoya en NTLM (NT LAN Manager), una serie de protocolos de seguridad de
Microsoft que permiten autenticación, integridad y confidencialidad a los
usuarios conectados en el dominio.
Instalación del proxy Cntlm
Para conectarnos al
Proxy Server de Windows, vamos a utilizar la aplicación cntlm.
Cntlm es un Proxy
NTLM rápido y eficiente, con muy poco consumo de memoria y procesador, con el
que vamos a conectarnos desde nuestro Ubuntu al servidor Proxy de nuestra red
de Windows.
El paquete se encuentra
en el repositorio Universe y este repositorio va instalado por defecto en
cualquier instalación de Ubuntu junto con los repositorios Main, Restricted y
Multiverse.
No obstante, si
queremos verificar que tenemos el repositorio instalado, nos basta con abrir
una terminal y ejecutar un comando cat para ver el contenido del archivo
/etc/apt/sources.list:
sudo cat /etc/apt/sources.list
En este archivo
deben aparecer unas líneas que indican que tenemos el repositorio Universe
instalado:
deb http://es.archive.ubuntu.com/ubuntu/ precise
universe
deb-src http://es.archive.ubuntu.com/ubuntu/ precise
universe
deb http://es.archive.ubuntu.com/ubuntu/
precise-updates universe
deb-src http://es.archive.ubuntu.com/ubuntu/
precise-updates universe
Con esta información
ya podemos instalar el Proxy cntlm:
sudo apt-get install cntlm
O simplemente desde
Ubuntu Software Center. Buscar “cntlm” e instalarlo.
Una vez instalado,
nos quedan dos pasos muy importantes:
- Configurar cntlm para que acceda al
servidor Proxy del dominio
- Configurar el Linux para que todas las
peticiones http, ftp, etc. salgan se redirijan a nuestro Proxy local
Configuración de cntlm
El archivo de
configuración de cntlm se encuentra en /etc/cntlm.conf.
sudo gedit /etc/cntlm.conf
Su contenido de este
archivo es el siguiente:
#
# Cntlm Authentication Proxy Configuration
#
# NOTE: all values are parsed literally, do NOT escape
spaces,
# do not quote. Use 0600 perms if you use plaintext
password.
#
Username johnsmith
Domain enterprise10.com
Password jsmith67
# NOTE: Use plaintext password only at your own risk
# Use hashes instead. You can use a "cntlm
-M" and "cntlm -H"
# command sequence to get the right config for your
environment.
# See cntlm man page
# Example secure config shown below.
# PassLM
1AD35398BE6565DDB5C4EF70C0593492
# PassNT
77B9081511704EE852F94227CF48A793
### Only for user 'testuser', domain 'corp-uk'
# PassNTLMv2
D5826E9C665C37C80B53397D5C07BBCB
# Specify the netbios hostname cntlm will send to the
parent
# proxies. Normally the value is auto-guessed.
#
# Workstation netbios_hostname
# List of parent proxies to use. More proxies can be
defined
# one per line in format
<proxy_ip>:<proxy_port>
#
#Proxy 10.0.0.41:8080
Proxy myproxy.enterprise10.com:9712
# List addresses you do not want to pass to parent
proxies
# * and ? wildcards can be used
#
NoProxy localhost,
127.0.0.*, 10.*, 192.168.*
# Specify the port cntlm will listen on
# You can bind cntlm to specific interface by
specifying
# the appropriate IP address also in format
<local_ip>:<local_port>
# Cntlm listens on 127.0.0.1:3128 by default
#
Listen 3128
# If you wish to use the SOCKS5 proxy feature as well,
uncomment
# the following option. It can be used several times
# to have SOCKS5 on more than one port or on different
network
# interfaces (specify explicit source address for
that).
#
# WARNING: The service accepts all requests, unless
you use
# SOCKS5User and make authentication mandatory.
SOCKS5User
# can be used repeatedly for a whole bunch of
individual accounts.
#
#SOCKS5Proxy 8010
#SOCKS5User dave:password
# Use -M first to detect the best NTLM settings for
your proxy.
# Default is to use the only secure hash, NTLMv2, but
it is not
# as available as the older stuff.
#
# This example is the most universal setup known to
man, but it
# uses the weakest hash ever. I won't have it's usage
on my
# conscience. :) Really, try -M first.
#
#Auth LM
#Flags 0x06820000
# Enable to allow access from other computers
#
#Gateway yes
# Useful in Gateway mode to allow/restrict certain IPs
# Specifiy individual IPs or subnets one rule per
line.
#
#Allow 127.0.0.1
#Deny 0/0
# GFI WebMonitor-handling plugin parameters, disabled
by default
#
#ISAScannerSize
1024
#ISAScannerAgent
Wget/
#ISAScannerAgent
APT-HTTP/
#ISAScannerAgent
Yum/
# Headers which should be replaced if present in the
request
#
#Header User-Agent:
Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
# Tunnels mapping local port to a machine behind the
proxy.
# The format is
<local_port>:<remote_host>:<remote_port>
#
#Tunnel 11443:remote.com:443
Los parámetros más
importantes son:
Parámetro
|
Descripción
|
Username
|
Nombre de usuario
en el dominio de Windows (Active Directory) con el que vamos a acceder al
Microsoft Proxy Server. En este caso johnsmith
|
Domain
|
Dominio de Active
Directory en el cuál validamos nuestro usuario. En este caso es enterprise10.com
|
Password
|
Contraseña de
nuestro usuario de Active Directory. En este caso jsmith67. Si las políticas de Directorio Activo nos obligan a cambiar
periódicamente la contraseña, tenemos que actualizarla en este parámetro
también.No olvidemos que el cntlm intentará periódicamente conectarse al
Microsoft Proxy Server con unas credenciales incorrectas que podrían bloquear
nuestro usuario.
|
Proxy
|
Nombre totalmente
cualificado (FQDN) del Microsoft Proxy Server y de su puerto de acceso
separados por dos puntos:
myproxy.enterprise10.com:9712
|
NoProxy
|
Rangos de
direcciones para las que no necesitamos el uso del Proxy, usualmente:
localhost,
127.0.0.*, 10.*, 192.168.*
|
Listen
|
Puerto por donde
nuestro Proxy local cntlm va a escuchar al resto de las aplicaciones en Linux
cuando quieran acceder a Internet a través del Proxy Server del dominio. Por
defecto es el puerto 3128
|
El cntlm se instala
como un servicio, por lo que después de cambiar los parámetros en cntlm.conf,
tenemos que reiniciarlo para que estos cambios tengan efecto:
sudo service
cntlm restart
La salida deberá
ser:
[sudo]
password for jmaw:
Stopping CNTLM
Authentication Proxy: cntlm.
Starting CNTLM
Authentication Proxy: cntlm.
Configuración de Linux para usar cntlm
Para configurar en
Linux el uso de cntlm, seleccionamos system settings:
Y en system settings
seleccionamos Network. En Network seleccionamos primero el Proxy del sistema,
luego que lo vamos a establecer de forma manual y seleccionamos a cntlm para
cada uno de los protocolos con el puerto predeterminado 3128.
Una vez configurado
el Proxy para todos los protocolos hacemos click en el botón “Apply system
wide” y ya tenemos el Proxy cntlm listo.
La próxima prueba es
abrir Firefox y hacer una búsqueda en Google para ver que efectivamente el
acceso a Internet funciona.
0 comentarios:
Publicar un comentario