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 발생 오류
'공부 > 프로그래밍' 카테고리의 다른 글
[centos7] pinpoint-docker 와 nginx 와 연결하기 (0) | 2019.01.20 |
---|---|
[pinpoint-docker] Realtime Active Thread Chart 안나오는 문제 (0) | 2019.01.19 |
[centos7] sudo 사용 시 PATH에 잡히지 않아 실행이 안되는 문제 (0) | 2019.01.16 |
[centos7] pinpoint(docker) 서버 구축 및 was(tomcat-docker) 연결 (0) | 2019.01.15 |
[centos7] LVM(Logical Volumn Manager) 확장 (0) | 2018.12.26 |
댓글