■ 설치 전 선행절차
- Mod_Security 설치를 위해서는 pcre, unique_id, libxml2 가 필요함
1) pcre 설치 ( http://www.pcre.org )
#>./configure --prefix=/usr/local/pcre
#>make
#>make install
2) unique_id 설정(아파치 소스내에 포함)
#> cd /usr/local/apache2/modules/metadata
#> /usr/local/apache2/bin/apxs –cia mod_unique_id.c
3) libxml2 설치 ( ftp://ftp.superuser.co.kr/etc )
#>./configure --prefix=/usr/local/libxml2
#>make
#>make install
#>cd /usr/include
#>ln –s /usr/local/libxml2/lib/libxml2.so.2.7.2 libxml2.so.2
#>ln –s /usr/local/libxml2/lib/libxml2.so.2.7.2 libxml2.so
■ Mod_Security 설치
#>./configure –-with-apxs=/usr/local/apache2/bin/apxs
#>make &&make install
1) httpd.conf에 해당 모듈추가
#>LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so
LoadFile /usr/lib/libxml2.so
2) 차단 샘플룰 적용
- toolbox.krcert.or.kr에서 차단 샘플 룰 다운로드
- httpd.conf 에서 룰셋파일 include
include conf/mod_security.conf
#>vi apache2/conf/mod_security.conf
- pass a deny로 수정하고 아파치 재시작 하면 차단모드 시작
■ 로그 확인
- vi /usr/local/apache2/log/modsec_audit.log
차단 룰 적용시 로그가 쌓이게 된다.
■ 기본 환경설정 및 지시자(mod_seruciry.conf)
1) SecRuleEngine On | Off | DetectionOnly
ModSecurity 기능을 활성화(enable) 시킨다.
o On : ModSecurity 기능 활성화
o Off : ModSecurity 기능 비활성화
o DetectionOnly : 활성화는 하지만 차단하지 않고 탐지만 한다.
2) SecAuditEngine On | Off | RelevantOnly
감사 로깅에 대한 설정을 구성한다.
o On : 모든 트랜젝션 로깅
o Off : 모든 트랜젝션 로깅하지 않음
o RelevantOnly : Error 또는, Warning 의 트랜젝션, 그리고 SecAuditLogRelevantStatus에 정의
된 상태코드와 일치하는 트랜젝션만 로깅
3) SecAuditLog logs/modsec_audit.log
감사 로그 파일의 경로를 정의한다.
예) SecAuditLog /usr/local/apache2/logs/modsec_audit.log
4) SecAuditLogParts
로그 파일에 기록할 항목을 정의한다.
예) SecAuditLogParts ABCFHZ
A audit log header (필수)
B request header
C request body (request body가 존재하고 modsecurity가 request body를 검사하도록
설정되어 있는 경우에만)
D 보류중, response header의 중개 (현재 지원 안 됨)
E response body 중간 단계(현재 modsecurity가 response body를 검사하며 감사로깅 엔진이
이를 저장하게끔 설정되어 있는 경우에만)
F 최종 response header
(마지막 컨텐츠 전달 과정에서 아파치에 의해 매번 추가 되는 날짜와 서버 헤더를 제외한)
G 실제 response body(현재 지원 안됨)
H 감사 로그 트레일러
I 이 옵션은 C를 대체하는 옵션이다. multipart/form-data 인코딩이 사용되었을때를 제외한
모든 경우엔 C와 같은 데이터를 기록한다.
J 보류중, multipart/form-data 인코딩을 사용하는 파일 업로드에 대한 정보를 포함할 때
효과가 있다.
Z 로그의 끝을 의미한다. (필수)
5) SecAuditLogRelevantStatus REGEX]
감사로깅의 목적과 관련된 response 상태코드의 값을 설정한다.
o 매개변수에는 정규표현식이 들어간다.
예) SecAuditLogRelevantStatus ^[45]
6) SecAuditLogType Serial | Concurrent
감사로깅 구조의 타입을 설정한다.
o Serial - 모든 로그는 메인 로그파일에 저장된다. 일시적으로 편리할 순 있지만 하나의
파일에만 기록되기 때문에 느려질 수 있다.
o Concurrent - 로그가 각 트랜잭션 별로 나누어 저장된다. 이 방식은 로그파일을
원격 ModSecurity Console host로 보낼 때 사용하는 방식이다.
7) SecDefaultAction "log, auditlog, deny, status:403, phase:2, t:lowercase"
룰이 매칭되면 기본적으로 취할 행동을 정의한다 룰이 특정 액션들에 대한 개별 룰을
적용하거나 다른 SecDefaultAction이 정의되어있지 않다면 최초 지정된 SecDefaultAction의 설정을 따른다. 위의 예는 룰이매칭 되었을 때 차단하며 로그를 남기고, 403 상태코드 페이페이지를 보여주며 필터링 단계는 “2”이다. 기본적으로 대문자는모두 소문자로 바뀌어 필터링 된다.
8) SecRequestBodyAccess On | Off
Request 값에서 Body 부분에 대한 처리를 어떻게 할 것인지 구성한다.
o On : RequestBody 접근을 시도한다.
o Off : RequestBody 접근시도를 하지 않는다.
이 지시자는 Request 값에서의 POST_PAYLOAD를 검사할 때 필요하다. POST값을 필터링하기 위해서는 phase:2와REQUESET_BODY 변수/로케이션, 3가지가 모두 구성되어야만 처리가 가능
9) SecReponseBodyAccess On | Off
Response 값에서 Body 부분에 대한 처리를 어떻게 할 것인지 구성한다.
o On : ResponseBody 접근을 시도한다. (그러나 MIME 타입과 일치해야만 한다.)
o Off : ResponseBody 접근시도를 하지 않는다.
이 지시자는 html 응답을 조사하기 위해 필요하다. "phase:4"의 처리 단계와 RESPONSE_BODY 변수/로케이션, 3가지가 설정되어 있지 않으면, response body를 검사할 수 없다.
10) SecResponseBodyLimit
ModSecurity가 Response Body 크기로 할당할 수 있는 메모리 최대 크기를 설정한다.
o SecRequestBodyLimit 524228
이 값을 넘어가면 서버는 500 내부 서버 오류 메시지만 표시할 것이다.
11) SecReponseBodyMimeType mime/type
Response 값에서 Body 값을 버퍼링할 MIME 타입을 설정한다.
o SecResponseBodyMimeType text/plain text/html // 기본값
Mime 타입은 복수로 추가할 수 있다.
12) SecReponseBodyMimeTypesClear
ResponseBody의 버퍼링을 위해 Mime 타입의 목록을 지우며, 처음에 위치시킨다.
o SecResponseBodyMimeType
'기술자료 > 기술운영자료' 카테고리의 다른 글
Windows Server 8 Beta 설치기 (0) | 2016.03.20 |
---|---|
윈도우 서버 세션 초과로 터미널 접속이 안될때 세션 끊는 방법 (0) | 2016.03.20 |
windows 2008 DFS 설정 (0) | 2016.03.20 |
리눅스 네트워크 본딩... (0) | 2016.03.20 |
dovecot 서비스 시작이 되지 않을때 (0) | 2016.03.20 |