본문 바로가기
공부/프로그래밍

[nginx] permission 에러

by demonic_ 2019. 1. 18.
반응형

nginx 와 tomcat 을 연결하던 중 권한으로 인해 접근이 불가해 에러가 났었다.


# nginx error 로그

2019/01/15 09:39:41 [crit] 4327#0: *2 connect() to [::1]:8079 failed (13: Permission denied) while connecting to upstream


그래서 인터넷에 찾아본 결과, audit 개념이 있었다. centos는 기본으로 설치된다.

audit 시스템은 보안정보를 추적할 수 있도록 도와주는데, 사전 설정된 규칙에 따라 audit은 시스템에서 발생된 이벤트에 관해 많은 정보를 포함하는 로그를 생성하며, 보안정책과 그들이 수행하는 작업에서 위반되는 것을 파악하는데 결정적 역할을 한다.


audit의 기본 로그 위치는 다음과 같다.


/var/log/audit/audit.log


다음을 필터해보면 접근금지 항목들을 살펴볼 수 있다.


cat /var/log/audit/audit.log | grep nginx | grep denied


...

type=AVC msg=audit(1547513406.485:5038): avc:  denied  { name_connect } for  pid=18795 comm="nginx" dest=8080 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket permissive=0

type=AVC msg=audit(1547513406.485:5039): avc:  denied  { name_connect } for  pid=18795 comm="nginx" dest=8080 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket permissive=0

type=AVC msg=audit(1547516970.731:8160): avc:  denied  { name_bind } for  pid=25276 comm="nginx" src=8079 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket permissive=0

...


Audit에 대한 정보는 아래 사이트를 보면 확인할 수 있다.

- Linux Audit System

https://techintguru.blogspot.com/2017/04/audit.html


그래서 아래 규칙을 추가해주어야 한다.


sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M swnginx

sudo semodule -i swnginx.pp


이제 nginx 를 재시작하면 정상작동 한다.




참조사이트: 

- CentOS 에 nginx / redis 설치시 Permission Denied 발생 오류

http://crystalcube.co.kr/181



반응형

댓글