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.

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.

posted under , , |

0 comentarios:

Publicar un comentario

Entrada más reciente Entrada antigua Inicio