디렉토리에 대한 SELinux httpd 쓰기 액세스


9

SELinux를 처음 사용합니다. 데비안에서 왔습니다. httpd디렉토리에 대한 액세스 권한 을 부여하고 싶습니다 .

SELinux Alert Browser 는 다음을 제안합니다.

# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp 

이 명령이 어떻게 작동하는지 이해할 수 없었습니다. 디렉토리 경로를 어디에도 지정하지 않습니다. httpd를 허용 할 디렉토리를 어떻게 알 수 있습니까?

이전에는 grep을 사용하여 출력 또는 파일에서 텍스트를 추출했습니다. 그러나 여기서 grep은 프로세스에서 사용되고 있습니다. 나는 얻지 못했다.

또한 실제 솔루션은 무엇입니까? 디렉토리에 httpd 쓰기 권한을 부여하려면?


4
audit2allow는 다른 질문에 대답하기 위해 SELinux 로그 파일을 읽고 차단 된 항목을 허용하는 정책을 작성합니다. 디렉토리 이름은 로그 메시지에 있습니다. httpd를 grepping하면 약간 제한하지만 방법은 여전히 ​​있어야합니다.
miken32

답변:


17

디렉토리의 컨텍스트를 영구적으로 변경하는 방법은 다음과 같습니다.

# install semanage if you don't already have it:
yum install policycoreutils-python

# give the directory a new default context. The part at the end is a regex.
semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/directory(/.*)?"

# apply the default context to the directory
restorecon -R /path/to/directory

httpd에 대한 다양한 컨텍스트에 대한 추가 문서가 있습니다.

RHEL 7 : https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/SELinux_Users_and_Administrators_Guide/sect-Managing_Confined_Services-The_Apache_HTTP_Server-Types.html

RHEL 6 : https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/sect-Managing_Confined_Services-The_Apache_HTTP_Server-Types.html


Perfect !! Fedora 26에서 나를 위해 일한 policycoreutils-python은 이미 기본적으로 설치되었습니다.
Sir_Faenor

5

SELinux는 디스크의 디렉토리 구조에 추가 할 수있는 확장 된 속성을 사용합니다. 이것이 메타 데이터인지 생각하십시오. ACL (액세스 제어 목록)이 다른 것입니다.

디렉토리에 추가해야하는 확장 된 속성을 컨텍스트라고하며 SELinux는 트래픽 경찰과 같은 역할을하며 특정 컨텍스트가있는 실행 파일이 이러한 컨텍스트를 기반으로 파일 시스템에 액세스 할 수 있도록합니다. 로 -Z전환 하여 디렉토리에서 사용 가능한 항목을 확인할 수 있습니다 ls.

$ sudo ls -Z /var/www
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html

여기에서이 디렉토리는 상황이 있음을 알 수 httpd_sys_script_exec_t:s0cgi-bin일세. 그리고 htmldir. 있다 httpd_sys_content_t:s0.

다음 chcon명령을 사용하여 다음을 추가 할 수 있습니다 .

$ sudo chcon -t httpd_sys_content_t public_html

당신이 요구하는 명령은 단순히 mypoll.pp어떤 권한도 부여 할 것이라고 생각하지 않는 모듈을로드 audit.log합니다. 명령에 누락 된 메시지가 더 많을 것입니다. 액세스를 허용합니다.

시간을내어 SELinux에 익숙해 지시기 바랍니다. 처음에는 혼란 스럽지만 약간의 시간을 보낸 후에는 일반적으로 간단합니다. 시작하려면 아래 리소스를 참조하십시오.

참고 문헌


감사. 나는 그들을 통해 갈 것입니다. 하지만 지금이 디렉토리에 대한 쓰기 권한을 부여하기 위해해야 ​​할 일을 말해 줄 수 있습니까?
Neel Basu

만약 당신이 아파치가 읽기를 원하는 내용이라면,이 문맥을 dir에 추가해야 할 것입니다 :chcon -R -t httpd_sys_content_t <dir>
slm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.