Google EL TIPO DE INFORMATICA: Active Directory
Mostrando entradas con la etiqueta Active Directory. Mostrar todas las entradas
Mostrando entradas con la etiqueta Active Directory. Mostrar todas las entradas

lunes, 26 de mayo de 2014

Importar Datos en Active Directory desde un archivo de Texto con DSQUERY y DSMOD

Quizas les haya pasado esto, necesitan modificar la información o propiedades en Active Directory de multiples usuarios, por ejemplo, agregar la dirección de correo, números telefónicos, agregarlos a un grupo o cualquier otra información del usuario. Esto mismo se me presento hoy, tenia que agregar el código de empleado a todos los usuarios, se le iba a agregar en el campo "Description". Me dieron un archivo de Excel con la lista de usuarios y la información que debía agregar. Afortunadamente había una columna con el username del dominio, por lo que era mas fácil asociar la nueva información con active directory.

DSQUERY y DSMOD

Bien, la manera mas fácil que pensé para hacer esto fue utilizar los comandos "DSQUERY" y "DSMOD", estos comandos permiten como seguramente ya han intuido, hacer búsquedas de en Active Directoty (dsquery), ya sea usuarios, computadoras, etc., para y modificar parámetros (dsmod) como los que les mencione mas arriba (correo, nombre usuario, password, etc.). Para utilizarlos tendrian que instalar "Remote Server Administration Tools". Si queremos por ejemplo  listar todos los usuarios del dominio usaríamos "dsquery user", podemos también buscar todos los usuarios de un OU especifico, supongamos que queremos los usuarios del OU "Contabilidad" y que nuestro dominio Active Directory se llama "midominio.local", usaríamos esto:

C:\>dsquery user ou="Contabilidad,dc=midominio,dc=local"

Con esto tendríamos el listado de usuarios de este OU, lo bueno es que ahora podemos tomar la salida de este comando y pasárselo a DSMOD para cambiar los parámetros o atributos que necesitemos agregar o cambiar. Siguiendo el ejemplo anterior, supongamos que a los usuarios de ese OU queremos modificarles el atributo "Office", lo que hariamos es repeterir el mismo comando anterior, pero agregar un "pipe" al final para dirigir la salida del comando a DSMOD y agregar dsmod user -office "Oficina Principal":

C:\>dsquery user ou=Contabilidad,dc=midominio,dc=local" | dsmod user -office OficinaPrincipal


Así todos los usuarios del OU que indicamos tendrán el atributo modificado, pero ahora viene lo interesante. Volvamos al caso inicial de modificar un grupo de usuarios y agregar o modificar en cada uno un atributo, pero con valores diferentes. Como les dije tenia la lista de usuarios y los atributos que debía agregar, lo que hice fue tomar de este archivo las 3 columnas que me interesaban: username (el del dominio), correo electrónico y código. Lo que haremos sera utilizar este archivo de texto (cvs) con estas 3 columnas y alimentar con cada una de ellas estos comandos. Usaremos también el comando "FOR"  que sera quien leerá el archivo de texto y pasara la información a dsquery y dsmod. El archivo de texto se vería mas o menos de esta manera:

Archivo de Usuarios en formato CVS

Donde como pueden ver tenemos en la primera columna el usuario, en la segunda su cuenta de correo y en la tercera el código del usuario que agregaremos en el campo "Description" de Active Directory. Como ven las columnas están separadas por coma (cvs), lo guardaremos en "C:\usuarios.cvs". Teniendo ya nuestro archivo listo y organizado, podemos hacer una prueba con el comando FOR ejecutando "for /F "tokens=1,2,3 delims=, " %a in (usuarios.csv) do echo %a %b %b" obtendríamos:


Si la salida fue como el gráfico anterior, podemos ahora hacer unos cambios al comando, y quedaría de esta manera:

C:\>for /F "tokens=1,2,3 delims=, " %a in (C:\usuarios.cvs) do dsquery user -samid %a | dsmod user -email %b -desc %c

Vamos a ver entonces lo que pasa aqui. Si tienen nociones de programación estarán familiarizados con el comando FOR, lo que estamos haciendo es "iterando" sobre el archivo "usuarios.cvs" y por cada linea ejecutaremos una acción. El comando "For" lo que hará es asignar el contenido de cada columna en una linea a una variable, en este caso la primera columna de la primera fila (el nombre de usuario) se asignara a la variable "%a", la segunda (el correo) a la variable "%b" y la tercera (el código) a la variable "%c" (pero como ven solo especifique %a en el comando, ya el sabe que las otras columnas las almacenara en variables nombradas con la letra siguiente). Luego indicamos el parámetro "do" del comando for, que es entonces donde especificamos la acción que se ejecutara en cada iteración sobre el archivo, y es aqui entonces donde usamos los comandos "dsquery" y dsmod". Como ven, ejecuto "dsquery user -samid" y le paso como parametro la variable %a a la que FOR ya le ha asignado el valor de "user1" (con "-samid" le indicamos a dsquery que buscaremos en Active Directory por username). Luego hago un "pipe" (|) para redirigir el resultado de dsquery a dsmod, usando "dsmod user -email %b -desc %c". Aqui estamos modificando 2 atributos del usuario al mismo tiempo (email y descripcion) y los valores que le estamos pasando son las variables %b y %c, que FOR ya le asigno los valores "user1@midominio.local" y "00001" respectivamente.

Al presionar enter veremos que se irán ejecutando estos comando uno por uno por cada linea del archivo usuarios.cvs, si encuentra un error en una linea del archivo el error les saldrá en pantalla pero no se detendrá la ejecución, ya que FOR continuara ejecutandose por cada linea del archivo. Bien, con esto hemos importado datos o actualizado información de un grupo de usuarios en Active Directory usando un archivo de texto, espero haberles explicado bien, todo esto tiene mucho sentido en mi cabeza pero a veces la explicación no me sale tan clara :D. Les recomiendo explorar los comando "DSQUERY" y "DSMOD" usándolos con el parámetro  de ayuda "/?", verán todo lo que pueden hacer en Active Directory desde la linea de comandos con ellos y tambien con DSGET y DSMOD. Espero que les haya sido de utilidad!


jueves, 17 de noviembre de 2011

Aplicar una GPO para un Terminal Services Server

Hola a todos otra vez! Luego de un largo tiempo sin publicar nada, me animo a escribir algo. La tardanza ha sido en parte por el tiempo (o la falta de el), en parte (en gran parte) por haraganería, pero mayormente porque me gusta escribir cosas que sean de utilidad y de relevancia para los que se animen a leer este blog y me gusta esperar tener algo para escribir que valga la pena, así que espero no equivocarme con este post :D. Entrando en el tema, no se si les ha pasado esto: Tiene un su compañía un servidor de Terminal Services al que algunos usuarios del dominio accederán de manera regular para realizar algunas tareas especificas o ejecutar alguna aplicacion. Pero como los usuarios son del dominio puede ser que tengan ciertas Políticas de Grupos (GPO) aplicadas que correspondan al OU que pertenecen o al grupo, y quisieramos que cuando inicien sesion en el Terminal Services Server se le aplique una Política mas restrictiva que la que se le aplica en su computadora. Por ejemplo, digamos que un usuario del dominio se le aplica una GPO que le permite tener acceso a los discos de su computadora y a algunos items del Panel de Control, pero este usuario necesita ejecutar algunas aplicaciones accediendo remotamente a un servidor Terminal Services, pero queremos que este no pueda acceder a los discos en este servidor, que no pueda entrar al Control Panel, etc. Para esto necesitamos que se le aplique una GPO especifica pero solo cuando haga Login en el equipo especifico, en este caso el Terminal Services Server.

Para esto lo primero que tenemos que hacer es crear un OU y mover a esta el o los servidores Terminal Services en el cual aplicaremos la política, por ejemplo, la OU la podríamos llamar "Terminal_Services_Sever". En el siguiente gráfico se muestra la OU que contiene un equipo llamado "TERMINAL_SRV_01".

GPO

Una vez hemos creado nuestro OU, abriremos la consola "Group Policy Management", esta consola se utiliza para administrar las políticas de grupo del dominio, viene incluida en Windows Server 2008 pero también puede utilizarse en Windows Server 2003, pero debe descargarse aparte. Si no la tienen la pueden descargar aquí. Cuando hayamos abierto la consola Group Policy Management, nos dirigimos a la nueva OU que creamos (Terminal_Services_Server) y hacemos clic derecho encima de esta, luego seleccionamos la opción "Create a GPO in this domain, and Link it here..." como se muestra en el siguiente gráfico:

GPO

Al hacer clic en esta opción se nos pedirá un nombre para la nueva GPO, en este caso elegí el nombre "Terminal_GPO". Cuando le hayamos puesto el nombre, nos aparecerá el link de la GPO debajo de la OU que creamos, como se muestra en el siguiente gráfico. Aquí debemos hacer clic derecho ahora encima de la GPO y seleccionamos "Edit..."

GPO


Se abrirá entonces la ventana del Editor de la Política de Grupo que acabamos de crear, aquí nos dirigiremos a la seccion "Computer Configuration" luego nos moveremos a "Policies" (en Windows Server 2003 este paso no es necesario), luego a "Administrative Templates", "System" y por ultimo hacemos clic encima de "Group Policy". Aquí buscamos la directiva "User Group Policy loopback processing mode", como se muestra en el siguiente gráfico:

GPO

Hacemos doble clic encima de la directiva indicada anteriormente y seleccionamos "Enable", luego en la sección "Mode" seleccionamos "Replace":

GPO


Con esto lo que hacemos es indicarle al equipo donde se aplique, en el caso de nuestro ejemplo al servidor Terminal Service, que no aplique al usuario que se loguea la política de grupo del dominio que corresponde al usuario, sino que la reemplace con la que se indica en esta misma politica. Una vez hacemos clic en aceptar, podemos movernos en el Editor de la Política a la sección "User Configuration" y personalizar el entorno de los usuarios que se conectaran a este Terminal Services como querramos, sin preocuparnos de que esta Política se le vaya a aplicar a los usuarios en sus computadoras también. Bueno, esto ha sido todo por ahora. Espero como siempre que les haya sido de utilidad.

miércoles, 21 de abril de 2010

Instalacion y Configuracion Squid con Active Directory

En esta ocasion continuaremos con la preparacion de nuestro Web Proxy Linux con autenticación en Active Directory en el que hemos trabajado en posts anterioes. En este mostraremos la instalación y configuracion de Squid utilizando nuestro recien instalado y configurado Samba/Winbind. En esta entrada haremos una configuracion sencilla de Squid, solo configuraremos lo necesario para que permita el acceso a Internet. No configuraremos filtro de contenido, ni bloqueo de extensiones ni nada por el estilo. Simplemente se mostrara la forma de utilizar Active Directory para autenticar las solicitudes de acceso a Internet basados en la membresia de un determinado grupo del dominio.

Bueno, vamos a entrar en materia inmediatamente y vamos a instalar Squid. La version que instalaremos sera la version 3.1 y al igual como hicimos con Samba compilaremos sus fuentes, ya que tenemos que especificar algunas opciones que normalmente no se encuentran en los paquetes de instalacion.

Instalacion Squid

Bien, para descargar la versión mas reciente al momento de este post pueden hacer clic en este link o pueden acceder directamente al sitio web (http://www.squid-cache.org/). Este archivo se descomprime de la misma manera que lo hicimos con los fuentes de samba (tar -xzf). Entramos a la carpeta con los fuentes de squid y ejecutamos el comando "configure" con las siguientes opciones:

[root@centos-box squid-3.1.1]# ./configure --enable-auth-helpers="winbind,SMB" --enable-external-acl-helpers="unix_group,wbinfo_group" --enable-auth="ntlm,basic" --with-winbind-auth-challenge --with-samba-sources="ruta-a-los-fuentes-de-samba" --sysconfdir=/etc/squid

Como se puede ver en la línea anterior, estamos especificando que utilizaremos a Winbind y Samba ("SMB" va escrito en mayuscula como se muestra). Tambien es necesario indicar en esta linea la ruta a los fuentes de Samba que utilizamos para su instalacion, en la opcion "--with-samba-source". Si este comando finaliza sin presentarnos ningun error podemos seguir adelante con la instalacion ejecutando el camando "make" y luego "make install", justo como lo hicimos en la instalacion anterior de Samba:

[root@centos-box squid-3.1.1]# make
[root@centos-box squid-3.1.1]# make install

Ambos comandos tomaran unos minutos en completar, una vez hayan terminado ya tendremos Squid 3.1 instalado en nuestro equipo, podemos pasar entonces a la parte interesante: la configuracion.

Configuración

Empezaremos la configuracion creando un usuario en el sistema (en el equipo Centos) llamado "squid", el cual utilizaremos para iniciar el Squid Proxy, tambien crearemos un grupo con el mismo nombre e insertaremos al usuario creado en este:

[root@centos-box ~]# useradd squid
[root@centos-box ~]# groupaddad squid
[root@centos-box ~]# usermod squid -g squid

[root@centos-box ~]# usermod -s /bin/false squid
[root@centos-box ~]# passwd -l squid

Los 2 ultimos comandos ejecutados anteriormente lo utilizamos para impedir que alguien pueda logearse localmente al equipo utilizando esta cuenta de usuario. A continuacion crearemos una carpeta que Squid utilizara para almacenar los archivos de CACHE, y agregaremos al usuario squid como dueño de esta carpeta y tambien como dueño de la carpeta en la que se almacenaran los logs.

[root@centos-box ~]# mkdir /var/spool/squid
[root@centos-box ~]# chown squid:squid /var/spool/squid
[root@centos-box ~]# chown squid:squid /usr/local/squid/var/logs

Como utilizaremos el tipo de autenticacion NTLM a traves de Winbind, debemos darle acceso al usuario "squid" a utilizar el "pipe" winbindd_privileged. Para esto, utilizaremos los siguientes comandos:

[root@centos-box ~]# chgrp squid /var/lib/samba/winbindd_privileged
[root@centos-box ~]# chmod 750 /var/lib/samba/winbindd_privileged

Con esto, el usuario "squid" con el que correra nuestro Proxy, tendra acceso al pipe de Winbind. Ahora podemos pasar al archivo de configuracion de Squid, "/etc/squid/squid.conf". Haremos una configuracion sencilla en nuestro Proxy, donde permitiremos el acceso a Internet a los miembros del grupo de Active Directory "Internet_Users" y le denegaremos el acceso a todos los usuarios que no pertenezcan a este. Nuestro proxy escuchara en el puerto 8080 y correra bajo los privilegios del usuario "squid". Indicaremos donde se almacenara la Cache de Squid. Para eso agregaremos las siguientes lineas a nuestro archivo de configuracion:

Con la siguiente linea le indicamos a Squid en que direccion IP y puerto escuchara, en este ejemplo, la IP de nuestro Proxy es 10.0.1.71.

http_port 10.0.1.71:8080

Luego le indicamos el usuario y grupo bajo los cuales correra, aqui utilizamos el usuario y grupo que creamos anteriormente:

cache_effective_user squid
cache_effective_group squid

A continuacion indicamos la ruta donde se encuentra el directorio en el que se ubicara la cache de Squid, el tipo (ufs) y el tamaño:

cache_dir ufs /var/spool/squid/ 900 16 256

Indicaremos tambien servidor DNS que utilizara nuestro proxy (utilizaremos la ip del domain controller)

dns_nameservers 10.0.1.70

En la siguiente linea le indicamos a Squid el tipo de autenticacion que utilizara, en este caso utilizaremos NTLM


auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30

A continuacion definiremos una ACL externa llamada "wb_group" que utilizara el script "wbinfo_group" y le indicamos a Squid la ubicacion de este script. Este se utilizara para determinar la membresia de un usuario a un determinado grupo de Active Directory, en nuestro caso este grupo se llamara "Internet_Users".


external_acl_type wb_group %LOGIN /usr/local/squid/libexec/wbinfo_group.pl

Ahora crearemos una ACL llamada "grupo-internet" utilizando "wb_group" definida anteriormente. En esta  indicaremos el grupo del dominio Active Directory que tendra acceso a Internet. Cuando un usuario solicite a Squid una determinada pagina Web, Squid le solicitara su username del dominio, y junto al grupo que especificaremos en esta ACL, lo enviara como parametro al script "wbinfo_group.pl" para determinar si el usuario pertenece a dicho grupo. Si el usuario pertenece al grupo indicado, wbinfo_group.pl le devolvera a Squid una respuesta positiva y se le permitira al usuario el acceso al web site, de lo contrario se le denegara.

acl grupo-internet external wb_group internet_users

En este caso especificamos el grupo del dominio "Internet_Users", el cual ya he creado previamente en mi Domain Controller y del cual es miembro un usuario de prueba del dominio llamado "winuser". Note que en la definicion de este ACL se escribe el nombre del grupo en letras minusculas completo. Definiremos otra ACL que llamaremos "autenticacion" donde le indicaremos a Squid la autenticacion de los usuarios es requerida, esta la utilizamos para denegar el acceso a todo usuario no autenticado:

acl autorizacion proxy_auth REQUIRED

Ahora crearemos las reglas que permitiran el acceso a Internet a los usuarios en base a las ACL que hemos creado:

http_access allow grupo-internet all
http_access deny !autorizacion

Por ultimo dentro del archivo squid.conf insertaremos la siguiente linea donde especificaremos el nombre de nuestro proxy, en este caso utilizaremos SQUID-PROXY. Este nombre no tiene necesariamente que coincidir con el nombre real del equipo o con el nombre del dominio.

visible_hostname SQUID-PROXY

Luego de insertar esta linea, guardamos y cerramos en archivo. Luego ejecutamos "/usr/local/squid/sbin/squid -z", para que Squid cree los directorios necesarios para almacenar los archivos de cache, o "Swap Directories". Ahora solo nos resta iniciar nuestro Proxy, pero vamos a iniciarlo en modo "debug", de esta forma podemos ver las actividades que va realizando Squid al momento de cargar y podremos detectar rapidamente cualquier fallo en la configuracion, en algun modulo o cualquier error en los permisos de las carpetas en las cuales Squid intente escribir. Para inciarlo de este modo utilizamos el siguiente comando:

[root@centos-box ~]# /usr/local/squid/sbin/squid -NCd1

Si nuestra configuracion de Squid esta correcta, asi como los permisos en las carpetas que este utiliza, en la salida de este comando deberiamos tener algo como esto:


Para salir de este modo presionamos "CTRL+C", y para iniciar Squid en modo normal como servicio utilizamos:

[root@centos-box ~]# /usr/local/squid/sbin/squid

Podemos confirmar que nuestro proxy esta corriendo y esperando solicitudes ejecutando el comando "netstat -nat", el cual deberia devolvernos una ventana como la siguiente:



Como se puede ver en el circulo rojo, Squid esta corriendo y escuchando peticiones en el puerto 8080. Ahora podemos probar nuestro proxy desde un equipo Windows en el dominio y con Internet Explorer configurado para utilizar como proxy nuestro equipo y claro, con un usuario que pertenezca al grupo que configuramos para tener acceso a Internet, que para el caso de este ejemplo es "Internet Users".

Bueno, hasta aqui este post. Recuerden que el proposito de este post no es una hacer una configuracion normal o completa de Squid, solo especifico lo necesario para permitir el acceso a Internet a traves de Active Directory, todavia hay muchisimas cosas mas que se pueden hacer con Squid. Para una referencia de las demas opciones de Squid pueden visitar esta pagina. Espero que esta informacion les haya sido de utilidad.

martes, 2 de febrero de 2010

Instalacion de Samba en Centos y Conexion con Active Directory (Parte 2)

Hola nuevamente!

Como recordaran, en el post anterior instalamos Samba y otros paquetes y librerias necesarios para hacer que nuestro Centos participe en un dominio Active Directory, pero no hicimos ninguna configuracion en ninguno de los paquetes porque.... bueno, porque generalmente escribo de noche y me estaba cayendo del sueno. En esta ocasion haremos las configuraciones necesarias y dejaremos nuestro equipo siento parte del dominio Windows. El escenario que utilizaremos sera el siguiente:

Un dominio Active Directory llamado "TEST-LAB.COM"
Un controlador de dominio y DNS Server llamado "DC-SRV01", con la IP 10.0.1.70
Un equipo Linux (Centos) que sera parte del dominio, y utilizara la IP 10.0.1.71

La version de Windows que usare en este ejemplo es Windows Server 2003, pero se puede hacer tambien sin problemas con Windows 2000 Server. Bueno, habiendo dicho esto, podemos empezar con las configuraciones en nuestro equipo. Lo primero que debemos comprobar, y creo que no hace falta mencionarlo, es que nuestro equipo Centos tenga conectividad con el controlador de dominio, esto lo comprabamos haciendo un simple "ping" hacia el servidor. Una vez comprobamos que estamos conectados, indicamos al equipo Centos que utilice al controlador del dominio como DNS Server, para esto modificamos el archivo "/etc/resolv.conf" e incluimos la IP del servidor de dominio (10.0.1.70).

Contenido del archivo resolv.conf

Como ven, tambien incluimos el nombre del dominio local al lado de "search". Tambien modificaremos en archivo "/etc/hosts" e incluiremos el nombre del controlador del dominio y su direccion IP, esto en caso de que la resolucion de nombres por DNS falle en algun momento. Luego de modificado el archivo "hosts" debe verse de esta manera:

Contenido archivo resolv.conf

Ahora pasaremos a modificar el archivo "/etc/nsswitch.conf", en este agregaremos o editaremos (si ya estan presentes) las siguientes lineas de manera que queden de esta forma:

passwd: files winbind
shadow: files winbind
group: files winbind
protocols: files winbind
rcp: files winbind
netgroup: files winbind
hosts: files winbind dns

Lo siguiente es configurar Kerberos, para esto modificamos el archivo "/etc/krb5.conf". Si no vamos a utilizar otro Servidor Kerberos a parte de nuestro controlador de dominio, podemos elimiar todas las lineas de este archivo y dejar solo las lineas que nos interesan. El archivo luego de modificado debe quedar de esta forma:

Contenido archivo krb5.conf

Como pueden ver, en la seccion "default_realm" se especifica el nombre del domino al cual queremos pertenecer (en letras mayusculas). Mas abajo se especifica el nombre completo del controlador de dominio (FQDN) en letras minusculas. Ahora pasamos a configurar Samba. Como hicimos la configuracion de Samba compilando los fuentes, es muy posible que la carpeta "/etc/samba/" (que fue la carpeta que especificamos para guardar la configuracion) este vacia. Nos moveremos a esta carpeta y crearemos un archivo llamado "smb.conf", en este incluiremos las siguientes lineas:

[global]
security = ads
password server = 10.0.1.70
encrypt passwords = true
workgroup = test-lab
realm = TEST-LAB.COM
netbios name = Centos-Box
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind separator = +

Lo mas importante a tener en cuenta en estas lineas es que en la linea "password server" especificamos la direccion IP de nuestro controlador de dominio, en la linea "realm" insertamos el nombre del dominio tal y como lo especificamos en el archivo de configuracion de Kerberos. Y en la linea "netbios name" especificaremos el nombre con el cual queremos que nuestro equipo sea insertado al domino, este nombre no tiene que coincidir necesariamente con el nombre de nuestro equipo Centos. Ahora, lo que haremos sera iniciar Samba y Winbind, ya que como no los hemos configurado para iniciar durante la carga del sistema, deben estar desactivados. Para activarlos ejecutamos los siguientes comandos:

[localhost@root ~]# smbd start
[localhost@root ~]# nmbd start
[localhost@root ~] winbindd start


Podemos confirmar que Samba ya esta en ejecucion ejecutando el comando "netstat -nat", la salida de este comando debe mostrarnos que los puertos 445 y 139 estan en estado "LISTENNING", tambien lo comprobamos ejecutando "ps -aux", en este listado deben aparecer los servicios smbd y nmbd. Lo que sigue ahora es solicitar un "Ticket" al servidor Kerveros, que es nuestro controlador de dominio, para ejecutamos el comando "kinit" y le proporcionamos credenciales validas en el dominio, o sea, un usuario y un password, en este caso usuaremos el usuario "Administrator". Antes de solicitar el ticket, debemos asegurarnos que ambos equipos, el controlador del dominio y el equipo Centos tengan la misma hora, o por lo menos que la diferencia de hora no sobrepase los 5 minutos. Para sincronizar nuestra hora con la del controlador del dominio podemos utilizar el comando "net time":

[localhost@root ~]# net time set -I 10.0.1.70

Una vez hemos sincronizado los relojes podemos solicitar el ticket, para esto utilizamos el siguiente comando e inctroducimos el password cuando nos lo pida:

[localhost@root ~]# kinit Adminsitrator@TEST-LAB.COM

Si todo sale bien, a este punto ya tenemos nuestro ticket kerberos, podemos confirmar que ya lo tenemos con el comando "klist":

kinit

Por ultimo, vamos a ejecutar el comando "net join" para agregar nuestra maquina Centos al dominio, lo haremos utilizando nuevamente las credenciales del usuario "Administrator", al presionar "enter" se nos pedira el password de este usuario.

[localhost@root ~]# net join ads -S dc-srv01.test-lab.com -U administrator
Enter administrator's password:
Using short domain name -- TEST-LAB
Joined 'CENTOS-BOX' to realm 'test-lab.com'

Si recibimos ese mensaje, ya hemos insertado nuestro equipo al dominio Active Directory exitosamente!. Al ser parte del dominio podemos tener acceso a la lista de usuarios y grupos del dominio, podemos utilizar el comando "wb-info" para probar la conexion y para obtener la lista de usuarios y grupos, como se muestra en el siguiente grafico:

Comando wb-info

Espero que esta informacion les haya sido de provecho, en un proximo post usaremos esta membresia a Active Directory para permitir acceso a Internet a los usuarios miembros de un determinado grupo de usuarios utilizando el Web Proxy Squid.

lunes, 18 de enero de 2010

Instalacion de Samba en Centos y Conexion con Active Directory (Parte 1)

Continuando con la configuracion de nuestro equipo Centos, pasaremos ahora a instalar Samba y Winbind y configurarlo para hacernos miembros de un dominio Windows. La idea es que este equipo pueda reconocer a los usuarios creados en nuestro dominio Windows y poder autenticar usuarios contra este dominio, esto lo usaremos mas adelante para dar acceso a Internet a los usuarios de un determinado grupo del dominio usando el proxy server Squid. Para ser parte del dominio Windows (Active Directory) necesitaremos tambien instalar Kerberos y algunas librerias y headers de LDAP, para esto ejecutaremos el siguiente comando:

root@localhost ~]# yum install krb5-workstation krb5-devel openldap-devel

Ahora pasaremos a la instalación de Samba, para esto sera necesario descargar los fuentes de Samba desde este link, la version estable actual al momento en este post en la 3.4.5 y esta sera la que utilizaremos. Como veran, no instalaremos Samba desde RPM's sino que los compilaremos en nuestro sistema, de esta forma podremos agregar y cambiar algunas opciones al momento de la instalacion. Es importante tambien que guardemos los fuentes de esta instalacion, ya que seran necesarios en caso de querer desinstalar Samba en un futuro (tambien la vamos a necesitar en la instalacion de Squid), asi que haremos una carpeta en nuestro folder "home" y la llamaremos "sources" (o cualquier otro nombre que deseen) y aqui descargaremos los archivos de instalacion, para esto hacemos lo siguiente:

root@localhost ~]# mkdir sources
root@localhost ~]# cd sources
root@localhost sources]# wget www.samba.org/samba/ftp/stable/samba-3.4.5.tar.gz

Una vez hemos descargado los fuentes, utilizaremos el comando "tar" para desempaquetarlos:

root@localhost sources]# tar -xzf samba-3.4.5.tar.gz

Ya teniendo nuestros archivos de instalacion desempaquetados, entramos a la carpeta samba-3.4.5 y dentro de esta, a la carpeta source3 donde encontraremos el ejecutable "configure", al cual ya deben estar acostumbrados si han compilado programas anteriormente. Este ejecutable se encargara de revisar y confirmar que nuestro sistema tenga todo necesario para instalar Samba de acuerdo a los parametros que le especificaremos y si nuestro sistema contiene lo necesario, creara un archivo "Makefile" en base al cual se crearan los binarios de Samba. Ejecutaremos "configure" con los siguientes parametros:

root@localhost source3]# ./configure --prefix=/usr --localstatedir=/var --with-configdir=/etc/samba --with-privatedir=/etc/samba --with-fhs --with-syslog --with-utmp --with-swatdir=/usr/share/swat --with-shared-modules=idmap_rid --with-libsmbclient --with-automount --with-ads --with-acl-support --with-ldap

Si nuestro equipo pasa la prueba y termina el proceso sin nungun error, entonces estamos listos para continuar con la instalacion y crear los binarios, en caso de que nos devuelva algun error, debemos revisar que paquete o libreria hace falta en nuestro sistema o revisar las especificaciones que le pasamos al script "configure". Si todo sale bien, la salida de este script debe verse de esta manera:

Compilando Samba

Ahora ejecutaremos el comando "make", el cual se encargara de crear y compilar los binarios de Samba en base a la informacion recogida por el script "configure", este proceso puede tomarse varios minutos. Si este proceso no nos devuelve ningun error, ejecutamos entonces el comando "make install", este se encargara de crear los directorios necesarios e instalar los binarios y librerias compiladas anteriormente

root@localhost source3]# make
root@localhost source3]# make install


Una vez terminados estos procesos, tendremos instalado Samba/Winbind en nuestro equipo, ahora necesitamos configurarlo. En el proximo post veremos entonces la configuracion necesaria tanto de Samba como de Kerberos y otros archivos del sistema para lograr la conexion con Active Directory.