1- En primer lugar lo que vamos a hacer es instalar desde Powershell los siguientes paquetes:
Dism.exe /online /enable-feature /featurename:adminui /all Dism.exe /online /enable-feature /featurename:nis /all Dism.exe /online /enable-feature /featurename:psync /all
2- Si quisieramos desinstalarlos lo hariamos con los siguientes comandos:
Dism.exe /online /disable-feature /featurename:adminui /all Dism.exe /online /disable-feature /featurename:nis /all Dism.exe /online /disable-feature /featurename:psync /all
3- Luego en el servidor nos vamos a «Usuarios y Equipos del Directorio Activo». No vamos a un grupo que tengramos creado por ejemplo «Especialistas» y hacemos clic en la pestaña de «Unix Atributes». En «NIS Domain» ponemos el nombre de nuestro dominio, en este caso es «example.com» y en «GID» se nos pone automaticamente en 10000 pero lo podemos modificar y ponerlo por ejemplo en 2001.
4- A continuación hacemos clic en propiedades de un usuario y luego en la pestaña «Unix Attributes» y lo dejamos de la sigueinte forma:
NIS Domain: example UID: 2001 Login Shell: /bin/bash Home Directory: /home/tecnico1 Primary group name/GID: Especialistas
5- Luego nos vamos al cliente y ejecutamos el siguiente comando, en cuya salida nos aparecera el usuario que hemos configurado anteriormente (tecnico1).
root@cliente-linux:/home/debian# ldapsearch -x -LLL -D "cn=Administrator,cn=Users,dc=example,dc=com" -W -h 10.0.0.43 -b dc=example,dc=com "sAMAccountName=tecnico1" Enter LDAP Password: dn: CN=tecnico1,OU=Especialistas,DC=example,DC=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: user cn: tecnico1 givenName: tecnico1 distinguishedName: CN=tecnico1,OU=Especialistas,DC=example,DC=com instanceType: 4 whenCreated: 20150121124532.0Z whenChanged: 20150220111554.0Z displayName: tecnico1 uSNCreated: 13000 memberOf: CN=Especialistas,OU=Especialistas,DC=example,DC=com uSNChanged: 30104 name: tecnico1 objectGUID:: oDfVRP4BwUONHjl8OQ/R1A== userAccountControl: 66048 badPwdCount: 0 codePage: 0 countryCode: 0 badPasswordTime: 0 lastLogoff: 0 lastLogon: 130674290138424938 pwdLastSet: 130663179328064991 primaryGroupID: 513 objectSid:: AQUAAAAAAAUVAAAAaFcr6jl0ynlw5sqbWgQAAA== accountExpires: 9223372036854775807 logonCount: 1 sAMAccountName: tecnico1 sAMAccountType: 805306368 userPrincipalName: tecnico1@example.com objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=example,DC=com dSCorePropagationData: 16010101000000.0Z lastLogonTimestamp: 130674290138424938 unixUserPassword: ABCD!efgh12345$67890 uid: tecnico1 msSFU30Name: tecnico1 msSFU30NisDomain: example uidNumber: 2001 gidNumber: 2001 unixHomeDirectory: /home/tecnico1 loginShell: /bin/bash # refldap://ForestDnsZones.example.com/DC=ForestDnsZones,DC=example,DC=com # refldap://DomainDnsZones.example.com/DC=DomainDnsZones,DC=example,DC=com # refldap://example.com/CN=Configuration,DC=example,DC=com root@cliente-linux:/home/debian#
6- El siguiente paso que debemos de dar es con la configuración del cliente, en primer lugar lo que debemos de hacer es editar el fichero «/etc/resolv.conf» y ponemos la IP del servidor:
domain example.com nameserver 10.0.0.45
7- Luego instalamos el siguiente paquete:
root@cliente-linux:/home/debian# apt-get --no-install-recommends install libnss-ldapd
Durante la instalación nos aparecerán pantallas de configuración que debemos de ignorar ya que lo configuraremos con el fichero «etc/nslcd.conf»:
# /etc/nslcd.conf # nslcd configuration file. See nslcd.conf(5) # for details. # The user and group nslcd should run as. uid nslcd gid nslcd # The location at which the LDAP server(s) should be reachable. uri ldap://greyjoy.example.com # The search base that will be used for all queries. base dc=example,dc=com # The LDAP protocol version to use. #ldap_version 3 # The DN to bind with for normal lookups. binddn cn=administrator,cn=Users,dc=example,dc=com bindpw asd.123 # The DN used for password modifications by root. #rootpwmoddn cn=admin,dc=example,dc=com # SSL options #ssl off #tls_reqcert never # The search scope. scope sub filter passwd (objectClass=User) filter group (objectClass=Group) map passwd homeDirectory unixHomeDirectory map passwd gecos name map group memberUid member
Y luego reiniciamos el servicio:
root@cliente-linux:/home/debian# /etc/init.d/nslcd restart hostname: Name or service not known [ ok ] Restarting LDAP connection daemon: nslcd. root@cliente-linux:/home/debian#
8- Luego debemos de configurar los ficheros «/etc/ldap/ldap.conf» y «/etc/nsswitch.con»:
Primero nos vamos al fichero «/etc/ldap/ldap.conf» descomentamos y modificamos las siguientes líneas:
BASE dc=example,dc=com URI ldap://greyjoy.example.com
y luego ediamos el fichero «/etc/nsswitch.conf» añadiendo «ldap» y dejandolo de la siguiente manera:
passwd: compat ldap group: compat ldap shadow: compat
A continuación probamos que funciona correctamente de la siguiente manera:
root@cliente-linux:/home/debian# getent passwd tecnico1 tecnico1:*:2001:2001:tecnico1:/home/tecnico1:/bin/bash root@cliente-linux:/home/debian#
9- Ahora lo que debemos de ahcer es realizar la configuración de kerberos, en primer lugar debemos de instalar el siguiente paquete:
root@cliente-linux:/home/debian# aptitude install krb5-config krb5-user
Cuando lo hayamos instalado nos vamos al fichero «/etc/krb5.conf» y modificamos lo siguiente:
[libdefaults] default_realm = EXAMPLE.COM . . . [realms] EXAMPLE.COM = { kdc = 10.0.0.43 admin_server = 10.0.0.43 }
Y comprobamos que podemos autenticarnos con kerberos con «kinit» y «klist», pero debemos de asegurarnos que la hora esta correctamente para ello lo que hacemos es sincronizar con el comando ntpdate, una vez sincronizada procemos a autenticarnos:
root@cliente-linux:/home/debian# kinit tecnico1 Password for tecnico1@EXAMPLE.COM: root@cliente-linux:/home/debian# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: tecnico1@EXAMPLE.COM Valid starting Expires Service principal 23/02/2015 11:48 23/02/2015 21:48 krbtgt/EXAMPLE.COM@EXAMPLE.COM renew until 24/02/2015 11:48 root@cliente-linux:/home/debian#
10- El siguiente paso es instalar «PAM Kerberos» con el siguiente paquete:
root@cliente-linux:/home/debian# apt-get install libpam-krb5
Luego editamos el fichero «/etc/pam.d/common-session» y lo configura para que nos cree el directorio home:
session optional pam_mkhomedir.so
Una vez hecho esto hacemos el «login» en la maquina cliente con el usuario «tecnico1» y comprobamos que tiene le home con el comando «pwd»:
root@cliente-linux:/home/debian# login cliente-linux login: tecnico1 Password: Linux cliente-linux 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u1 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Creating directory '/home/tecnico1'. tecnico1@cliente-linux:~$ pwd /home/tecnico1 tecnico1@cliente-linux:~$
Vemos que la conexión es correcta y nos conecta perfectamente.