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
✅ 점검 완료. 위 항목들에 민감 정보가 보이면 설정을 강화하세요.
반응형