일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AWS
- JVM
- jenkins
- Gradle
- laravel
- Spring Batch
- Design Patterns
- ubuntu
- devops
- linux
- elasticsearch
- Oracle
- jsp
- it
- javascript
- springboot
- Web Server
- Spring Boot
- java
- MySQL
- Git
- 맛집
- ReactJS
- php
- 요리
- IntelliJ
- db
- tool
- Spring
- redis
- Today
- Total
아무거나
Apache 보안 취약점 처리 본문
웹 서버를 운영하면서 기본적인 보안처리에 대해 포스팅합니다.
해당 방법을 무조건 적용하라는건 아닙니다. 상황에 맞게 적용하여 사용하시길 권장드립니다.
확인명령으로 조회 후 확인하셔서 적용하시면 됩니다.
[ Ubuntu 기준 ]
1. 관리서버 디렉토리 권한 설정 (일반 사용자가 관리서버 디렉토리에 접근할 경우 홈페이지 변조, 설정 변경 등으로 인한 장애가 발생할 수 있으므로 일반 사용자의 접근 권한을 제한해야 함.)
* 확인명령 : ls -ald /etc/apache2/
sudo chown -R ubuntu:ubuntu apache2/ sudo chmod -R 750 apache2/
2. 설정파일 권한 설정 (일반 사용자가 웹 서버의 설정 파일을 삭제, 변경할 수 있을 경우 시스템이 오작동하여 사용 불능 상태에 빠질 우려가 있음.)
* 확인명령 : find /etc/apache2/* –name "*.conf" -exec ls -al {} \
sudo chmod -R 700 /etc/apache2/conf-* sudo chmod -R 700 /etc/apache2/*.conf
3. 디렉토리 검색 기능 제거 (디렉토리 검색 기능이 활성화 되어 있으면 해당 디렉토리에 존재하는 모든 파일이 리스팅 되어, Web 서버 구조 노출 및 주요 설정 파일의 내용이 유출될 가능성이 있음.)
* 확인명령 : cat /etc/apache2/apache2.conf | grep "Options" | grep -v '#'
sudo vi /etc/apache2/apache2.conf #Options FollowSymlinks // 주석처리 #Options Indexes FollowSymlinks // 주석처리
4. 로그 디렉토리/파일 권한 설정 (로그 파일에는 공격자에게 유용한 정보가 들어있을 수 있으므로 일반 사용자에 의한 정보 유출이 불가능하도록 권한 설정해야 함.)
* 확인명령 : ls -ald /var/log/apache2
sudo chown -R ubuntu:ubuntu /var/log/apache2 sudo chmod 640 /var/log/apache2/*
5. 헤더 정보 노출 방지 (공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 웹 서버 헤더 정보를 유출을 유도할 수 있음.)
* 확인명령 : cat /etc/apache2/conf-enabled/security.conf | grep "ServerTokens\|ServerSignature"
sudo vi /etc/apache2/conf-enabled/security.conf # ServerTokens Prod // 주석처리 # ServerSignature Off // 주석처리
6. 에러 메시지 관리 (공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 다양한 에러를 유발하여 돌아오는 에러 메시지를 통해 웹 프로그램의 구조 및 환경 설정을 추정할 수 있음.)
* 확인명령 : cat /etc/apache2/apache2.conf | grep “ErrorDocument”
sudo vi /etc/apache2/apache2.conf # 메세지 표시 말고 페이지 이동하는 방식을 권장한다. 아래 ErrorDocument는 해당 http status일 경우에 웹 페이지에 메세지만 표시한다. ErrorDocument 204 "No Content" ErrorDocument 401 "Unauthorized" ErrorDocument 403 "Forbidden" ErrorDocument 404 "Not Found" ErrorDocument 500 "Internal Error"
'Infra > Apache' 카테고리의 다른 글
apache 기본포트 변경 방법 (0) | 2019.04.23 |
---|---|
apache2 한 서버에 다중 VirtualHost 설정 (0) | 2019.04.22 |
Apache ab를 이용한 스트레스 테스트 방법 (0) | 2019.03.12 |
원하는 경로에 ELB를 통하여 유입된 Client IP를 가져오는 방법 (0) | 2019.03.08 |
아파치 서버 MPM, worker, prefork 방식 (2) | 2018.07.11 |