modsecurity for apache 2.x Linux

modsecurity for apache 2.x



0. modsecurity 구조
modsecurity

1. pcre,libxml2 설치

[root@localhost ~]$yum -y install libxml2 pcre*
[root@localhost ~]$rpm -qa | grep pcre
pcre-devel-6.6-6.el5_6.1
pcre-6.6-6.el5_6.1
[root@localhost ~]$rpm -qa | grep libxml
libxml2-2.6.26-2.1.21.el5_9.2

2. mod_security 설치(apache 1버전과 apache 2버전에 맞춰 mod_security를 다운 설치 해야함)
 
[root@localhost ~]$cd /usr/src
[root@localhost /usr/src]$wget http://www.modsecurity.org/download/modsecurity-apache_2.1.4.tar.gz
[root@localhost /usr/src/modsecurity-apache_2.1.4]$tar -xzvf modsecurity-apache_2.1.4.tar.gz
[root@localhost /usr/src]$cd modsecurity-apache_2.1.4
[root@localhost /usr/src/modsecurity-apache_2.1.4]$cd apache2/
[root@localhost /usr/src/modsecurity-apache_2.1.4/apache2]$ vi Makefile
   - top_dir = /usr/local/apache로 수정(실제 아파치가 설치된 경로로 변경)
[root@localhost /usr/src/modsecurity-apache_2.1.4/apache2]$make && make install

설치 자체는 완료 되었다. 물리적으로 모듈이 추가 되었는지 확인 한다.

[root@localhost /usr/src/modsecurity-apache_2.1.4/apache2]$ls -al /usr/local/apache/modules/mod_security2.so
-rwxr-xr-x 1 root root 685899  6월  8 02:50 /usr/local/apache/modules/mod_security2.so

아래 링크는 kisa에서 제공하는 룰이다.  아래 링크에서 룰을 다운 받아 오자

http://toolbox.krcert.or.kr/MMBF/MMBFBBS_V.aspx?MENU_CODE=69&BOARD_ID=17&BOARD_NUMBER=4


[root@localhost /usr/src/modsecurity-apache_2.1.4/apache2]$cd /usr/local/apache/conf/
[root@localhost /usr/local/apache/conf]$mv modsecurity_2x_hosting_090311.conf modsecurity.conf
[root@localhost /usr/local/apache/conf]$vi httpd.conf (아래 지시자 추갸)
LoadModule security2_module modules/mod_security2.so
 Include conf/modsecurity.conf

아파치가 정상적으로 재시작 되면 정상적으로 실행 되는것이다.

[root@localhost /usr/local/apache/conf]$/usr/local/apache/bin/apachectl restart

[root@localhost /usr/local/apache/conf]$netstat -nltp | grep 80
tcp        0      0 :::80                       :::*                        LISTEN      18300/httpd  

3. . mod_security test 

-  mod_security 가 정상적으로 작동 하는지 웹쉘을 삽입하여 테스트 한다.
-  mod_security가정상적으로 작동 하여 다음과 같이 페이지가 정상적으로 나오지 않는다.




로그를 확인 하면 더 정확하게 탐지 차단이 되는 것을 확인 할 수 있다.

[root@localhost /usr/local/apache/htdocs]$tail -f /usr/local/apache/logs/modsec_audit.log 

--258c8b33-A--
[08/Jun/2013:03:02:16 +0900] Oy-@DH8AAAEAAEeCILMAAAAE 211.108.61.117 52643 222.239.255.35 80
--258c8b33-B--
GET /r57shell.php HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: ko-KR
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Accept-Encoding: gzip, deflate
Host: 222.239.255.35
DNT: 1
Connection: Keep-Alive
Cookie: f33d2ed86bd82d4c22123c9da444d8ab=MTM2OTk0MzY0Nw%3D%3D; 96b28b766b7e0699aa91c9ff3d890663=aHR0cDovLzIyMi4yMzkuMjU1LjM1L2dudWJvYXJkNC9pbnN0YWxsL2luc3RhbGxfZGIucGhw

--258c8b33-F--
HTTP/1.0 500 Internal Server Error
X-Powered-By: PHP/5.3.19
Content-Length: 0
Connection: close
Content-Type: text/html



Leave Comments