관리 메뉴

투덜이 개발자

Apache 보안 설정 본문

OS/Linux

Apache 보안 설정

엠투 2025. 4. 23. 11:00
반응형

🛡️ 1. Apache 보안 설정 .conf 예시

# 파일 위치 예시: /etc/apache2/conf-available/security.conf
# 또는 httpd.conf, apache2.conf 등 포함되는 곳에 설정

# TRACE 메서드 비활성화
TraceEnable Off

# 최소한의 Server 헤더만 노출
ServerTokens Prod

# 오류 페이지 하단 정보 제거
ServerSignature Off

# mod_security가 설치되어 있는 경우 - 응답 헤더 위장
<IfModule security2_module>
    SecRuleEngine On
    SecDefaultAction "deny,phase:2,status:403"
    SecServerSignature "TestServer"
</IfModule>

# 디렉터리 리스팅 방지
<Directory /var/www/html>
    Options -Indexes
</Directory>

 

적용 후에는 Apache를 재시작하세요:

sudo systemctl restart apache2    # Ubuntu/Debian
# or
sudo systemctl restart httpd      # CentOS/RHEL

 

 

🧪 2. 보안 진단 스크립트 (apache-security-check.sh)

#!/bin/bash

URL="http://localhost"

echo "▶ Apache 보안 점검 시작 ($URL)"

echo -e "\n[1] TRACE 메서드 허용 여부 확인:"
curl -X TRACE -i $URL | grep HTTP

echo -e "\n[2] ServerTokens 응답 헤더 확인:"
curl -I $URL 2>/dev/null | grep -i Server:

echo -e "\n[3] 오류 페이지 정보 노출 여부 확인 (404 페이지 요청):"
curl -i $URL/this-page-should-not-exist-404.html | grep -i "Apache"

echo -e "\n[4] 디렉터리 리스팅 확인:"
curl -s $URL/ | grep -i "Index of"

echo -e "\n[5] 기타 민감 응답 헤더:"
curl -I $URL 2>/dev/null | egrep -i "X-Powered-By|Set-Cookie|Server"

echo -e "\n✅ 점검 완료. 위 항목들에 민감 정보가 보이면 설정을 강화하세요."

 

#방법1 : 실행
./apache-security-check.sh

#방법2 : 리디렉션으로 결과 저장
./apache-security-check.sh > apache_security_report.txt

#방법3 : 출력도 보고, 동시에 저장 (tee)
./apache-security-check.sh | tee apache_security_report.txt

 

📝 저장된 리포트 예시 미리보기

▶ Apache 보안 점검 시작 (http://localhost)

[1] TRACE 메서드 허용 여부 확인:
HTTP/1.1 405 Method Not Allowed

[2] ServerTokens 응답 헤더 확인:
Server: Apache

[3] 오류 페이지 정보 노출 여부 확인 (404 페이지 요청):

[4] 디렉터리 리스팅 확인:

[5] 기타 민감 응답 헤더:
Server: Apache
X-Powered-By: PHP/8.1.12

✅ 점검 완료. 위 항목들에 민감 정보가 보이면 설정을 강화하세요.

 

반응형