![사용자가 SELinux를 사용하여 ping 유틸리티만 *만* 수행할 수 있도록 허용하고 싶습니다.](https://linux55.com/image/139365/%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80%20SELinux%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20ping%20%EC%9C%A0%ED%8B%B8%EB%A6%AC%ED%8B%B0%EB%A7%8C%20*%EB%A7%8C*%20%EC%88%98%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8F%84%EB%A1%9D%20%ED%97%88%EC%9A%A9%ED%95%98%EA%B3%A0%20%EC%8B%B6%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
나는 rbash(제한된 bash)를 사용하여 이 작업을 수행했지만 이제는 SELinux를 사용하고 싶습니다.
그래서 새 사용자를 생성하고 그를 guest_u에 추가했습니다.
semanage login -a -s guest_u restricteduser
나는 또한 그에게 어떤 일도 하는 것을 금지했습니다.
setsebool allow_guest_exec_content=0
그리고 여기서는 그에게 ping 작업만 수행하도록 허용해야 합니다.
그리고 어떻게든 그에게 네트워킹을 제공해야 합니다. 어떻게 해야 하나요?
답변1
allow_guest_exec_content
부울 값은 사용자가 guest_t
홈 디렉터리 또는 임시 디렉터리에서 파일을 실행할 수 있는지 여부를 제어합니다. 그렇지 않으면 정책에서 허용하는 경우 사용자는 다른 실행 파일을 계속 실행할 수 있습니다.
SELinux 참조 정책은 특정 액세스를 허용하는 인터페이스를 제공합니다. 이러한 인터페이스는 SELinux 정책에 나열되어 있습니다.문서(귀하의 배포판에서는 패키지로 제공할 수 있습니다 selinux-policy-doc
).
게스트 사용자가 핑을 사용하도록 허용하려면 다음을 사용할 수 있습니다.netutils_exec_ping
상호 작용.
그런 다음 다음과 같은 맞춤 전략을 위한 모듈을 만듭니다. my_guest.te:
policy_module(my_guest, 1.0)
gen_require(`
type guest_t;
role guest_r;
')
netutils_run_ping(guest_t, guest_r)
다음을 사용하여 컴파일합니다.
make -f /usr/share/selinux/devel/Makefile my_guest.pp
허용하려는 네트워크 액세스 유형에 따라 적절한 인터페이스를 찾아 동일한 방식으로 사용하여 my_guest
모듈을 확장할 수 있습니다.