Configure SElinux para permitir rsync desde una máquina remota

Configure SElinux para permitir rsync desde una máquina remota

Configuré una máquina Debian con SElinux y, excepto rsyncdesde una máquina remota, todo funciona bien. Ya creé algún módulo con derechos adicionales usando audit2allowy ahora todos los errores en el registro de auditoría desaparecieron. Cuando intento sincronizar con la máquina, pero desafortunadamente, la conexión aún no está permitida. Al configurar selinux como permisivo, todo funciona como se esperaba.

No estoy ejecutando rsync como demonio, lo que generalmente parece causar más problemas según los informes de problemas en la red. rsync simplemente está en la configuración predeterminada de Debian 7.

El rsync remoto falla con este mensaje:

user1@othermachine:~$ rsync -vv servermachine:/home/user1/some/file .
opening connection using: ssh servermachine rsync --server --sender -vve.Lsf . /home/user1/some/file 
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [Receiver=3.0.9]

Así es como se ven los derechos de rsync:

root@host:~# ls -Z /usr/bin/rsync
system_u:object_r:rsync_exec_t:SystemLow /usr/bin/rsync

Cuando ejecuto rsync remoto y el servidor en modo permisivo, veo el proceso de la siguiente manera:

root@host:~# ps aux|grep rsync
user1   22948  1.0  0.0  26680  5156 ?        Ds   11:08   0:00 rsync --server --sender -vlogDtpre.iLsf . /home/user1/some/file
root     22954  0.0  0.0  11292   924 pts/0    S+   11:09   0:00 grep rsync

root@host:~# ps -eZ | grep rsync
unconfined_u:system_r:rsync_t:s0-s0:c0.c1023 22948 ? 00:00:00 rsync

scp por ejemplo funciona sin problemas con el mismo archivo. Los derechos adicionales, que ya le otorgué a rsync, se parecen a los siguientes. No estoy seguro de si son demasiado generosos o algo así, pero al menos solucionaron los problemas que aparecían en audit.log.

allow rsync_t user_home_t:file { read write getattr open };
allow rsync_t sshd_t:fifo_file { write read };
allow setfiles_t device_t:filesystem getattr;
allow setfiles_t devpts_t:filesystem getattr;
allow setfiles_t tmpfs_t:filesystem getattr;
allow setfiles_t sysfs_t:filesystem getattr;

Entonces, lo que más me preocupa es que no veo ninguna entrada AVC, pero todavía no funciona. ¿Hay algo para aumentar la verbosidad? ¿Cómo es posible que no se concedan algunos derechos, pero que no haya entrada AVC? En segundo lugar, estoy un poco sorprendido de no haber podido encontrar ninguna referencia al problema en la red, solo problemas con selinux/rsync ejecutándose como demonio. Pero tampoco sabría qué tiene de especial mi configuración. Entonces, ¡cualquier idea adicional sobre el diagnóstico sería bienvenida!

Respuesta1

Me encontré con un problema similar con SELinux y MySQL. Al ejecutar 'semodule -B -D' se restablecieron las cosas hasta que pude ver los problemas de auditoría restantes.

La pregunta original esaquí.

información relacionada