Herramientas de usuario

Herramientas del sitio


notas:openldap

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
notas:openldap [2010/11/05 17:42] cayunotas:openldap [2015/04/08 19:36] (actual) – [Datos iniciales] cayu
Línea 19: Línea 19:
 cualquier tipo de sistema de base de datos, como puede ser los archivos locales (/etc/passwd y / cualquier tipo de sistema de base de datos, como puede ser los archivos locales (/etc/passwd y /
 etc/group) o desde servidores como LDAP, Mysql, Windows.  etc/group) o desde servidores como LDAP, Mysql, Windows. 
 +
 +
 +{{ :notas:diagrama_ldap_radius.png }}
 +
 +En este caso, para mantener centralizada toda la información de autenticación, se utilizo LDAP, el
 +cual fue instalado en los equipos que al momento de la implementación cumplan la función de
 +servidor **Radius**. **LDAP** permite que la información sea accedida desde cualquier lugar a travez de la red, es rápido para realizar búsquedas y tiene una opción de replicación de datos para obtener
 +alta disponibilidad. Radius podía ser utilizado solamente como sistema de autenticación pero no
 +provee la funcionalidad de guardar información de las cuentas de usuario que Linux necesita para
 +efectuar el login. En los servidores que usan esta autenticación se instalo el paquete de Redhat
 +llamado **nss_ldap**, el cual provee los módulos de **PAM** y **NSS** necesarios para integrarse con
 +**LDAP**. Ambos utilizan un archivo de configuración en común (/etc/ldap.conf).
 +En el caso de la replicación y alta disponibilidad, el esquema es del tipo master-slave, donde
 +todas las modificaciones se realizan sobre el master y se propagan al slave (el cual es solo para
 +lectura de datos no para modificación). La alta disponibilidad se logra configurando dos o mas
 +servidores en el archivo de configuración /etc/ldap.conf, resolviendo automáticamente los
 +módulos de **NSS** y **PAM** la conexión con uno u otro equipo. 
 +La configuración del servicio **Radius** se modifico para que la //autenticación se realizara a travez de// **PAM** y //no usando los archivos locales// como estaba configurada anteriormente. Con esto se logra una integración total entre la autenticación de los router y los servidores Linux.
  
  
Línea 44: Línea 62:
 Una vez hecho esto tendremos lista nuestra instalación para poder correr. Una vez hecho esto tendremos lista nuestra instalación para poder correr.
  
 +==== Datos iniciales ====
 +=== Organización ===
 +<code>
 +dn: dc=cayu,dc=com,dc=ar
 +objectClass: top
 +objectClass: dcObject
 +objectClass: organization
 +o: cayu
 +dc: cayu
 +structuralObjectClass: organization
 +</code>
 +=== Usuario administrador ===
 +<code>
 +dn: cn=admin,dc=cayu,dc=com,dc=ar
 +objectClass: simpleSecurityObject
 +objectClass: organizationalRole
 +cn: admin
 +description: LDAP administrator
 +userPassword:: e1NTSEF9U1pIeTBlSG9vdGFlVnJWNVNrc0pDM3k4STNRdEordFU=
 +structuralObjectClass: organizationalRole
 +</code>
 +=== Contenedor de Grupos ===
 +<code>
 +dn: ou=groups,dc=cayu,dc=com,dc=ar
 +objectclass:organizationalunit
 +ou: groups
 +description: Grupos
 +</code>
 +== Grupos ==
 +<code>
 +dn: cn=users-admin,ou=groups,dc=cayu,dc=com,dc=ar
 +objectClass: posixGroup
 +cn: users-write
 +gidNumber: 10001
 +</code>
 +<code>
 +dn: cn=users-read,ou=groups,dc=cayu,dc=com,dc=ar
 +objectClass: posixGroup
 +cn: users-read
 +gidNumber: 10002
 +</code>
 +=== Contenedor de Usuarios ===
 +<code>
 +dn: ou=users,dc=cayu,dc=com,dc=ar
 +objectclass:organizationalunit
 +ou: users
 +description: Usuarios
 +</code>
 +== Usuarios ==
 +<code>
 +dn: uid=linux-admin,ou=users,dc=cayu,dc=com,dc=ar
 +objectClass: top
 +objectClass: account
 +objectClass: posixAccount
 +objectClass: shadowAccount
 +cn: switch-write
 +uid: switch-write
 +uidNumber: 16001
 +gidNumber: 10001
 +homeDirectory: /home/linux-admin
 +loginShell: /bin/bash
 +gecos: adam
 +userPassword: {crypt}x
 +shadowLastChange: 0
 +shadowMax: 0
 +shadowWarning: 0
 +</code>
 +<code>
 +dn: uid=linux-user,ou=users,dc=cayu,dc=com,dc=ar
 +objectClass: top
 +objectClass: account
 +objectClass: posixAccount
 +objectClass: shadowAccount
 +cn: switch-read
 +uid: switch-read
 +uidNumber: 16002
 +gidNumber: 10002
 +homeDirectory: /home/linux-user
 +loginShell: /bin/bash
 +gecos: adam
 +userPassword: {crypt}x
 +shadowLastChange: 0
 +shadowMax: 0
 +shadowWarning: 0
 +</code>
 +
 +=== Agregar usuarios a grupo ===
 +<code>
 +dn: cn=users-write,ou=groups,dc=cayu,dc=com,dc=ar
 +changetype: modify
 +add: memberUid
 +memberUid: linux-admin
 +</code>
 +<code>
 +dn: cn=users-read,ou=groups,dc=cayu,dc=com,dc=ar
 +changetype: modify
 +add: memberUid
 +memberUid: linux-user
 +</code>
 ===== Replicación ===== ===== Replicación =====
  
Línea 287: Línea 404:
  
 ===== En los clientes ===== ===== En los clientes =====
 +
 +==== Configuracion servidor LDAP con políticas ====
  
 **/etc/pam.d/system-auth** **/etc/pam.d/system-auth**
Línea 366: Línea 485:
 password   include system-auth password   include system-auth
 session    include system-auth session    include system-auth
 +</code>
 +
 +
 +==== Configuracion servidor LDAP sin políticas ====
 +
 +
 +
 +=== Configuracion PAM ===
 +
 +**PAM** **P**luggable **A**uthentication **M**odules. PAM es un sistema de autenticación que controla el acceso a diferentes recursos.
 +
 +== /etc/nsswitch.conf ==
 +
 +<code perl>
 +passwd:     files ldap
 +shadow:     files ldap
 +group:      files ldap
 +hosts:      files dns
 +bootparams: nisplus [NOTFOUND=return] files
 +ethers:     files
 +netmasks:   files
 +networks:   files
 +protocols:  files
 +rpc:        files
 +services:   files
 +
 +netgroup:   files
 +
 +publickey:  nisplus
 +
 +automount:  files
 +aliases:    files nisplus
 +</code>
 +
 +== /etc/pam.d/system-auth ==
 +
 +<code perl>
 +auth      required      /lib/security/$ISA/pam_env.so
 +auth      sufficient    /lib/security/$ISA/pam_ldap.so
 +auth      sufficient    /lib/security/$ISA/pam_unix.so likeauth nullok use_first_pass
 +auth      required      /lib/security/$ISA/pam_permit.so
 +auth      required      /lib/security/$ISA/pam_deny.so
 +account   sufficient    /lib/security/$ISA/pam_ldap.so 
 +account   required      /lib/security/$ISA/pam_unix.so
 +password  required      /lib/security/$ISA/pam_cracklib.so retry=3 type=
 +password  sufficient    /lib/security/$ISA/pam_ldap.so debug use_first_pass
 +password  sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow use_first_pass
 +password  required      /lib/security/$ISA/pam_deny.so
 +session   required      /lib/security/$ISA/pam_limits.so
 +session   required      /lib/security/$ISA/pam_unix.so
 +session   optional      /lib/security/$ISA/pam_mkhomedir.so
 +</code>
 +
 +=== Radius ===
 +
 +**RADIUS** (acrónimo en inglés de **R**emote **A**uthentication **D**ial-In **U**ser **S**erver). Es un protocolo de autenticación y autorización para aplicaciones de acceso a la red o movilidad IP. Utiliza el puerto 1813 UDP para establecer sus conexiones.
 +
 +
 +
 +//Cuando se realiza la conexión con un ISP mediante módem, DSL, cablemódem, Ethernet o Wi-Fi, se envía una información que generalmente es un nombre de usuario y una contraseña. Esta información se transfiere a un dispositivo NAS (Servidor de Acceso a la Red) sobre el protocolo PPP, quien redirige la petición a un servidor RADIUS sobre el protocolo RADIUS. El servidor RADIUS comprueba que la información es correcta utilizando esquemas de autentificación como PAP, CHAP o EAP. Si es aceptado, el servidor autorizará el acceso al sistema del ISP y le asigna los recursos de red como una dirección IP, y otros parámetros como L2TP, etc.//
 +
 +
 +
 +
 +Configuracion de autenticacion, con **PAM** previamente configurado contra LDAP
 +
 +== /etc/raddb/users ==
 +
 +
 +<code python>
 +DEFAULT Auth-Type := Pam, Pam-Auth := radiusd,  Group == "radius-write"
 +        Service-Type = Login-User,
 +        Cisco-AVPair = "shell:priv-lvl=15",
 +        Fall-Through = 0
 +DEFAULT Auth-Type := Pam, Pam-Auth := radiusd, Group == "radius-lectura"
 +        Service-Type = Login-User,
 +        Cisco-AVPair = "shell:priv-lvl=5",
 +        Fall-Through = 0
 +DEFAULT Auth-Type = LDAP
 +        Fall-Through = 1
 +DEFAULT Ldap-Group == "ou=users,dc=pan-energy"
 +        Fall-Through = no
 </code> </code>
  
Línea 858: Línea 1059:
  
 {{:notas:cambia_password.tgz|}} {{:notas:cambia_password.tgz|}}
 +
 +==== SUDO ====
 +
 +La confiuración de SUDO almacenada dentro de LDAP la podemos encontrar en el archivo README.LDAP
 +
 +
 +Igualmente SUDO nos tomara la configuación actual para obtener los grupos, de los dato que obtiene del nss, asi que podemos configurar nuestro grupo ldap para ser tomado por el sudoers de esta forma.
 +
 +
 +La sintaxis es la misma que para cualquier sudoers
 +<code>
 +Cmnd_Alias     PASSWDROOT = /usr/bin/passwd root
 +Cmnd_Alias     USER_ADD   = /usr/sbin/useradd
 +Cmnd_Alias     PASSWDUSER = /usr/bin/passwd
 +Cmnd_Alias     USER_DEL   = /usr/sbin/userdel
 +
 +administrador ALL=(ALL) ALL
 +%Administradores ALL = NOPASSWD: PASSWDROOT, USER_ADD, PASSWDUSER, USER_DEL
 +</code>
 +
 +
 +
  
 ==== Referencias ==== ==== Referencias ====
notas/openldap.1288978929.txt.gz · Última modificación: 2010/11/05 17:42 por cayu