Permisos para el archivo de configuración del programa ejecutado como root que debe ser modificable por SFTP

2

Un script de shell ( myscript ) se ejecutará como root, por cron . Lee las direcciones IP de un archivo de configuración y actualiza iptables para incluir en la lista blanca las IP de las conexiones entrantes.

myscript usa una expresión regular (expresión regular) para analizar el archivo de configuración de las direcciones IP al principio de las líneas. No existe un riesgo obvio de un desbordamiento del búfer o una escalada de privilegios, porque se ignora todo lo que no coincida con la estructura y la longitud de una dirección IP.

Por razones operativas, este archivo de configuración debe ser actualizado por una persona específica y de confianza cuyo único acceso es a través de SFTP desde un programa antiguo de GUI SFTP que no puede autenticarse en sudo . (Piense en CyberDuck, FileZilla, WinSCP). Esta persona no debe hacer nada más en la máquina. Claramente, deben iniciar sesión a través de una cuenta no root. Llamemos a su cuenta sftp-user .

Si el archivo de configuración tenía root:root como propietario y grupo, como la mayoría de los archivos de configuración de GNU / Linux, AFAIK, la única forma de que sftp-user los edite sería si la cuenta sftp-user tuviera sin contraseña sudo privilegios Esto sería peligroso: le daría a la cuenta mucho más poder del necesario. Por lo tanto, se necesita una alternativa menos arriesgada.

Mi pregunta es: de lo siguiente, ¿cuál es el conjunto de permisos menos riesgoso para el archivo de configuración y por qué?

permissions  owner      group
----rw----   root       sftp-user
-rw-------   sftp-user  root
-rw-------   sftp-user  sftp-user

Edite en respuesta a la ayuda de David answer : Sí, en circunstancias normales, los permisos anteriores son equivalentes. Suponiendo que el único miembro del grupo sftp-user es sftp-user , entonces cada uno de ellos permite el acceso de lectura y escritura solo a sftp-user y a root . Pero ¿qué pasa con las circunstancias extraordinarias: una de las configuraciones presenta menos riesgo que las otras? P.ej. ¿Ha habido casos de escalada de privilegios solo a través de la propiedad de archivos, de modo que la mezcla de un propietario raíz y un grupo no raíz (o viceversa) es una mala idea?

    
pregunta sampablokuper 20.01.2018 - 05:09
fuente

2 respuestas

2

Suponiendo que el único miembro del grupo sftp-user es sftp-user , todos los permisos que haya enumerado serían equivalentes. Los únicos usuarios que podrían leer o escribir el archivo serían sftp-user y root .

Personalmente elegiría crear un "grupo de roles" para esto (tal vez fwadmins para administradores de firewall) en caso de que alguna vez necesite tener más de una persona con acceso a esto. Luego establecería los permisos como 0660 con el propietario root y el grupo fwadmins :

-rw-rw----   root     fwadmins

También sugiero establecer explícitamente los bits de permiso para root . Sí, root puede todavía editarlo de cualquier manera, pero es un poco más claro para ser explícito al respecto.

    
respondido por el David 20.01.2018 - 06:39
fuente
1

Ese myscript se ejecuta como raíz es un problema. Los privilegios de raíz son necesarios para iptables, pero esto podría implementarse mediante la separación de privilegios. Tal como está, existe un riesgo significativo de que el mantenedor de la configuración obtenga acceso a la raíz.

Si fuera yo, iría con -rw-r - r-- sftp-user como propietario y el privilegio de grupo / otro que proporciona acceso al usuario en tiempo de ejecución (no a la raíz)

    
respondido por el symcbean 20.01.2018 - 23:33
fuente

Lea otras preguntas en las etiquetas