Os muestro como integrar vuestros servidores Centos o Redhat versión 6 con un active directory con servidores Windows 2008 R2.
Comenzamos haciendo copia de seguridad de todos los ficheros que vamos a modificar:
cp /etc/krb5.conf /etc/krb5.conf.old
cp /etc/samba/smb.conf /etc/samba/smb.conf.old
cp /etc/nsswitch.conf /etc/nsswitch.conf.old
cp /etc/sssd/sssd.conf /etc/sssd/sssd.conf.old
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.old
Modificaremos el fichero de configuración de kerberos:
vi /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = ELBLOGDENEGU.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
default_tgs_enctypes = rc4-hmac aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
default_tkt_enctypes = rc4-hmac aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
permitted_enctypes = rc4-hmac aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
[realms]
ELBLOGDENEGU.COM = {
kdc = dc01.elblogdenegu.com
kdc = dc02.elblogdenegu.com
admin_server = dc01.elblogdenegu.com:749
admin_server = dc02.elblogdenegu.com:749
default_domain = elblogdenegu.com
}
[domain_realm]
elblogdenegu.com = ELBLOGDENEGU.COM
.elblogdenegu.com = ELBLOGDENEGU.COM
[appdefaults]
pam = {
debug = true
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
Hay que modificar la sección global (el fichero original tiene muchos comentarios, borrar toda la sección global y cambiarla por ésta)
vi /etc/samba/smb.conf
#================= Global Settings====================
[global]
workgroup = ELBLOGDENEGU
server string = RHEL6 Linux Server
netbios name = RHEL6
log file = /var/log/samba/log.%m
max log size = 50
security = ads
dedicated keytab file = /etc/krb5.keytab
kerberos method = system keytab
realm = elblogdenegu.com
passdb backend = tdbsam
Unimos la máquina al dominio:
net ads join osName=RHEL osVer=6 -U adminuserdomain
Nos pedirá la contraseña
Enter adminuserdomain's password:
Using short domain name -- ELBLOGDENEGU
Joined 'RHEL6' to realm 'elblogdenegu.com'
No DNS domain configured for rhel6. Unable to perform DNS Update.
DNS update failed!
Si tenéis las herramientas de administración de windows veréis la máquina en el dominio:
Se nos habrá generado una entrada krb5.keytab Podemos ver las entradas que contiene con el comando klist -ke
Keytab name: WRFILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
4 host/rhel6.elblogdenegu.com@ELBLOGDENEGU.COM (des-cbc-crc)
4 host/rhel6.elblogdenegu.com@ELBLOGDENEGU.COM (des-cbc-md5)
4 host/rhel6.elblogdenegu.com@ELBLOGDENEGU.COM (arcfour-hmac)
4 host/rhel6@ELBLOGDENEGU.COM (des-cbc-crc)
4 host/rhel6@ELBLOGDENEGU.COM (des-cbc-md5)
4 host/rhel6@ELBLOGDENEGU.COM (arcfour-hmac)
4 RHEL6$@ELBLOGDENEGU.COM (des-cbc-crc)
4 RHEL6$@ELBLOGDENEGU.COM (des-cbc-md5)
4 RHEL6$@ELBLOGDENEGU.COM (arcfour-hmac)
3 host/rhel6.elblogdenegu.com@ELBLOGDENEGU.COM (des-cbc-crc)
3 host/rhel6.elblogdenegu.com@ELBLOGDENEGU.COM (des-cbc-md5)
3 host/rhel6.elblogdenegu.com@ELBLOGDENEGU.COM (arcfour-hmac)
3 host/rhel6@ELBLOGDENEGU.COM (des-cbc-crc)
3 host/rhel6@ELBLOGDENEGU.COM (des-cbc-md5)
3 host/rhel6@ELBLOGDENEGU.COM (arcfour-hmac)
3 RHEL6$@ELBLOGDENEGU.COM (des-cbc-crc)
3 RHEL6$@ELBLOGDENEGU.COM (des-cbc-md5)
3 RHEL6$@ELBLOGDENEGU.COM (arcfour-hmac)
Hacemos una prueba de las keys de kerberos (no debería mostrar error):
kinit -k RHEL6$
Ahora deberemos editar vi /etc/nsswitch.conf y añadimos sss a passwd y group:
# To use db, put the "db" in front of "files" for entries you want to be
# looked up first in the databases
#
# Example:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#group: db files nisplus nis
passwd: files sss
shadow: files
group: files sss
Ahora editamos /etc/sssd/sssd.conf :
[sssd]
config_file_version = 2
services = nss, pam
domain = default
# SSSD will not start if you do not configure any domains.
# Add new domain configurations as [domain/<NAME>] sections, and
# then add the list of domains (in the order you want them to be
# queried) to the "domains" attribute below and uncomment it.
# domains = LDAP
domains = default
[nss]
[pam]
[domain/default]
debug_level = 5
enumerate = True
id_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://elblogdenegu.com/
ldap_search_base = dc=elblogdenegu,dc=com
ldap_id_use_start_tls = False
ldap_user_search_base = dc=elblogdenegu,dc=com
ldap_group_search_base = dc=elblogdenegu,dc=com
ldap_schema = rfc2307bis
ldap_sasl_mech = GSSAPI
ldap_force_upper_case_realm = True
ldap_krb5_keytab = /etc/krb5.keytab
ldap_sasl_authid = RHEL6$@ELBLOGDENEGU.COM
auth_provider = ldap
cache_credentials = True
krb5_server = dc01.elblogdenegu.com
krb5_server = dc02.elblogdenegu.com
krb5_realm = ELBLOGDENEGU.COM
krb5_auth_timeout = 15
ldap_user_object_class = person
ldap_user_modify_timestamp = whenChanged
ldap_user_home_directory = unixHomeDirectory
ldap_user_shell = loginShell
ldap_user_principal = userPrincipalName
ldap_user_name = sAMAccountName
ldap_user_uid_number = uidNumber
ldap_user_gid_number = gidNumber
ldap_user_home_directory = unixHomeDirectory
ldap_user_shell = loginShell
ldap_user_principal = userPrincipalName
ldap_group_object_class = group
ldap_group_modify_timestamp = whenChanged
ldap_group_object_class = group
ldap_group_name = sAMAccountName
ldap_group_gid_number = gidNumber
ldap_force_upper_case_realm = True
Reiniciamos el servicio sssd:
service sssd restart
Si os genera errores lanzar este comando:
authconfig --enableldap --enableldapauth --ldapserver=elblogdenegu.com --ldapbasedn="dc=elblogdenegu,dc=com" --update
Ahora editamos /etc/pam.d/system-auth y añadimos pam_sss.so a la última línea:
#%PAM-1.0M-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_sss.so use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_sss.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so
session required pam_mkhomedir.so umask=0022 skel=/etc/skel/
Ya nos podremos validar con nuestros usuarios de Directorio Activo y tendremos integrada la máquina en directorio.
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?
Buen día
Con esta configuración puedo compartir carpetas de mi servidor Centos
y que mis usuarios con Windows en la red tengan o no permisos logeados con el servidor de active directory?
Bueno incluyendo el Samba
Muchas gracias
Hola David,
La idea es poder usar la validación de active directory con tus servidores linux.
Para samba tendrás que configurar ciertos parámetros, y a su vez modificar los usuarios en directorio activo para que trabajen con la integración.
¿Necesitas que no les pida validación? Salu2
Buen día
Tengo una red completa que funciona con active directory
pero quiero montar un servidor de almacenamiento en CentOS
donde asigne carpetas con permisos únicos de entrada según el grupo predefinido en el active directory y configurado en el samba
ejemplo
[TREASURY]
comment = TREASURY
path = /media/Backup1/treasury
browseable = yes
guest ok = no
public = yes
writable = yes
create mask = 0777
directory mask = 0777
valid users = @MIDOMINIO\175365^grp,@MIDOMINIO\108293^grp
Muchas gracias por la ayuda
Buenas,
estoy intentando integrar con un AD un Red Hat, pero algo me falla y no se muy bien como comprobar el que. Tengo los tickets, el servidor registrado y lo unico que veo es este fallo
[sdap_get_generic_done] (0x0100): sdap_get_generic_ext_recv failed [110]: Expiró el tiempo de conexión
¿Me puedes ayudar a ver?
Gracias
Si solo quiero usar el ldap de AD no debería bastar con configurar sssd.conf?