Rsyslog no inicia sesión debido a Selinux, ¿está bien mi solución?

Rsyslog no inicia sesión debido a Selinux, ¿está bien mi solución?

Tengo estos dos parámetros en /etc/rsyslog.conf

$ModLoad imjournal # provides access to the systemd journal
...
# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging on

Tuve problemas con SELinux, Rsyslog registró esto:

Jun  6 10:53:14 vpod1-logm-front-3 rsyslogd: fopen() failed: 'Permission denied', path: '/var/spool/imjournal.state.tmp'  [v8.24.0 try http://www.rsyslog.com/e/2013 ]

Tuve que agregar una nueva política (generada por audit2alow)

cat  >syslog-imjournal.te << EOF
module syslog-imjournal 1.0;

require {
        type syslogd_t;
        type var_spool_t;
        class dir { add_name remove_name write };
        class file { create rename unlink write };
}

#============= syslogd_t ==============

allow syslogd_t var_spool_t:dir write;
allow syslogd_t var_spool_t:dir { add_name remove_name };
allow syslogd_t var_spool_t:file { create rename unlink write };
EOF

checkmodule  -m -o syslog-imjournal.m syslog-imjournal.te
semodule_package --module syslog-imjournal.m --outfile syslog-imjournal.pp
semodule --install=syslog-imjournal.pp --priority=400 

No sé si es seguro hacer esto, ¿hay alguna manera mejor?

Respuesta1

Creo que el problema es que estás almacenando el archivo “imjournal.state” en la ubicación incorrecta, por lo que SELinux está bloqueando las escrituras. En lugar de crear un módulo de política personalizado que otorgue demasiados permisos, debe usar la ubicación predeterminada, que es /var/lib/rsyslog. La configuración predeterminada dice:

$WorkDirectory /var/lib/rsyslog
$IMJournalStateFile imjournal.state

información relacionada