일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- springboot
- tool
- laravel
- jsp
- 맛집
- AWS
- db
- jenkins
- Spring
- javascript
- linux
- Gradle
- elasticsearch
- Git
- it
- devops
- redis
- Web Server
- 요리
- JVM
- IntelliJ
- java
- Spring Boot
- php
- Design Patterns
- ReactJS
- Oracle
- Spring Batch
- MySQL
- ubuntu
- Today
- Total
아무거나
Nginx 보안 취약점 처리 본문
웹 서버를 운영하면서 기본적인 보안처리에 대해 포스팅합니다.
해당 방법을 무조건 적용하라는건 아닙니다. 상황에 맞게 적용하여 사용하시길 권장드립니다.
확인명령으로 조회 후 확인하셔서 적용하시면 됩니다.
[ Ubuntu 기준 ]
1. 관리서버 디렉토리 권한 설정 (일반 사용자가 관리서버 디렉토리에 접근할 경우 홈페이지 변조, 설정 변경 등으로 인한 장애가 발생할 수 있으므로 일반 사용자의 접근 권한을 제한해야 함.)
* 명령확인 : ls -ald /etc/nginx/
sudo chown -R ubuntu:ubuntu /etc/nginx/ sudo chmod 750 /etc/nginx/
2. 설정파일 권한 설정 (일반 사용자가 웹 서버의 설정 파일을 삭제, 변경할 수 있을 경우 시스템이 오작동하여 사용 불능 상태에 빠질 우려가 있음.)
* 명령확인 : find /etc/nginx/ -name *.conf -exec ls -al {} \;
sudo chmod 700 /etc/nginx/*.conf sudo chmod 700 /etc/nginx/snippets/*.conf
3. 로그 디렉토리/파일 권한 설정 (로그 파일에는 공격자에게 유용한 정보가 들어있을 수 있으므로 일반 사용자에 의한 정보 유출이 불가능하도록 권한 설정해야 함.)
* 명령확인 : ls -ald /var/log/nginx/
sudo chown -R ubuntu:ubuntu /var/log/nginx/ sudo chmod 750 /var/log/nginx/ sudo chmod 640 /var/log/nginx/*.log
vi /etc/nginx/nginx.conf [nginx.conf] .... access_log /var/log/nginx/access.log combined; error_log /var/log/nginx/error.log; ....
4. 로그 포맷 설정 (웹 서버의 로그 포맷을 Combined로 설정하지 않으면, 공격 여부 파악, 공격자 사용 툴 파악, 공격자 위치 파악이 불가능하므로 반드시 Combined 포맷 또는 그에 준하는 포맷 스트링으로 설정해야 함.)
* 명령확인 : cat /etc/nginx/nginx.conf | grep access_log
vi /etc/nginx/nginx.conf [nginx.conf] .... access_log /var/log/nginx/access.log combined; // combined 추가 ....
5. 헤더 정보 노출 방지 (공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 웹 서버 헤더 정보를 유출을 유도할 수 있음.)
* 명령확인 : cat /etc/nginx/nginx.conf | grep server_tokens
vi /etc/nginx/nginx.conf [nginx.conf] .... server_tokens off; ....
6. 에러 메시지 관리 (공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 다양한 에러를 유발하여 돌아오는 에러 메시지를 통해 웹 프로그램의 구조 및 환경 설정을 추정할 수 있음.)
* 명령확인 : cat /etc/nginx/nginx.conf | grep error_page
nginx 설치경로(/etc/nginx/)에 error.html 생성 [error.html]시스템 오류
이용에 불편을 드려 죄송합니다.
잠시 후 다시 이용해 주시길 바랍니다.
[/etc/nginx/sites-available/default.conf] server { .... location / { proxy_pass http://localhost:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } error_page 400 401 403 404 500 /error.html; }
'Infra > Nginx' 카테고리의 다른 글
Ngnix 로드밸런싱 설정 (Nginx의 Upstream 모듈을 통해서 제공) (0) | 2020.05.30 |
---|---|
Sticky Session 관련 로드밸런서 스위칭 문제 (0) | 2020.05.23 |
413 Request Entity Too Large Errors 해결 (0) | 2019.04.05 |
리버스 프록시를 활용한 정적 리소스 캐시 (0) | 2019.01.31 |
리버스 프록시(reverse proxy)란 (0) | 2019.01.31 |