링크
http://www.modsecurity.org/download/direct.html (203) http://www.superuser.co.kr/home/lecture/index.php?cateNo=2&secNo=13&theNo=38&leccode=10958 (179)공개 웹방화벽 Mod_Security
mod_security란?
mod_security는 웹어플리케이션 방화벽 이다
현재 공격유형을 보면 70%이상이 웹 어플리케이션레벨에서 이루어지고 있으며 이러한
공격으로부터 보다 안전하게 시스템이 유지될 수 있도록 해주는 것이 mod_security이다.
이는 mod_security가 단순 URL 뿐 아니라 GET, POST 값 그리고 HTTP1.1의 스펙을
분석하고 검사할 수 있어 실제 웹상에서 명령어를 치고 들어오는 웹해킹 및 크래킹을
방어하는 모듈이다.
설치 방법
아파치에서 설치하기 위해 가장 간단한 방법은 소스를 컴파일 하는 방법이다.
먼저 컴파일하기에 앞서 소스를 다운받디위해서는 아래 URL의사이트에 방문하여
다운받으면 된다 .
다운 받은후 아래와 같이 컴파일을 하면 된다.
$ /path/to/apache/bin/apxs -cia mod_security.c
# /path/to/apache/bin/apachectl stop
# /path/to/apache/bin/apachectl start
단 윈도우즈에서 운영중이라면 미러 사이트에서 미리 컴파일된 dll을 다운 받으면 된다.
설정에 사용되는 지시어
SecFilterEngine (On|Off) : mod_security에 의한 필터를 시작할지에 대한 지시어
SecFilterScanPOST (On|Off) : POST로 정송되는 데이터에 대한 필터의 사용여부
SecFilterDefaultAction (pass|deny|status|redirect|exec|log|nolog)
이는 필터에 의해 검출이 된 경우 기본적으로 어떻게 처리할지에한 지시이다 .
pass : 검출되어도 필터링 하지 말고 통과
deny : 검출되면 요청 거부 (기본적으로 500에러 리턴)
status : 검출되거나 기타 이벤트발생시 반환할 에러
redirect : 검출되거나 기타 이벤트발생시 리다이렉트 시킴
exec : 검출되거나 기타 이벤트발생시 실행할 CGI
log : 로그를 남김
nolog : 로그를 남기지않음
SecFilterCheckURLEncoding (On|Off) 인코딩된 문자열을 기존의 문자열로 반환
SecFilterDebugLog logs <filename> : 해당 파일명으로 로그남김
SecFilterDebugLevel <log level (int)> :
0으로 설정하면 로그가 남지 않음
1. 치명적인 로그를 남기며
2~3 으로갈수록 자세한 정보를 남김
SecFilter KEYWORD : HTTP요청으로 들어오는 패킷에서 KEYWORD에 해당하는 요청이있으면 검출함
ex) SecFilter “../
SecFilterSelective [VARIABLES] (REGULAR|string)
웹헤더의 특정 필드나 특정아파치 변수의 값을 검출할 수 있음
SecFilterSignatureAction : 다음 해당 지시어가나올때까지 하나의 체인을 구성
해당체인에 대한 필터 액선을 지정할수 있음
실제 사용되는 예제
아래에서 크로스 사이트스크립트를 차단하는 룰을 차단해보겟다
1. <script> 라는 태그를 무력화시킨다.
2. javacript, vbscript의 지시어를 무력화시킨다.
3. 쿠키정보를 열람하는 것을 무력화시킨다.
4. 해당 페이지를 다른 페이지로 리다이렉트 하는 것을 무력화시키다
5. 해당페이지에 스크립트로 다른 소스를 삽입하는 것을 무력화시킨다.
# 해당 지시어가 다시 나올때까지 체인을 구성하며 필터링시 XSS attack이라는
# 로그를 남기며 필터링시 차단을 하라.
SecFilterSignatureAction "log,deny,msg:'XSS attack'"
# 넘어오는 값중에 “<script“라는 문자를 필터링하라
SecFilterSelective ARGS "<script"
# 넘어오는 값중에 "javascript:"문자를 필터링하라
SecFilterSelective ARGS "javascript:"
# 넘어오는 값중에 "vbscript:"문자를 필터링하라
SecFilterSelective ARGS "vbscript:"
# 넘어오는 값중에 "document\.cookie"문자를 필터링하라
SecFilterSelective ARGS "document\.cookie"
# 넘어오는 값중에 "document\.location"문자를 필터링하라
SecFilterSelective ARGS "document\.location"
# 넘어오는 값중에 "document\.write" 문자를 필터링하라
SecFilterSelective ARGS "document\.write"
댓글 6개
<IfModule mod_security.c>
# Enable ModSecurity
SecFilterEngine On
# Reject requests with status 403
SecFilterDefaultAction "deny,log,status:403"
# Some sane defaults
SecFilterScanPOST On
SecFilterCheckURLEncoding On
SecFilterCheckUnicodeEncoding Off
# Accept almost all byte values
SecFilterForceByteRange 1 255
# Server masking is optional
# SecServerSignature "Microsoft-IIS/5.0"
# Designate a directory for temporary files
# storage. It is a good idea to change the
# value below to a private directory, just as
# an additional measure against race conditions
SecUploadDir /tmp
SecUploadKeepFiles Off
# Only record the interesting stuff
SecAuditEngine RelevantOnly
# Uncomment below to record responses with unusual statuses
# SecAuditLogRelevantStatus ^5
SecAuditLog logs/modsec_audit.log
# You normally won't need debug logging
SecFilterDebugLevel 0
SecFilterDebugLog logs/modsec_debug.log
# Only accept request encodings we know how to handle
# we exclude GET requests from this because some (automated)
# clients supply "text/html" as Content-Type
SecFilterSelective REQUEST_METHOD "!^(GET|HEAD)$" chain
SecFilterSelective HTTP_Content-Type "!(^application/x-www-form-urlencoded$|^multipart/form-data;)"
# Do not accept GET or HEAD requests with bodies
SecFilterSelective REQUEST_METHOD "^(GET|HEAD)$" chain
SecFilterSelective HTTP_Content-Length "!^$"
# Require Content-Length to be provided with
# every POST request
SecFilterSelective REQUEST_METHOD "^POST$" chain
SecFilterSelective HTTP_Content-Length "^$"
# Don't accept transfer encodings we know we don't handle
SecFilterSelective HTTP_Transfer-Encoding "!^$"
</IfModule>
게시글 목록
| 번호 | 제목 |
|---|---|
| 12537 | |
| 29323 |
HTML
초보자를 위한 포토샵 강좌 47
|
| 12536 |
JavaScript
초보자를 위한 포토샵 강좌 46
|
| 12535 | |
| 12534 | |
| 12533 | |
| 29322 |
HTML
초보자를 위한 포토샵 강좌 42
|
| 12532 | |
| 12531 | |
| 12530 | |
| 29321 |
HTML
초보자를 위한 포토샵 강좌 38
|
| 12529 |
JavaScript
초보자를 위한 포토샵 강좌 37
|
| 12528 | |
| 12527 | |
| 12526 | |
| 29320 |
HTML
초보자를 위한 포토샵 강좌 33
|
| 12525 |
JavaScript
초보자를 위한 포토샵 강좌 32
|
| 12524 | |
| 12523 | |
| 29319 |
HTML
초보자를 위한 포토샵 강좌 29
|
| 12522 |
JavaScript
초보자를 위한 포토샵 강좌 28
|
| 12521 | |
| 12520 | |
| 12519 | |
| 29318 |
HTML
초보자를 위한 포토샵 강좌 24
|
| 12518 |
JavaScript
초보자를 위한 포토샵 강좌 23
|
| 12517 | |
| 12516 | |
| 29315 |
HTML
레이어 달력...
2
|
| 25032 |
계약서
웹디자인 재택근무계약서
3
|
| 25030 | |
| 25028 |
계약서
매매계약서
1
|
| 25027 | |
| 25026 | |
| 25024 | |
| 25022 | |
| 80 | |
| 29314 |
HTML
초보자를 위한 포토샵 강좌 20
|
| 12515 |
JavaScript
초보자를 위한 포토샵 강좌 19
|
| 12514 | |
| 12513 | |
| 12512 | |
| 29313 |
HTML
초보자를 위한 포토샵 강좌 15
|
| 12511 |
JavaScript
초보자를 위한 포토샵 강좌 14
|
| 12510 | |
| 12509 | |
| 12508 | |
| 12506 | |
| 25021 |
계약서
인터넷업무제휴계약서
|
| 25019 |
계약서
저작권 양도계약서
1
|
| 25017 |
계약서
업무계약서
1
|
| 78 | |
| 12505 | |
| 29311 |
HTML
초보자를 위한 포토샵 강좌 8
1
|
| 12504 |
JavaScript
초보자를 위한 포토샵 강좌 7
|
| 12503 | |
| 12502 | |
| 12501 | |
| 29310 |
HTML
초보자를 위한 포토샵 강좌 3
|
| 12500 |
JavaScript
초보자를 위한 포토샵 강좌 2
|
| 12499 | |
| 12496 |
기타
iconv 활용하기
2
|
| 75 | |
| 12495 |
JavaScript
RED5 Documentation PDF
|
| 12491 |
MySQL
모바일 게시판 ANYBBS PHP 버전
3
|
| 12489 | |
| 73 | |
| 12488 |
기타
부드러운 움직임 2
|
| 12487 |
기타
부드러운 움직임
|
| 71 | |
| 12486 | |
| 12479 |
JavaScript
[펌] 웹방화벽 mod_security 다운로드 및 설정
6
현재글
|
| 29308 | |
| 62 | |
| 12476 |
기타
apache 재시작
2
|
| 12475 |
MySQL
윈도우 Mysql 시동 & 중지 명령어
|
| 12474 |
MySQL
mysql 기본 사용법
|
| 12471 |
MySQL
mysql 기본 사용법
2
|
| 12470 |
MySQL
mysql 버전확인
|
| 12467 | |
| 12465 | |
| 12463 |
MySQL
mysql5 euckr 덤프 옵션
1
|
| 12462 | |
| 12461 |
기타
입체분할 액션스크립트
|
| 61 | |
| 54 | |
| 46 | |
| 12458 | |
| 12456 | |
| 43 | |
| 12455 |
JavaScript
전자계산기 스크립트
|
| 29304 |
HTML
웹페이지 프린트하는 스크립트
3
|
| 29303 |
HTML
자동새로고침
|
| 29302 |
HTML
스타크래프트 로딩 스크립트
|
| 29300 |
HTML
미디어 연주기 소스
1
|
| 12454 |
기타
메일 폼 스크립트
|
| 29299 |
HTML
status바 반짝반짝
|
| 29298 |
HTML
메뉴가 하늘에서 뚝뚝 떨어집니다.
|
| 12453 |
JavaScript
텍스트 이동(물흐르듯이)
|
| 29297 |
HTML
멀티플 시계스크립트
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기