SELinux-CentOSx86_64 : 사용자 명령 제한
SELinux가이 작업에 적합한 도구입니까? 그렇다면 가장 좋은 방법은 무엇입니까?
특정 사용자가 미리 정의 된 명령 / 스크립트 목록 (홈 디렉토리에 있음) 만 실행하도록 제한하고 싶습니다. 또한 사용자 스크립트는 사용자가 직접 실행할 수없는 명령을 실행할 수있는 권한을 가질 수 있습니다 (예 : 사용자 스크립트 test.sh는 'ping localhost'를 호출 할 수 있지만 사용자는 명령 행에서 'ping localhost'를 직접 호출 할 수 없음). 이러한 제한 사항은 하나의 사용자 계정에만 필요하다고 생각합니다 (다른 사용자 계정에 대해 여러 가지 다른 구성이 필요하지 않음).
OS는 CentOSx86_64이고 SELinux는 다음과 같이 사용 가능합니다.
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
SELinux를 처음 접했지만 다음을 실험했습니다.
(1) MLS 정책이 가장 적합하다고 생각했습니다 (이 링크는 유망한 것으로 보입니다 : http://www.centos.org/docs/5/html/Deployment_Guide-en-US/sec-mcs-getstarted.html ) 이 작업을 위해 먼저 이것을 켜려고했습니다. 'SELinux 관리 GUI'는 대상에서 정책을 변경하는 옵션을 제공하지 않으므로 / etc / selinux / config를 직접 변경하려고했습니다. 재부팅 후 '커널 패닉'으로 끝났으므로 원래 설치된 정책 (예 : 대상)을 사용하기로 결정했습니다.
(2) SELinux Admin GUI에서 '최소 터미널 사용자 역할'정책 유형으로 새 정책을 작성했습니다. 'name'의 경우 'limiteduser'라고했습니다. 전환 할 역할을 선택하지 않았습니다. 추가 역할을 선택하지 않았습니다. 바인드 / 연결을 위해 'All'TCP 및 UDP 포트를 선택했습니다. 정책에 부울을 추가하지 않았습니다. 생성 된 .sh를 실행 한 후 새 SELinux 사용자 및 역할이 작성되었습니다. 그런 다음 로그인 이름을 'limiteduser'에 할당했습니다. 예상대로 이것은 매우 제한된 권한을 가진 사용자에게 나에게 주었다.
(3) 처음에이 새 사용자는 홈 디렉토리에 스크립트를 작성할 수 있었지만 실행할 수 없었습니다. 'allow_guest_exec_content'라는 부울을 설정 한 후 사용자는 스크립트를 실행할 수있었습니다. 처음에는 스크립트에 '에코'가 포함되었지만 일단 핑으로 변경하면 다시 실패했습니다. 이 새로운 사용자에 대해 'ping'을 허용하려는 시도에서 부울 user_ping의 선택을 해제했습니다 (하지만 guest_u가 아닌 user_u에만 적용된다고 생각합니다). 내가 원하는 것을하기 위해 대안은 'user_u'기반 유형을 정의한 다음 권한을 제거하는 것일 수 있습니다. 어떻게 해야할지 모르겠다!).
(4) 많은 온라인 소스가 src 디렉토리의 정책 파일에 대해 설명하지만 이것이 설치되지 않았으므로 설치할 패키지를 파악할 수 없었습니다. 다음 selinux 관련 패키지가 설치되어 있습니다.
libselinux.x86_64 2.0.94-5.3.el6 installed
libselinux-devel.x86_64 2.0.94-5.3.el6 installed
libselinux-python.x86_64 2.0.94-5.3.el6 installed
libselinux-utils.x86_64 2.0.94-5.3.el6 installed
selinux-policy.noarch 3.7.19-126.el6_2.4 @updates
selinux-policy-targeted.noarch 3.7.19-126.el6_2.4 @updates
setools-console.x86_64 3.3.7-4.el6 @base
setools-devel.x86_64 3.3.7-4.el6 @base
setools-gui.x86_64 3.3.7-4.el6 @base
setools-libs.x86_64 3.3.7-4.el6 @base
setools-libs-java.x86_64 3.3.7-4.el6 @base
setools-libs-python.x86_64 3.3.7-4.el6 @base
setools-libs-tcl.x86_64 3.3.7-4.el6 @base
(5) http://lshell.ghantoos.org/ 와 같은 대체 제한 쉘을 보았지만 회사 요구 사항은 SELinux를 사용하는 것입니다. 그러나 이것은 안전하지 않을 수 있습니다.
나는 사용자 정의 정책을 정의해야한다고 생각합니다.
(a) 사용자가 홈 디렉토리에서 파일을 실행할 수 있도록합니다.
(b) 사용자에게 권한이없는 명령을 실행하기 위해 사용자 스크립트가 다른 유형으로 전환되도록합니다.
SELinux 관리 GUI (및 내가 알고있는 구성 파일)를 사용하는 방법을 모르겠습니다.
도움을 주셔서 감사합니다.