SQL > MYSQL - Tip&Tech > apache 웹방화벽 modsecurity용 웹설정 툴, Remo
 
SQL
MYSQL
MS-SQL
ORACLE
 
 
MYSQL - Tip&Tech
  HOME > SQL > MYSQL - Tip&Tech
 
작성일 : 17-08-11 13:16
apache 웹방화벽 modsecurity용 웹설정 툴, Remo
 글쓴이 : 덩벙이 (211.♡.155.10)
조회 : 75   추천 : 0   비추천 : 0  
ModSecurity 는 아파치(apache)에서 사용하는 대표적인 웹방화벽 모듈이다. 아파치에 모듈을 설치하고, 룰(Rule) 설정을 통해 설정한 조건에 맞는 경우 차단을 할 수 있다. modsecurity 2.x 을 기준으로한 간단한 예이다.

- 웹서버명을 숨기거나 속인다.

SecServerSignature "lighttpd"

- 특정 메소드의 사용만 허용한다. (POST, GET, OPTIONS, HEAD 메소드만 허용)

SecRule REQUEST_METHOD "!^((?:(?:POS|GE)T|OPTIONS|HEAD))$" \
    "phase:1,log,auditlog,status:501,msg:'Method is not allowed by policy', severity:'2',,id:'960032',"

- 요청한 HTTP 프로토콜 버전이 1.0, 1.1이 아닐 경우 차단한다.

SecRule REQUEST_PROTOCOL "!^HTTP/(1\.[01])$" \
    "t:none, deny,log,auditlog,status:505,msg:'HTTP protocol version is not allowed by policy', severity:'2',,id:'960034',"

- GET, HEAD 메소드는 Content-Length가 0이 아닌 경우는 차단하고, POST는 Content-Length header가 없으면 차단한다.

SecRule REQUEST_METHOD "^(GET|HEAD)$" "chain,deny,log,auditlog,status:400,msg:'GET or HEAD requests with bodies', severity:'2',,id:'960011',"
SecRule REQUEST_HEADERS:Content-Length "!^0?$"

SecRule REQUEST_METHOD "^POST$" "chain,deny,log,auditlog,status:400,msg:'POST request must have a Content-Length header',,id:'960012',severity:'4'"
SecRule &REQUEST_HEADERS:Content-Length "@eq 0"

오픈소스 IDS인 snort에 기본 룰을 제공하는 것처럼 ModSecurity 에서도 modsecurity-core-rules 이름으로 룰 파일을 제공하고 있으니 참고하기 바란다. 룰에 대해서는 이만하고 원래 꺼내려한 얘기거리로 들어가자.

이런 룰 설정을 웹페이지를 통해서 할 수 있는 REMO(Rule Editor for ModSecurity) beta버전을 6월에 발표했고, Howtoforge에 Introducing Remo - An Easy Way to Secure an Insecure Online Application with ModSecurity 제목으로 REMO 다루는 방법에 대한 글이 올라왔다. 자세한 글은 Howtoforge에 글을 보시고, 간단하게 설명하면 이렇다.

REMO를 사용하기 위해서는 ruby 1.8.2이상, irb, sqlite3-ruby 환경이 필요하다. 또한 ModSecurity 모듈이 설치되지 않은 테스트나 개발 서버, 개인 PC 등에 설치해도 무관하다. 다음과 같이 실행한 후 http://서버:3000/main/index 로 접속하면 설정화면을 볼 수 있다.

wget http://remo.netnea.com/files/remo-0.2.0.tar.gz
tar xvzf remo-0.2.0.tar.gz
cd remo-0.2.0
ruby script/server

사용자 삽입 이미지
[ 이미지 출처 : 위 howtoforge URL ]

REMO화면에서 메소드와 URI등을 새로 입력한 다음, 원하는 조건을 정의한다. 그 후 'generate' 버튼을 누르면 파일로 룰셋 파일을 다운로드 받을 수 있다. 받은 룰셋을 다음과 같이 apache 설정에서 include해주면 된다.

<IfModule mod_security2.c>
    Include /파일경로/rulefile.conf
</IfModule>

REMO툴은 ModSecurity 룰 생성의 모든 것을 제공해주지는 않는다. modsecurity-core-rules 룰 파일을 보면 룰 설정이 쉽지않다는 것을 알 수 있다. 이 툴은 이런 복잡한 룰을 보고 고개를 설레설레 젓지 않도록 보조적인 역할을 하는 툴로 여기면 된다

출처: http://truefeel.tistory.com/64 [좋은진호의 여유만만]

 
 

Total 48
번호 제   목 글쓴이 날짜 추천 비추천 조회
48 myql 버전차이로 콘솔외부접속 pre-4.1.1 에러발생시 덩벙이 07-05 0 0 19
47 MySQL 5.x 버전에 복구시 TYPE=MyISAM Error 해결 방법 덩벙이 07-03 0 0 15
46 modsecurity 설치 방법!! (2) 덩벙이 08-11 0 0 72
45    modsecurity 설치 방법!! <apache 기반> 덩벙이 08-11 0 0 75
44    modsecurity 설치 방법!! 덩벙이 08-11 0 0 75
43    modsecurity 설치 방법!! 덩벙이 08-11 0 0 77
42    modsecurity 설치 방법!! 덩벙이 08-11 0 0 73
41    modsecurity 설치 방법!! 덩벙이 08-11 0 0 72
40 apache 웹방화벽 modsecurity용 웹설정 툴, Remo 덩벙이 08-11 0 0 76
39 [리눅스/유닉스] MySQL Proxy를 사용한 간단한 데이터베이스 로… 덩벙이 08-11 0 0 76
38 [Mysql] 프로시저 사용 예 덩벙이 08-09 0 0 81
37 MySQL 프로시져(PROCEDURE) 활용 샘플 소스 코드 덩벙이 08-09 0 0 72
36 mysqldump 시 압축해서 덤프 받는 방법 덩벙이 07-04 0 0 80
35 Too many open files 에러 처리 덩벙이 07-04 0 0 75
34 MySQL 런타임 상태 보기 덩벙이 07-04 0 0 74
33 MySQL 대소문자 구분하기 덩벙이 07-04 0 0 72
32 MySQL Too many open files 에러 처리 방법 출처: http://blog.… 덩벙이 07-04 0 0 83
31 PHP mysqldump 받아서 다운로드 하는 방법 덩벙이 07-04 0 0 79
30 PHP mysqldump 로 테이블 백업 받는 방법 덩벙이 07-04 0 0 81
29 MySQL 주별 통계 쿼리시 주의할 점 덩벙이 07-04 0 0 84
 1  2  3  
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.