Configure o SElinux para permitir o rsync de uma máquina remota

Configure o SElinux para permitir o rsync de uma máquina remota

Eu configurei uma máquina Debian com SElinux e exceto rsyncem uma máquina remota tudo funciona bem. Já criei algum módulo com direitos adicionais usando audit2allowe agora todos os erros no log de auditoria desapareceram. Quando tento sincronizar novamente com a máquina, mas infelizmente a conexão ainda não é permitida. Configurando o selinux como permissivo, tudo funciona conforme o esperado.

Não estou executando o rsync como um daemon, o que geralmente parece causar mais problemas de acordo com relatórios de problemas na rede. rsync está simplesmente na configuração padrão do Debian 7.

O rsync remoto falha com esta mensagem:

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]

Esta é a aparência dos direitos do rsync:

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

Quando executo o rsync remoto e o servidor no modo permissivo, vejo o processo da seguinte forma:

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 exemplo funciona sem problemas com o mesmo arquivo. Os direitos adicionais, que já dei ao rsync, são semelhantes aos seguintes. Não tenho certeza se eles são muito generosos ou algo assim, mas pelo menos consertaram os problemas que apareciam no 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;

Então, o que mais me preocupa é que não vejo nenhuma entrada AVC, mas ainda não está funcionando. Existe alguma coisa para aumentar a verbosidade? Como é possível que alguns direitos não sejam concedidos, mas não haja entrada no AVC? Em segundo lugar, estou um pouco surpreso por não ter conseguido encontrar nenhuma referência ao problema na rede, apenas problemas com o selinux/rsync rodando como um daemon. Mas eu também não saberia o que há de especial na minha configuração. Portanto, quaisquer outras ideias sobre diagnósticos serão bem-vindas!

Responder1

Encontrei um problema semelhante com SELinux e MySQL. A execução de 'semodule -B -D' redefiniu as coisas para onde eu pudesse ver os problemas de auditoria restantes.

A pergunta original éaqui.

informação relacionada