SElinux에 문제가 있다는 것을 알고 있습니다. 저도요튜토리얼을 따르세요이는 현재 겪고 있는 파일 액세스 문제의 성격을 이해하는 데 도움이 될 것입니다. 즉, SElinux를 비활성화하는 것과 동일하게 강제하도록 할 수 있습니다.
기본적으로 테스트를 위해 SElinux를 허용 모드로 설정하고 강제 실행 시 실패한 파일 작업을 수행했습니다. 이렇게 하면 로그의 메시지가 어떤 모습인지 확인할 수 있습니다. 그러한 라인은 다음과 같습니다:
type=USER_CMD msg=audit(1452912989.069:324790): pid=66581 uid=1001 auid=1001 ses=1352 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='cwd="/srv/dpca/www" cmd=7461696C202F7661722F6C6F672F61756469742F61756469742E6C6F67 terminal=pts/0 res=success'
이제 나는 이래로진짜나는 이것에 익숙하지 않고 이 튜토리얼을 참조했고 이 튜토리얼이 audit2why
나를 위해 이것을 배치하는 방법에 대해 어떻게 설명했는지 참조했습니다.
[matt@localhost www]$ sudo grep 1452912989.069:324790 /var/log/audit/audit.log | audit2why
Nothing to do
grep
올바른 텍스트를 반환 합니다 . 그러나 audit2why
그것은 "아무것도 할 수 없음"으로 돌아가는 것 같습니다.
내가 근본적으로 잘못된 일을 하고 있는 걸까요? 결국 저는 특정 NGINX 디렉터리에 어떤 컨텍스트를 할당할지 알아내려고 노력하고 있습니다. 찾아볼 수 있을 거라고 확신하지만, 나도 그러고 싶어요이해하다내가 하고 있는 일은 인터넷에서 본 명령을 실행하는 것뿐입니다.
궁금하시다면 여기 내 네트워크 루트 컨텍스트의 작은 조각이 있습니다.
drwxr-xr-x. nginx nginx unconfined_u:object_r:httpd_sys_content_t:s0 administrator
drwxr-xr-x. nginx nginx unconfined_u:object_r:httpd_sys_content_t:s0 bin
drwxr-xr-x. nginx nginx unconfined_u:object_r:httpd_sys_content_t:s0 cache
답변1
노트:나는 여전히 내 질문에 대한 답변에 관심이 있지만, 내가 사용하고 있는 해결 방법을 게시하고 싶었습니다. 이 해결 방법이 audit2why
예상대로 작동한다면 똑같이 유익할 것입니다.
아래에CentOS.org의 SELinux 가이드문제 해결 섹션이 있습니다. sealert
"/var/log/audit/audit.log" 로그에서 구문 분석된 사람이 읽을 수 있는 정보를 사용하는 방법에 대해 설명합니다 . 그러니 간단히 실행하세요.
sudo sealert -a /var/log/audit/audit.log > ~/logfile.txt
내가 원하는 정보를 읽고 내 웹 디렉토리에 대한 올바른 보안 컨텍스트에 대한 조언을 얻을 수 있습니다.
SELinux is preventing /usr/sbin/php-fpm from write access on the directory /srv/dpca/www/images.
***** Plugin httpd_write_content (92.2 confidence) suggests ***************
If you want to allow php-fpm to have write access on the images directory
Then you need to change the label on '/srv/dpca/www/images'
Do
# semanage fcontext -a -t httpd_sys_rw_content_t '/srv/dpca/www/images'
# restorecon -v '/srv/dpca/www/images'
다시 말하지만, 누군가 내 원래 질문을 알고 있다면 audit2why
여전히 알고 싶습니다.
답변2
/var/log/audit/audit.log는 바이너리 파일입니다. grep을 사용하여 콘텐츠를 찾을 수 있습니다
grep -a AVC /var/log/audit/audit.log | audit2why