Google Instalacion de Samba en Centos y Conexion con Active Directory (Parte 2) | EL TIPO DE INFORMATICA

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.

11 comentarios:

  1. Solo por si a alguien le sirve yo tuve este error:
    [root@proxyserver ~]# wbinfo -t
    checking the trust secret for domain WORKGROUP via RPC calls failed
    Could not check secret

    En este punto unicamente tuve que reiniciar mi equipo y funciono sin problema...

    ResponderEliminar
  2. Tambien, cuando digitan el comando kinit solito sin parametros y les sale error, deben de digitar con el parametro de su dominio y en mayusculas:
    kinit Adminsitrator@TEST-LAB.COM

    y alli ya agarra

    Martin Lugo

    ResponderEliminar
  3. Muy bien el post... Un tips: Cuando en un proxy-cache (squid) manejas, a través de autenticación con NTLM, una gran cantidad de usuarios; si no tienes configurado adecuadamente los parametros de winbind, puede ser un gran dolor de cabeza... así que les dejo el siguiente dato:

    workgroup = MIDOMINIO
    realm = MIDOMINIO.COM.VE
    security = ads
    idmap uid = 16777216-33554431
    idmap gid = 16777216-33554431
    template shell = /sbin/nologin
    winbind enum users = yes
    winbind use default domain = true
    winbind separator = +
    winbind offline logon = true
    winbind cache time = 1200

    ResponderEliminar
  4. Muchas graciassssssssss!!!!
    Este POST es perfectooooooooo!!!! Funciona 100% y una recomendacion sobre algo que me ocurrio!!!
    Los tres servicios deben de estar corriendo, tanto el smbd como el nmbd start y winbindd, Si alguno falta, no podras listar usuarios del AD.
    Ademas tuve un problema con la libreria libtalloc.so, ya que no me dejaba ejecutar el SMBD, eesto lo solucione instalando la libreria con yum install.
    Saludos.

    ResponderEliminar
  5. estimados me sale el siguiente error

    wbinfo -t
    checking the trust secret via RPC calls succeeded
    [root@localhost ~]# wbinfo -u
    Error looking up domain users

    no lista los usuarios
    ya lo reinicie y sale lo mismo ?????????????????????????????

    ResponderEliminar
  6. Tengo un problema...al intentar iniciar samba (smbd start) recibo este error....a que podria deberse?

    smbd: error while loading shared libraries: libtalloc.so.1: cannot open shared object file: No such file or directory

    ResponderEliminar
  7. Buena stardes, gracias por el post, pero tengo un pequeño problemilla....cuando intento iniciar samba (smbd start) recibo este error... a que podria deberse

    smbd: error while loading shared libraries: libtalloc.so.1: cannot open shared object file: No such file or directory

    Probe el comando yum install libtalloc.so.1 y nada me sale el siguuiente mensaje y nada, ,me sale esto

    root@localhost source3]# yum install libtalloc.so.1
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Loading mirror speeds from cached hostfile
    * base: mirror.metrocast.net
    * extras: mirror.metrocast.net
    * updates: mirror.lug.udel.edu
    Setting up Install Process
    No package libtalloc.so.1 available.
    Error: Nothing to do
    [root@localhost source3]# yum install libtalloc.so
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Loading mirror speeds from cached hostfile
    * base: mirror.metrocast.net
    * extras: mirror.metrocast.net
    * updates: mirror.lug.udel.edu
    Setting up Install Process
    No package libtalloc.so available.
    Error: Nothing to do

    ResponderEliminar
  8. Gracias por el post...

    tengo un problema al solicitar el ticket, cuando envio el comando recibo este mensaje:

    kinit: Cannot find KDC for requested realm while getting initial credentials

    Ayuda por favor, como puedo resolverlo...

    ResponderEliminar
  9. Hola, una pregunta, fue perfecto, realicé todos los pasos ok, se me creó correctamente el ticket con kinit pero como inicio sesion en mi linux con la cuenta administrator de mi PDC ? no puedo !!

    ResponderEliminar
  10. Buenas trades me aparece un error al inciar samba:

    smbd: error while loading shared libraries: libtalloc.so.1: cannot open shared object file: No such file or directory

    que puede ser?

    ResponderEliminar
  11. buenas trades me aparece un error al inciar samba

    smbd: error while loading shared libraries: libtalloc.so.1: cannot open shared object file: No such file or directory

    que puedo hacer?

    ResponderEliminar