테스트 환경 = CentOS 7 - Apache/2.4.6 (CentOS)
- 웹 서버는 공개 소프트웨어로 누구나 쉽게 설치해서 사용
- 웹 브라우저와 세션을 관리하고 웹브라우저에서 전송하는 HTTP Request 메시지를 해석하고 실행한 후 HTML 형태로 HTTP Response를 보내는 것
설정 파일 위치 = /etc/httpd/conf/httpd.conf
ServerRoot 접근 권한
chown 0 . bin conf logs
chgrp 0 . bin conf logs
chmod 755 . bin conf logs
실행 파일 권한 변경
chmod 511 /usr/local/httpd/bin/httpd
아파치 설치 시 기본적으로 설치되는 cgi-bin은 공격에 이용될 수 있으므로 삭제
매뉴얼 파일은 시스템에 대한 정보를 제공할 수 있어서 공격에 도움이 될 수 있으므로 삭제
/var/www/manual 및 /var/www/cgi_bin 삭제
index.html이 없거나 Listing을 보여주는 옵션이 indexes에 설정되어 있는 경우 웹 페이지의 디렉터리가 보임
Indexes 제거 후 확인
심볼릭 링크를 이용해서 파일 시스템에 접근하여 Root 권한을 획득할 수 있으므로 FollowSymLink를 제거
etc에 심볼릭링크 설정
FollowSymLinks 제거 후 확인
우선순위를 결정
웹 서버 정보를 얼마나 보여주는지를 설정
- Prod : 웹서버의 이름만 알려준다. (Apache)
- Major : 웹서버의 이름과 Major 버전번호만 알려준다. (Apache2)
- Minor : 웹서버의 이름과 Minor 버전까지 알려준다. (Apache2.4)
- Min : 웹서버 이름과 Minimum 버전까지 알려준다. (Apache2.4.6)
- OS : 웹서버의 이름과 버전, OS 정보를 알려준다. (Apache2.4.6 (Unix))
- Full : 최대한의 정보를 모두 알려준다. (Apache2.4.6 (Unix) Resin/4.x.x)
웹서버의 버전정보를 웹 브라우저에 노출 여부를 정의
권장
ServerTokens Prod
ServerSignature off
Order : Deny와 Allow 의 순서 지정
(Allow,Deny 또는 Deny,Allow)
Listen 8080
- 포트 지정
Servername newwar.com:8080
- 서버의 도메인 지정
DocumentRoot "/var/www/html"
- 웹 문서가 위치하는 디렉토리 지정
SeverAdmin me@gmail.com
- 서버 관리자 이메일 입력
timeout 300
Keepalive On
maxkeepaliverequest 100
Can Do It
brb