Acceso grep en maillog para no root

Acceso grep en maillog para no root

Me gustaría otorgar grepacceso a un usuario específico (regular) a mis registros de correo ( /var/log/maillog*).

No estoy preparado para cambiar los permisos de registro, ya que deberían permanecer rootsolo -, por lo que creo que la solución preferida sería a través de sudoers.

Además: quiero otorgar la menor cantidad posible de otros permisos, idealmente el usuario solo tiene acceso al registro de correo (y a los archivos rotados).

P.ej:

username ALL= NOPASSWD: /bin/grep 

Permite que ese usuario acceda básicamente grepa cualquier archivo del sistema, algo que me gustaría evitar.

¿Cuál es la mejor solución aquí?
Para su información: No es necesario que sea grepper se: el usuario solo necesita acceso de lectura a los registros de correo y probablemente solo los usará greppara acceder a ellos.

Respuesta1

Puede usar una acl en los archivos para otorgar permiso de lectura al usuario

setfacl -m user:grepuser:r /var/log/maillog*

Esto como la ventaja de permitir al usuario utilizar cualquier herramienta que desee.

Esto también es seguro para logrotate para maillog*

Respuesta2

A menos que sepa qué cadenas específicas buscarán los usuarios y los archivos específicos que utilizarán, sudono es una buena solución para esto. Si crea una regla como esta:

blizz ALL=root NOPASSWD: /bin/grep * /var/log/maillog*

El usuario podrá ejecutar comandos como este:

grep root /etc/shadow /var/log/maillog
grep = /root/my.cnf /var/log/maillog

Podrán leer cualquier archivo del sistema. Puede encontrar más información sobre este problema aquí:

http://blog.csnc.ch/2012/10/dangerous-sudoers-entries-part-4-wildcards/

Si sabe qué cadenas y archivos comprobará el usuario, puede definir reglas independientes para cada escenario. Por ejemplo:

Cmnd_Alias  MAILLOGA = /bin/grep 'Connection refused' /var/log/maillog
Cmnd_Alias  MAILLOGB = /bin/grep 'Connection refused' /var/log/maillog.1
Cmnd_Alias  MAILLOGC = /bin/grep 'imap-login' /var/log/maillog
Cmnd_Alias  MAILLOGD = /bin/grep 'imap-login' /var/log/maillog.1
blizz ALL=root NOPASSWD: MAILLOGA, MAILLOGB, MAILLOGC, MAILLOGD

Sin embargo, esto puede resultar engorroso y dar lugar a una configuración de sudo demasiado grande.

Alternativamente, en lugar de grepotorgarles acceso a los archivos mediante el morecomando, podrían buscar los archivos de forma interactiva:

Cmnd_Alias  MAILLOG = /bin/more /var/log/mailllog
Cmnd_Alias  MAILLOG1 = /bin/more /var/log/mailllog.1
Cmnd_Alias  MAILLOG2 = /bin/more /var/log/mailllog.2
Cmnd_Alias  MAILLOG3 = /bin/more /var/log/mailllog.3
blizz ALL=root NOPASSWD: MAILLOGA, MAILLOGB, MAILLOGC, MAILLOGD

Sin embargo, esto no permite al usuario mantener un historial de sus búsquedas (p. ej. .bash_history) ni crear sus propios scripts o alias para las búsquedas. Además, si tiene implementada la rotación de registros, no podrán analizar los registros comprimidos.

Nota:Nootorgar acceso sudo al lesscomando. Un usuario podría salir del proceso; por ejemplo, ejecutarlo !/bin/bashle lessdaría acceso de root al sistema.

Otra opción es tener reglas para ellos en catlos archivos para que puedan canalizarlos grepcomo mejor les parezca. Por ejemplo:

sudo cat /var/log/maillog | grep "anything can go here"

Al final, la solución más simple, y probablemente la mejor, es otorgarles acceso de lectura a los registros cambiando los permisos en los archivos de registro. Podrías hacer algo como esto:

groupadd logcheck
chgrp logcheck /var/log/maillog*
chmod g+r /var/log/maillog*
useradd -G logcheck blizz

Y luego pueden usar cualquier herramienta que quieran para analizar los archivos (por ejemplo grep, zgrep, less, more, viewetc.).

Respuesta3

Esto debería funcionar como se esperaba ensudoersarchivo:

%users  ALL= /bin/cat /var/log/mail.log
%users  ALL= /bin/cat /var/log/mail.err

(registrar rutas desde Ubuntu, cambiar si es necesario)

Usar una herramienta genérica de solo salida comogatoes simple y seguro. No tendrá que permitir ni limitar opciones específicas como congrepdirectamente en sudoers. También permitirá filtrar los registros con cualquiergrep-o-noherramienta, es decir.awk,sed.

No estoy seguro de cómosudoestá configurado en CentOS, pero si solicita una contraseña devocaciónusuario (no deobjetivousuario), evitaría usarSIN CONTRASEÑA. Esto puede ser una ventaja de seguridad si una parte hostil obtiene acceso a la cuenta del usuario sin conocer la contraseña del usuario.

información relacionada