Always-Try(정보보안 및 일상)

[정보보안기사][실기] 아파치 웹 서버 보안 대책 본문

정보보안 자격증 + ISMS-P

[정보보안기사][실기] 아파치 웹 서버 보안 대책

Always-Try 2021. 9. 29. 00:16

최심차 (최소권한, 심볼릭 링크 제거, 웹서버 정보 차단)

 

 

더보기

참고) 아래 설정은 모두 httpd.conf에서 한다

 

1. 웹 서비스 최소 권한 사용자 운영

  • User apache
    Group apache

 

2. 심볼릭 링크 사용 설정 제거

  • 취약한 설정
    • <Directory/>
          Options FollowSymLinks
  • 안전한 설정 (심볼릭 링크 사용 설정 제거)
    • <Directory/>
          Options None

 

3. 웹 서버 응답 헤더 또는 에러메시지를 통한 웹서버 정보 차단

  • ServerSignature 지시자를 On으로 하면, ServerTokens 설정 값에 따라 다양한 웹 서버 정보를 제공함
Prod (웹 서버 종류 / 권장) Apache
Min (Prod 정보 + 웹 서버 버전) Apache/2.2.15
OS (Min 정보 + 운영체제) Apache/2.2.15 (Fedora)
Full (OS 정보 + 설치된 모듈 정보) Apache/2.2.15 (Fedora) PHP/5.2.13
  • ServerSignature 지시자를 Off으로 하면 웹 서버 정보가 아예 전달되지 않음

 

4. 기타 웹 서버 설정 파일(httpd.conf) 주요 지시자 및 설정

  • ServerAdmin admin@naver.com
    • 에러메시지에 포함될 관리자 메일 주소 설정
  • DocumentRoot "var/www/html"
    • 웹 어플리케이션 자원의 최상위 디렉터리 지정
  • DirectoryIndex index.php index.html
    • 클라이언트가 디렉터리만 명시하여 요청한 경우 이를 처리할 자원 목록을 지정한 파일. 앞에서부터 순서대로 확인
  • Timeout 120
    • 클라이언트와 연결 된 후 클라이언트와 서버 간 아무런 메시지가 발생하지 않을 동안의 대기 시간(클라이언트측, 서버측 응답 모두 없을 경우)
  • KeepAlive On
    • 클라이언트와 서버 프로세스간의 연결을 일정 조건에 따라 지속시킴
    • Connectionless한 통신 방식에 비해 부하가 줄어 웹 서버 통신을 효율적으로 할 수 있으므로 활성화 하는 것을 권고
  • MaxKeepAliveRequests 100
    • KeepAlive 기능 사용 시, 클라이언트와 서버 프로세스 간 연결을 지속시키는 동안 허용할 최대 요청 건수
  • KeepAliveTimeout 15
    • KeepAlive 기능 사용 시, 클라이언트와 서버 프로세스 간 연결을 지속시키는 동안 클라이언트의 마지막 요청 이후 다음 요청을 대기하는 시간
  • RequestReadTimeout header=5 body=10
    • 클라이언트의 요청 메시지의 헤더부와 바디부를 모두 수신하는 시간에 대한 타임아웃 설정
  • ErrorLog logs/error_log
    • 에러 로그 파일 경로 지정
  • CustomLog logs/access_log combined
    • 접속기록을 저장하기 위한 로그 파일의 경로 지정

 

 

 

Comments