¿Se puede autenticar un proceso no root (MySQL) a RADIUS a través de PAM?

3

Me encontré con un dilema con la autenticación PAM RADIUS para la capa de base de datos. En nuestro entorno, el inicio de sesión del sistema operativo se autentica a través de PAM en un servidor RADIUS que acepta un código de token y se autentica según el token y el PIN basados en el tiempo. Debido a que el secreto compartido de RADIUS está disponible en texto sin formato en el archivo / etc / raddb / server, creemos que no es apropiado otorgar acceso a este archivo a ninguna otra cuenta que no sea root.

Sin embargo, cuando se requiere una base de datos u otra aplicación que no se ejecute como root (en este caso particular, el programa en cuestión es MySQL y se ejecuta como usuario "mysql") para autenticarse en RADIUS, debe ser capaz de para leer el archivo / etc / raddb / server para que la biblioteca PAM (que se ejecuta con los privilegios de la persona que llama) sepa cómo acceder al servidor RADIUS. Debido a la necesidad de proteger el secreto compartido, esto significa que los procesos no que se ejecutan como root no se pueden autenticar a través de PAM RADIUS.

Hemos considerado varias opciones y encontramos que faltan todas:

  • La configuración del bit setuid en el binario auxiliar chk-passwd no parece cubrir todos los casos en los que MySQL debe autenticarse en RADIUS.
  • La configuración del bit setuid en el binario mysqld anula el propósito de ejecutar este proceso como mysql en primer lugar.
  • La configuración de las capacidades de SELinux en cualquiera de los binarios parece ser equivalente a la configuración del bit setuid.
  • Establecer el permiso de grupo en el archivo / etc / raddb / server a mysql y permitir la lectura del grupo parece que se abriría otra lata de gusanos.

¿Realmente no hay esperanza de permitir que un proceso que se ejecuta como un usuario con menos privilegios se autentique en PAM RADIUS?

    
pregunta Mike McManus 12.01.2018 - 00:07
fuente

0 respuestas

Lea otras preguntas en las etiquetas