Cápsulas de palabras

3 marzo, 2010

Añadir Linux a Active Directory y compartir carpetas

Filed under: IT Admin — Etiquetas: , , , , , — kyletgn @ 12:06

Muchas gracias al autor de este post http://www.esdebian.org/articulos/24000/unir-debian-dominio-active-directory por haber creado este gran tutorial que acto seguido voy a adaptar a la semántica de Ubuntu.

1.- Información con la que contamos

Contamos con los siguientes datos:

- Dominio: 			pruebas.local
- Nombre del Server AD: 	ad = ad.pruebas.local
- IP del Server AD: 		192.168.1.254
- Nombre del Cliente Linux: 	ubuntu
- Ip del Cliente Linux: 	192.168.1.20

NOTA: En los archivos de configuración utilizaremos estos datos por lo que usted deberá sustituirlos por los apropiados.

2.- Configurar parámetros de red

Antes de continuar asegúrese de que el equipo con Linux cuente con la siguiente configuración:

– IP del mismo rango que el Server Active Directory
– DNS utilizado por el Server Active Directory
– Debe responder el ping a ad.pruebas.local

3.- Instalar la paquetería necesaria

# sudo apt-get install samba smbclient winbind krb5-user krb5-config

4.- Resolver equipos de la red

Agregar la IP de nuestro equipo Linux y la del Server Active Directory a “/etc/hosts”:

192.168.1.20    ubuntu.pruebas.local    ubuntu
192.168.1.254   ad.pruebas.local      	ad

5.- Configurar el cliente kerberos

Para configurar el cliente kerberos agregamos/modificamos las siguientes lineas a “/etc/krb5.conf”:

[libdefaults]
default_realm = PRUEBAS.LOCAL
clockskew = 300

[realms]
PRUEBAS.LOCAL = {
kdc = 192.168.1.254
default_domain = pruebas.local
admin_server = 192.168.1.254
}
pruebas.local = {
kdc = 192.168.1.254
default_domain = pruebas.local
admin_server = 192.168.1.254
}
pruebas = {
kdc = 192.168.1.254
default_domain = pruebas
admin_server = 192.168.1.254
}

[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON

[domain_realm]
.pruebas = pruebas
.pruebas.local = PRUEBAS.LOCAL

[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
retain_after_close = false
minimum_uid = 0
try_first_pass = true
}

6.- Crear tickets Kerberos

Para crear los tickets kerberos ejecutamos el siguiente comando:

# sudo kinit administrador@pruebas.local

Nos pedirá el password de la cuenta administrador del dominio. Puede utilizarse cualquier cuenta con permisos administrativos en el dominio.

7.- Configurar samba

Editamos “/etc/samba/smb.conf” quedando algo parecido a lo siguiente:

[global]
security = ADS
netbios name = ubuntu
realm = PRUEBAS.LOCAL
password server = ad.pruebas.local
workgroup = pruebas
log level = 1
syslog = 0
idmap uid = 10000-29999
idmap gid = 10000-29999
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
domain master = no
server string = linux como cliente de AD
encrypt passwords = yes

##compartir el home del usuario solo para él cuando se encuentre en otro equipo de la red
[homes]
comment = Home Directories
valid users = %S
browseable = No
read only = No
inherit acls = Yes
[profiles]
comment = Network Profiles Service
path = %H
read only = No
store dos attributes = Yes
create mask = 0600
directory mask = 0700
##compartir una carpeta para todos los usuarios
[users]
comment = All users
path = /alguna/carpeta
read only = No
inherit acls = Yes
veto files = /aquota.user/groups/shares/
##compartir carpeta solo para el usuario spruebas
[UnUsuario]
comment = prueba con usuario del dominio
inherit acls = Yes
path = /ruta/de/alguna/carpeta/
read only = No
available = Yes
browseable = Yes
valid users = pruebas+spruebas

8.- Reiniciamos samba:

# sudo testparm
# sudo /etc/init.d/samba restart

9.- Agregar Linux al dominio:

# sudo net ads join -S ad.pruebas.local  -U administrador

Nos deberá mostrar un mensaje como el siguiente:

Using short domain name -- pruebas
Joined 'UBUNTU' to realm 'PRUEBAS.LOCAL'

Si nos llega a mostrar un error como el siguiente:

Administrador's password:
[2007/08/25 16:58:33, 0] libsmb/cliconnect.c:cli_session_setup_spnego(785)
Kinit failed: Clock skew too great
Failed to join domain!

El problema puede ser que la hora del equipo con Linux no este configurada correctamente. Kerberos es muy estricto con la hora. Para solucionarlo, corregimos la hora manualmente o ejecutamos el siguiente comando:

# ntpdate pool.ntp.org

Después de hacer esto ya se debería de poder unir al dominio.

10.- Resolver nombres de usuarios y grupos de dominio

Editar “/etc/nsswitch.conf” y modificar las siguientes lineas dejándolas así:

passwd:         files winbind o bien compat winbind
group:          files winbind o bien compat winbind
shadow:         files winbind o bien compat winbind
hosts:          files dns winbind

Gracias a las lineas anteriores los usuarios y grupos del dominio pueden ser resueltos.

11.- Reiniciamos winbind:

# sudo /etc/init.d/winbind restart

12.0- Hacer tests para ver si todo salio bien

12.1.- Verificar la integración del dominio:

– “sudo net rpc testjoin” muestra si esta correctamente integrada al dominio:

Join to 'pruebas' is OK

– “sudo net ads info” muestra información del dominio:

LDAP server: 192.168.1.254
LDAP server name: ad.pruebas.local
Realm: PRUEBAS.LOCAL
Bind Path: dc=pruebas,dc=LOCAL
LDAP port: 389
Server time: dom, 26 ago 2007 14:57:04 MDT
KDC server: 192.168.1.254
Server time offset: 11

– “sudo net rpc info -U Usuario_de_dominio” muestra el dominio al que pertenece, numero de usuarios, grupos, etc:

Domain Name: pruebas
Domain SID: x-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx
Sequence number: xx
Num users: xx
Num domain groups: xx
Num local groups: xx

12.2.- Verificar que winbind este funcionando:

- "sudo wbinfo -u" lista usuarios del dominio.
- "sudo wbinfo -g" lista grupos del dominio.
- "sudo getent passwd" muestra usuarios locales y del dominio.
- "sudo getent group" muestra grupos locales y del dominio.
- "sudo -U usuario-de-dominio -s" nos convertimos en usuario-de-dominio.

Para este último comando no hace falta poner ningun prefijo ni sufijo de dominio, tan solo el alias de usuario
Si todo lo anterior funciona vamos por buen camino.

13.- Configurar la autenticación

Para configurar el acceso a usuarios del dominio a nuestro Linux mediante el entorno gráfico hay que configurar pam. Para ello editamos los siguientes archivos y agregamos/modificamos las siguientes lineas:

/etc/pam.d/common-account
account sufficient      pam_winbind.so
account required        pam_unix.so try_first_pass
/etc/pam.d/common-auth
auth    sufficient      pam_winbind.so
auth    required        pam_unix.so nullok_secure try_first_pass
/etc/pam.d/common-password
password   sufficient   pam_winbind.so
password   required   	pam_unix.so nullok obscure min=4 max=8 md5 try_first_pass
/etc/pam.d/common-session
session required 	pam_mkhomedir.so skel=/etc/skel/ umask=0022
session sufficient      pam_winbind.so
session required        pam_unix.so try_first_pass

El modulo “pam_winbind.so” le indica a pam que los usuarios y grupos los obtenga mediante winbind. El modulo “pam_mkhomedir.so” nos crea el directorio home del usuario en caso de no existir.

14.- Creamos el directorio “/home/PRUEBAS” (Nombre del dominio en MAYÚSCULA) que es donde tendrán sus home los usuarios:

# mkdir /home/PRUEBAS

15.- Usuarios de Active Directory administrando el servidor

Para realizar esto, yo he optado por crear un grupo en el dominio llamado LinuxAdmins donde añadir a quien deseemos que tenga permisos de administrador y añadir ese grupo al fichero /etc/sudoers

%LinuxAdmins ALL=(ALL) ALL
Anuncios

6 comentarios »

  1. Fuente?

    Seria bueno que colocaras la fuente de este Post…

    Por que estoy seguro que lo copiastes de algun lado 🙂

    Comentario por Andres — 25 mayo, 2010 @ 21:53

  2. Creo que lo he puesto en el comienzo del post.

    “Muchas gracias al autor de este post http://www.esdebian.org/articulos/24000/unir-debian-dominio-active-directory por haber creado este gran tutorial que acto seguido voy a adaptar a la semántica de Ubuntu”

    Gracias por tu aporte ^L^

    Comentario por kyletgn — 26 mayo, 2010 @ 10:42

  3. Buenas he probado esta configuración y resulta que al reiniciar el cliente-ubuntu no me autentica ni mi usuario, ni como root por la terminal tty ni como ninguno de mis usuarios del dominio.

    Explico lo que intento hacer para entendernos: He montado un dominio con windows 2008 y como no tengo mucha experiencia con samba, queria solamente unir un ubuntu a un dominio de Active Directory para usar el ubuntu como equipo cliente para usuarios del dominio. He probado esta configuración del samba y no me autentica ningun usuario: ni del dominio, ni locales del ubuntu ni ná.

    ¿alguien me puede ayudar?

    Saludos,
    Savio

    Comentario por Savio — 31 julio, 2011 @ 13:29

    • Hola compañero

      Que versión de ubuntu/samba usas? esto lo tengo probado y funcionando en ubuntu 8.04 y 10.04.

      Dime algo y te sigo ayudando, puedes encontrarme en twitter con el nick kylebofh

      Comentario por kyletgn — 1 agosto, 2011 @ 13:33

  4. Buenas, estoy usando la version 11.04 natty narwhall de ubuntu y el samba que viene por defecto, el cual para levantar el servicio hay que llamar al daemon smbd. Lo que intento es que autentique usuarios de Active Directory en ubuntu, pero no funka, ¿me podeis echar un cable? ¿que parametros estan mal o que no se debe cambiar en /etc? Tengo la impresion que es cosa del PAM, ya que ni siquiera me deja autenticar mis usuarios locales de ubuntu :S

    Comentario por Savio — 13 agosto, 2011 @ 11:40

    • Deberías revisas la configuración de /etc/nsswitch.conf, para eso, como no te deja hacer login en el sistema recomiendo arrancar del LiveCD de ubuntu, montar el disco del ordenador que te falla y asegurarte que nsswitch.conf tiene en las líneas passwd, group y shadow los parámetros compat winbind en ese orden estrictamente.

      Dime algo si no te funciona.

      Comentario por kyletgn — 16 agosto, 2011 @ 11:47


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: