Я установил машину Debian с SElinux и кроме rsync
с удаленной машины все работает нормально. Я уже создал какой-то модуль с дополнительными правами, используя audit2allow
, и теперь все ошибки в журнале аудита исчезли. Когда я пытаюсь выполнить rsync на машине, но, к сожалению, соединение все еще не разрешено. Установив selinux на permissive, все работает, как ожидалось.
Я не запускаю rsync в качестве демона, который обычно вызывает больше проблем, согласно отчетам о проблемах в сети. rsync просто находится в конфигурации Debian 7 по умолчанию.
Удаленный rsync не работает с этим сообщением:
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]
Вот так выглядят права на rsync:
root@host:~# ls -Z /usr/bin/rsync
system_u:object_r:rsync_exec_t:SystemLow /usr/bin/rsync
Когда я запускаю удаленный rsync и сервер в разрешающем режиме, я вижу процесс следующим образом:
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 например без проблем работает с тем же файлом. Дополнительные права, которые я уже дал rsync, выглядят следующим образом. Я не уверен, слишком ли они щедры или что-то в этом роде, но они, по крайней мере, исправили проблемы, появляющиеся в 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;
Итак, что меня больше всего беспокоит, так это то, что я не вижу записей AVC, но он все еще не работает. Есть ли что-нибудь, чтобы увеличить многословие? Как это возможно, что некоторые права не предоставлены, но нет записи AVC? Во-вторых, я немного удивлен, что я не смог найти в сети никакой ссылки на проблему, только проблемы с запуском selinux / rsync как демона. Но я бы также не знал, что такого особенного в моей конфигурации. Так что любые дальнейшие идеи по поводу диагностики приветствуются!
Я столкнулся с аналогичной проблемой с SELinux и MySQL. Выполнение «semodule -B -D» сбрасывает все, чтобы я мог видеть оставшиеся проблемы аудита.
Исходный вопрос Вот.