원격 시스템에서 rsync를 허용하도록 SElinux 구성

원격 시스템에서 rsync를 허용하도록 SElinux 구성

저는 SElinux를 사용하여 Debian 시스템을 설정했는데 rsync원격 시스템을 제외하고는 모든 것이 잘 작동합니다. 을(를) 사용하여 추가 권한이 있는 일부 모듈을 이미 생성했는데 audit2allow이제 감사 로그의 모든 오류가 사라졌습니다. 컴퓨터에 rsync를 시도했지만 안타깝게도 여전히 연결이 허용되지 않습니다. selinux를 허용으로 설정하면 모든 것이 예상대로 작동합니다.

저는 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'를 실행하면 나머지 감사 문제를 볼 수 있는 위치로 재설정됩니다.

원래 질문은여기.

관련 정보