配置 SElinux 以允許從遠端電腦進行 rsync

配置 SElinux 以允許從遠端電腦進行 rsync

我已經用 SElinux 設定了一台 Debian 機器,除了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 作為守護程序運行的問題。但我也不知道我的配置有什麼特別之處。因此,任何有關診斷的進一步想法都將受到歡迎!

答案1

我在 SELinux 和 MySQL 中也遇到了類似的問題。運行“semodule -B -D”將內容重置到我可以看到剩餘審核問題的位置。

原來的問題是這裡

相關內容