Integración AD con Samba y Winbind

Para muchos de los que desgraciadamente estamos obligados a trabajar con windows, la posibilidad de integración entre los dos sistemas windows/GnuLinux es vital para poder poco a poco ir eliminando servidores windows de la organización y substituirlos por flamantes servidor GnuLinux.

Para ello Samba/Winbind una excelente opción. El siguiente ejemplo usa como sistemas CentOs 6.5 pero es fácilmente exportable a cualquier distribución.

INSTALACIÓN BASE – Instalamos un entorno Gnu/Linux CentOs 6.5. – Particionamos el sistema como deseemos y habilitamos en la instalación de paquetes servidor básico. – Realizamos un yum update para actualizar los paquetes

INSTALACION Y CONFIGURACION DE SAMBA – Instalamos el paquete samba ya que los paquetes adicionales ya vienen por defecto

yum install samba
  • Comprobamos que el servicio sbm este correctamente iniciado service smb status si no está iniciado lo iniciamos service smb start
  • Configuramos samba como un demonio para que se inicie el arrancar chkconfig smb on

    CONFIGURACION Y SINCRONIZACION NTP

Puesto que vamos a validar contra el AD de windows es necesario que nos aseguremos que la fecha y hora esta perfectamente sincronizada. – Editamos el fichero de configuración ntp /etc/ntp.conf y añadimos la ip del servidor de AD que lleva el servicio NTP xxx.xxx.xxx.xxx – Paramos y iniciamos el servicio ntpd para que los cambios se apliquen service ntpd stop service ntpd start – Configuramos ntp como un servicio para que se inicie en el arranque chkconfig ntpd on

CONFIGURACION DNS

  • Editamos el fichero de configuración /etc/resolv.conf y añadimos las ips de nuestros servidores dns así como el dominio de búsqueda

CONFIGURACION WINBIND

Configuramos todo desde la utilidad authconfig-tui de la siguiente manera

winbind_conf_1

winbind_conf_2

  • Una vez realizados estos pasos, pulsamos en Join Domain y introducimos un usuario y contraseña valido para unir el equipo al dominio.
  • Si nos da algún error podemos simplemente aceptar los cambios con OK y unirnos al dominio con el siguiente comando:

     /usr/bin/net join -w DOMINIO.local -S CONTROLADORDOMINIO -U usuariodedominio
    

Si nos diera un error del tipo » No DNS domain configured for centos. Unable to perform DNS Update» tendríamos que crear una entrada tipo A en el DNS del dominio.

Comprobamos que estamos añadimos al dominio correctamente con los siguientes comandos Testear la conexion

   net ads testjoin

Información del dominio

   net ads info

Listar usuarios de dominio

   wbinfo --domain-users

CONFIGURACION DE SAMBA

Editamos el fichero de configuración de samba /etc/smb.conf que tiene que quedar como el siguiente ejemplo:

[global]
#--authconfig--start-line--

# Generated by authconfig on 2016/04/13 13:21:21
# DO NOT EDIT THIS SECTION (delimited by --start-line--/--end-line--)
# Any modification may be deleted or altered by authconfig in future

   workgroup = DOMINIO
   password server = CONTROLADORDOMINIO
   realm = DOMINIO.LOCAL
   security = domain
   idmap config * : range = 16777216-33554431
   template shell = /bin/bash
   template homedir =/home/%D/%U
   winbind use default domain = true
   winbind offline logon = false

#--authconfig--end-line--

 [recursocompartido] comment=Directorio de intercambio
 path= /recursocompartido/ 
 valid users = "@DOMINIO\grupowindows"
 writable=yes 
 read only=no 
 force group = "@DOMINIO\grupowindows"
 force create mode = 000
 create mask = 770 
 directory mask = 770 
 force directory mode = 000
 access based share enum = yes
 hide unreadable = yes

Con esta configuración crearemos un recurso compartido al que solo podrán acceder los usuarios que estén dentro del grupowindows que hemos indicado dándoles permisos totales sobre los ficheros R/W y permitiendo leer a otros. Todos los demás ajustes y las mascaras de permisos las tendremos que ir agregando según nuestras necesidades.

CREACION DE RECURSOS

mkdir -p /recurso/ chmod 770 /recurso/ Permiso que otorga todo el control al propietario/grupo y se lo quita a todos los demás chgrp «grupo windows»

CONFIGURAR NSSWITCH/WINBIND – Editamos el archivo /etc/nsswitch.conf de la siguiente manera y cambiamos todas las referencias files por compat para que quede de la siguiente manera:

nsswitch_conf

CAMBIAR AUTENTICACION PAM

Si no queremos que todos los usuarios de dominio tengan acceso a la shell podremos restringir el acceso por SID añadiremos el SID de nuestro grupo en el fichero /etc/security/pam_winbind.conf para permitir el login en la shell solo a un grupo en particular, como se puede ver en la siguiente imagen:

podemos sacar el SID del grupo con el comando wbinfo -n grupo

SID

De esta manera tendremos integrados nuestros servidores Gnu/Linux con validación en el dominio windows y el caballo de troya a las puertas del palacio ¿o es al revés?

Happy Hacking ;)

Compartir

3 Comentarios

  1. Por añadir un punto extra: resulta que a veces… la relación de confianza entre el AD y el Winbind se jode. Se puede comprobar con «wbinfo -t» y si te responde RPC… es que la autenticación no está funcionando.

    Buen artículo para administradores Puppet :P

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax