Estoy escribiendo mi propio módulo PAM que será parte de una aplicación que estoy desarrollando, pero no estoy seguro exactamente dónde colocarlo. Mi módulo básicamente realiza autenticación a nivel de red (con otro mojo, por supuesto) similar a LDAP.
Hay muchos archivos de configuración en mi /etc/pam.d/
directorio, y sé lo que hacen la mayoría de los servicios (excepto un par, como atd, polkit, ppp). Supongo que la autenticación con la pila PAM es algo como esto:
- Ejecuta la pila según el nombre del servicio (si existe un archivo de configuración)
- Si no está autenticado, recurra a common- *, donde * es el tipo de módulo (autenticación, cuenta, etc.)
- Devolver el éxito o no a la aplicación de llamada (y cualquier otro dato, por supuesto)
¿Estoy en lo cierto en esta suposición? ¿Todas las plataformas tienen autenticación común, cuenta común, contraseña común y sesión común?
Si es así, estaba pensando en ponerlo en la parte superior de common- * como sufficient
módulo para que, en caso de falla, la pila PAM normal no se vea afectada. Esto es particularmente ventajoso porque puedo hacer esto programáticamente en la instalación del software.
¿Me estoy perdiendo posibles vulnerabilidades de seguridad?
No pude encontrar muy buena documentación sobre dónde integrar módulos PAM personalizados o problemas de seguridad relacionados con dónde colocar los módulos.