miércoles, 22 de agosto de 2018

Acceder por SSH con usuario de Active Directory



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

0 comentarios:

Publicar un comentario