반응형

정보보안기사 실기 / Apache 웹 서버 보안 설정 - 애플리케이션 보안

 

Apache 웹 서버의 설정파일은 /etc/httpd/conf/httpd.conf 입니다. 

이번에는 httpd.conf 설정 파일을 알아 보겠습니다. 

 

httpd.conf 세션 설정

보안 설정 내용 예시
ServerRoot - 아파치의 기본 Root 경로  
Timeout - 클라이언트의 요청에 서버가 대기하는 시간을 설정 Timeout 300
MaxKeepAliveRequests - 접속을 허용할 수 있는 최대 횟수 Maxkeepaliverequest 100
KeepAliveTimeout - 클라이언트 최초 요청을 받은 뒤에 다음 요청이 전송될 때까지 대기하는 시간을 설정 KeepAliveTimeout 100
KeepAlive - 접속 연결에 대한 재용청을 허용할 것인지 설정 Keepalive On
Directoryindex - 웹 디렉토리 접근 시 인식되는 인덱스 파일의 순서 지정 DirectoryIndex index.htm index.php
Listem - 사용할 포트 지정 Listen 1120
Servername - 서버의 도메인 지정 Servername zidarn87.tistory.com:1120
DocumentRoot - 웹문서가 위치하는 디렉토리 지정 DocumentRoot "/var/www/html/webadmin"
ServerAdmin - 서버 관리자 이메일 지정  
CustomLog  - 엑세스 로그 파일 위치 지정  
ErrorLog - 에러 로그 파일의 위치 지정  

 

http 접근제어

<Directory />
Order Deny,Allow
Options FollowSymLinks
Deny from All
AllowOverride none
Require all granted
LimitRequestBody 5000000
</Directory>
옵션 내용
Order Deny, Allow - Deny와 Allow의 순서를 정한다. (Deny, Allow or Allow, Deny)
Deny from All - 모든 트래픽을 막는다.
LimitRequestBody 5000000 - 파일 업로드, 다운로드 시 파일 크기를 제한한다.
Options FollowSymLinks - 심볼릭 링크로 설정된 링크 파일의 경로 까지도 확인 할 수 있다.
indexes - indexes 웹서버의 디렉토리 접근 시 지정한 파일이 존재하지 않을 경우에 디렉토리내의 파일목록리스트를 보여준다. 보안을 위해 사용하지 않는 것이 좋다.
AllowOverride - 어떻게 접근을 허락할 것인가에 대한 설정
- 옵션 : None, ALL, AuthConfig, FileInfo, Indexes, Limit, Options

 

관련 문제

17회 다음과 같이 Apache 설정 시 발생할 수 있는 문제점 두가지를 작성하고 대응 방안을 쓰시오.
<Directory />
Options FollowSymLinks
AllowOverride none
Require all granted
</Directory>

<Directory /var/www>
Options indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>

(1) 발생하는 두가지 문제점
1. 디렉터리 리스팅으로 웹 서버 구조 및 중요 파일 노출됨.
2. 상위 디렉터리로 이동하여 악의적인 접근 가능함.

 

(2) 두가지 문제점에 대한 대응방안
1. /var/www 디렉터리의 Options 지시자에서 Indexes 옵션 제거
2. AllowOverride 옵션을 None -> AuthConfig로 변경

 

14회 다음은 리눅스 웹서버인 Apache의 설정파일 중 일부이다. 표시된 설정 내용이 의미하는 바가 무엇인지 설명하시오.
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 100
DirectoryIndex index.htm index.html
CustomLog /www/logs/access_log common

1) KeepAlive 옵션을 켠다. 속도를 개선시킬 수 있으나 동시접속량이 줄어든다.
2) KeepAlive를 유지시키는 시간을 100초로 설정한다.
3) KeepAlive를 허용하는 유저 수를 100명으로 설정한다.
4) 디렉토리로 접근할 경우 index.htm을 먼저 읽고, 없으면 index.html을 읽는다.
5) 로그파일은 /www/logs/access_log 경로에 저장하고, Apache 기본 로그 포맷을 사용한다.

 

 

14회 Apache 웹 서버 보안 설정을 하고자 한다. 환경설정 파일인 httpd.conf 파일에 (1) ~(4) 각각 해당하는 보안 설정을 기술하시오.

 

(1) 서버가 클라이언트로부터 응답을 기다리는 최대시간을 300초로 설정한다.

=> Timeout 300

(2) KeepAlive 상태에서 연결당 처리할 최대요청 처리 건수를 1000으로 한다.

=> MaxKeepAliveRequest 1000

(3) 디렉터리만을 지정했을 경우 그 디렉터리에서 자동으로 보여줄 웹 문서를 index.htm으로 설정하되, index.htm이 없으면 index.php를 보이게 설정한다.

=> DirectoryIndex index.htm index.php

(4) 서버접속 오류메시지를 /user/local/apache/logs/error_msg에 기록한다.

=> ErrorLog logs/user/local/apache/logs/error_msg

 

14회 불필요한 파일 업로드, 다운로드 시에 대량의 업로드, 다운로드로 인한 서비스 불응 상태가 발생할 수 있다. 이를 방지하고자 파일 크기를 5,000,000바이트로 제한하기 위해서 아파치 설정 파일인 httpd.conf 파일을 아래와 같이 수정하고자 한다. 빈칸 (  A  )에 해당하는 지시자를 작성하시오.

<Directory/>
(  A  ) 5000000
</Directory>

=> LimitRequestBody 

 

 

반응형

+ Recent posts