Cómo acceder a un sistema operativo Linux vía SSH con un usuario y contraseña de una cuenta de directorio activo (Active Directory). Probado en SUSE Linux Enterprise Server.

Si queremos acceder a una máquina Linux vía SSH usando un usuario y contraseña de una cuenta de directorio activo (Active Directory), podemos hacerlo de la siguiente forma en SUSE Linux Enterprise.
Instalamos samba, winbind y kerberos, con todos sus paquetes:
HOST# zypper install krb5* samba*
A continuación, debemos editar varios archivos de configuración. En cada uno de ellos, cambiaremos los valores DOMINIO y DOMINIO.LOCAL por el nombre de dominio de nuestra empresa.
Empezamos por el archivo de configuración de samba. Reemplazamos su contenido:
HOST# vi /etc/samba/smb.conf
[global]
workgroup = DOMINIO
idmap gid = 10000-20000
idmap uid = 10000-20000
kerberos method = secrets and keytab
realm = DOMINIO.LOCAL
security = ADS
template homedir = /home/%D/%U
template shell = /bin/bash
winbind offline logon = yes
winbind refresh tickets = yes
winbind use default domain = yes
NOTA: la última línea, "winbind use default domain = yes", hace que nos podamos logear con el usuario de dominio directamente, sin tener que usar "DOMINIO/usuario" como nombre de usuario de Linux.
Editamos el archivo de configuración de kerberos y lo reemplazamos:
HOST# vi /etc/krb5.conf
[libdefaults]
default_realm = DOMINIO.LOCAL
clockskew = 300
[realms]
DOMINIO.LOCAL = {
kdc = dc1.dominio.local
default_domain = DOMINIO.LOCAL
admin_server = dc1.dominio.local
}
[domain_realm]
.dominio.local = DOMINIO.LOCAL
[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
minimum_uid = 1
}
Editamos el archivo de configuración winbind de PAM y lo reemplazamos:
HOST# vi /etc/security/pam_winbind.conf
[global]
cached_login = yes
krb5_auth = yes
krb5_ccache_type = FILE
Editamos nsswitch.conf y añadimos compatibilidad con winbind en estos dos parámetros:
HOST# vi /etc/nsswitch.conf
passwd: compat winbind
group: compat winbind
Debemos asegurarnos de tener configurado un servidor de consulta DNS que tenga acceso al dominio:
HOST# cat /etc/resolv.conf
nameserver 192.168.110.4
nameserver 192.168.110.5
HOST# ping dominio.local
PING dominio.local (192.168.110.4) 56(84) bytes of data.
64 bytes from dc1.dominio.local (192.168.110.4): icmp_seq=1 ttl=128 time=0.1ms
64 bytes from dc1.dominio.local (192.168.110.4): icmp_seq=2 ttl=128 time=0.2ms
64 bytes from dc1.dominio.local (192.168.110.4): icmp_seq=3 ttl=128 time=0.2ms
64 bytes from dc1.dominio.local (192.168.110.4): icmp_seq=4 ttl=128 time=0.2ms
^C
--- dominio.local ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3049ms
rtt min/avg/max/mdev = 0.161/0.202/0.231/0.031 ms
Unimos la máquina al dominio:
HOST# net ads join -U Administrador%Password
Using short domain name -- DOMINIO
Joined 'HOST' to dns domain 'dominio.local'
Activamos winbind como login source en PAM:
HOST# pam-config --add --winbind
Activamos la creación automática de carpetas /home/DOMINIO/usuario para que los usuarios puedan entrar al sistema (sin carpeta home no pueden acceder por SSH):
HOST# pam-config -a --mkhomedir
Arrancamos samba y winbind:
HOST# systemctl start smb
HOST# systemctl start winbind
Hacemos que sean persistentes a resets de la máquina:
HOST# systemctl enable smb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
HOST# systemctl enable winbind
Created symlink /etc/systemd/system/multi-user.target.wants/winbind.service → /usr/lib/systemd/system/winbind.service.
Limpiamos la cache de login. De esta manera, los usuarios de dominio ya podrán acceder vía SSH sin necesidad de reiniciar la máquina para aplicar cambios:
HOST# systemctl stop nscd
HOST# nscd -i passwd
HOST# nscd -i group
HOST# systemctl start nscd
Por último, elegimos qué usuarios del dominio podrán acceder vía SSH al servidor añadiéndolos manualmente al archivo de configuración de SSH (sino, todos los usuarios del dominio tienen acceso):
HOST# vi /etc/ssh/sshd_config
AllowUsers root blai
NOTA: poner aquí también todos los usuarios locales - como root - a los que queramos seguir permitiendo acceder al servidor vía SSH. Los usuarios deben estar separados por espacios.
Por último, reiniciamos el daemon de sshd para aplicar los cambios:
HOST# service sshd restart
A partir de ahora, ya podemos acceder al servidor que acabamos de configurar usando nuestro nombre de usuario de dominio y su correspondiente password.
0 comentarios:
Publicar un comentario