= LPIC2 2021 Sesión 13 (2021-03-16)
== Documentación relacionada:
* Manual Certificacion LPIC-2.pdf, pag XX
* Material Practicas LPIC-2/LPIC-202/
* Presentaciones/2020/202/
* gdrive:%%//%%
== Clase
=== PAM
* DOC: Material Practicas LPIC-2/LPIC-202/6-Network Client Management/Modulos de autenticacion con conexion (PAM)/Presentacion PAM.pdf
* mucha atención con los cambios. Los cambios se aplican directamente!
* **/etc/pam.d/**
* estructura de la línea:
* tipo:
* auth (autenticación): Autentica al usuario mediante un método y le proporciona los privilegios.
* account (verificación): Comprueba si el usuario tiene permiso para utilizar el servicio o si el servicio esta permitido (control horario, por ejemplo).
* password (actualización): Actualiza el mecanismo de autenticación.
* session (sesión): Acciones que deben ejecutarse antes y/o después del acceso del usuario.
* control: como actua PAM ante un fallo: ignorar, terminar ejecución, etc...
* palabras (simple o histórica):
* requisite: Se envía fallo sin ejecutar otros módulos.
* required: Se enviará fallo, ejecutando previamente los otros módulos.
* sufficient: Se enviará correcto si no existe fallo previo.
* optional: Su respuesta solo se usa si no existe otro módulo de este servicio y tipo.
* acciones (manera nueva):
* [valor1=accion1 valor2=accion2]
* camino al módulo:
* si empieza por **/** es path absoluto
* si no, bajo **/lib/security**
* argumentos
* el orden de las líneas importa
* módulos:
* pam_cracklib
* pam_deny
* pam_env
* pam_limits
* pam_listfile
* ...
* módulo keylogger: pam_tty_audit
* ''aureport --tty''
* DOC: Configurar Snoopy Logger.pdf
==== Laboratorio
* DOC: 1-Laboratorio PAM Gestión de cuentas de usuario.pdf
* ...
* ''yum install vlock''
* permitir solo a los miembros de **wheel** hacer **su -**
* /etc/pam.d/su
* descomentar líneas 4 y 6:
* auth sufficient pam_wheel.so trust use_uid
* auth required pam_wheel.so use_uid
* securizar sudo (en centos):
* ''visudo'' -> comentar **%wheel ALL=(ALL) ALL**
* técnicas de sudo
* DOC: Configuración y uso de sudo.pdf
* **NOEXEC:** limita la salida al shell de ciertos programas: vi,vim,cat,less
* peligro de saltar a root desde una cuenta con sudo (aunque sea limitada)
* **Defaults log_output**: reproducción sesiones sudo -> ''sudoreplay''
* DOC: Clase tareas programadas-sudo-sudoreplay.txt
* DOC: 2-Laboratorios PAM.pdf
* erratas: pag.7 **Wk** es para WORKING days
* erratas: pag.7 **Wd** espara WEEKEND days
* erratas: algunos ejemplos usan : y deberían ser ;
* pam_time
* /etc/pam.d/sshd
* /etc/security/time.conf
* /var/log/secure o /var/log/oauth
* DOC: Configuracion time para pam.txt
=== LDAP
* DOC: pag. 183
* /etc/nsswitch.conf
* passwd: files sss (primero mira en el fichero correspondiente, después en el sss -> ldap)
* DOC: Material Practicas LPIC-2/LPIC-202/3-File Sharing/3-OpenLDAP/
==== essencials LDAP
* object class: definición de atributos de la clase
* ou = Organization Unit
* dn (distinguised name): ruta para identificar un objeto
* LDIF: LDAP Data Interchange Format
* ...
==== Laboratorio
* DOC: Laboratorio Configure LDAP Server Orion.pdf
* SOFT: LdapAdminExe-w64-1.8.3.zip
* alternativa linux -> LDAP Browser/Editor v2.8.2:
* [[https://superuser.com/questions/217487/the-best-ldap-browser-in-linux]]
* [[https://community.microfocus.com/t5/Identity-Manager-Tips/Jarek-Gawor-s-excellent-LDAP-Browser-Editor-v2-8-2/ta-p/1771772]]
* recomendaciones Berto:
* server: Fedora 389 directory server : servidor LDAP recomendado
* proyecto proviniente de Netscape, comprado por SUN y vendido a RedHat, parte CE
* DOC:
* Berto: 15 años experiencia. Mejor que openLDAP
* cliente: softerra ldap browser (windows)
* instalación y setup básico:
yum -y install openldap-servers openldap-clients
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap. /var/lib/ldap/DB_CONFIG
/etc/init.d/slapd start
* establecer contraseña admin:
slappasswd # {SSHA}vi6WZm+vOWA4E5PfgHtZlF+s8IelEfMY
* editar
# specify the password generated above for "olcRootPW" section
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}vi6WZm+vOWA4E5PfgHtZlF+s8IelEfMY
* olcDatabase: ...
* cn=config: ...
* añadimos la información:
ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
* establecer domain name en LDAP DB
* podemos reaprovechar el hash de la contraseña o crear una nueva con ''slappasswd''
*
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=Manager,dc=curso,dc=local" read by * none
dn: olcDatabase={2}bdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=curso,dc=local
dn: olcDatabase={2}bdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=curso,dc=local
dn: olcDatabase={2}bdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}vi6WZm+vOWA4E5PfgHtZlF+s8IelEfMY
dn: olcDatabase={2}bdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=Manager,dc=curso,dc=local" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=curso,dc=local" write by * read
* cargamos: ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
*
dn: dc=curso,dc=local
objectClass: top
objectClass: dcObject
objectclass: organization
o: Curso Local
dc: curso
dn: cn=Manager,dc=curso,dc=local
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=People,dc=curso,dc=local
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=curso,dc=local
objectClass: organizationalUnit
ou: Group
* cargamos: ldapadd -x -D cn=Manager,dc=curso,dc=local -W -f basedomain.ldif
* reiniciamos: service slapd restart
=== LDAP + PAM
* DOC: Presentacion FreeIPA.pdf
* IPA: identidad, política, auditoria
* aka AD
* usa, entre otros clientes, SSSD (que enlaza con los métodos permitidos desde PAM)
* DOC: Laboratorios FreeIPA.pdf