메뉴 닫기

아파치 mod_security 설치하기

ModSecurity-logo

아파치를 이용하여 웹서비스를 하는데 보안에 유용하게 사용될수있는 mod_security 설치입니다.

구글링을하면기존에 CentOS 5버전은 자세하게 정리가되어있는 사이트들이 있으나,  

CentOS6 버전 / apache2.4버전의 경우 상세하게 정리되어있는곳이 거의 없기에 정리를 해보았습니다.

 

mod_security
웹 방화벽으로 Apache에 적용하여 XSS, SQL Injection, Command Execute과 같은 공격을 효과적으로 보안해주는 Apache모듈입니다.
 
설치 환경
CentOS release 6.5 (Final) x86_64
Server version: Apache/2.4.3 (Unix)
 
설치 조건
Mod_security를 적용하기 위해선 pcre 모듈과 mod_security 두 가지 모듈이 필요함.
설치되어있는 Apache의 apr,apu 필요.
 
 
PCRE 설치
# cd /usr/local/src      // 설치 파일 저장할 경로로 이동
# tar zxvf pcre-8.00.tar.gz
# cd pcre-8.00
# ./configure -prefix=/usr/local/pcre
# make
# make install
 
=================================== 참고 ========================================
 
Apache apr 설치
apr-1.4.6.tar.gz 다운로드
# tar zxvf apr-1.4.6.tar.gz
# cd apr-1.4.6
# ./configure –prefix=/usr/local/apr
 
*만약 libtoolT 파일은 찾을 수 없다는 오류 발생시 아래 명령을 입력
(rm: cannot remove `libtoolT’: No such file or directory)
# cp -arp libtool libtoolT
다시 configure 진행
 
# make
# make install
 
 
Apache apu 설치
apr-util-1.5.4.tar.gz 다운로드
# tar zxvf apr-util-1.5.4.tar.gz
# cd apr-util-1.5.4
# ./configure –with-apr=/usr/local/apr
# make
# make install 
 
==============================================================================
 
 
Mod_Security 설치
# cd /usr/local/src      // 설치 파일 저장할 경로로 이동
 
# wget https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz    // 2.5.11은 make 시 에러 발생
# tar zxvf modsecurity-2.9.1.tar.gz 
# cd modsecurity-2.9.1
# cd apache2/
# ./configure –with-apxs=/usr/local/apache/bin/apxs –with-pcre=/usr/local/pcre –with-apr=/usr/local/apache/bin/apr-1-config –with-apu=/usr/local/apache/bin/apu-1-config
 
###### ./configure –with-apxs=/usr/local/apache/bin/apxs –with-pcre=/usr/local/pcre –with-apr=/usr/local/apr/bin/apr-1-config –with-apu=/usr/local/apr/bin/apu-1-config   // apr, apu를 따로 설치할경우 
 
# make
# make install 
 
설치 완료
 
# cd /usr/local/apache/modules/
# chmod 755 mod_security2.so 
 
 
mod_security 적용
 
Apache 설정 파일 수정
# vi /usr/local/apache/conf/httpd.conf
LoadModule security2_module modules/mod_security2.so
<IfModule mod_security.c>
Include conf/mod_security.conf
</IfModule>
Include /usr/local/apache/conf/mod_security.conf
 
 
이후 아파치 재시작
 
적용확인
 
아파치 에러로그를 tail 명령어로 확인하는중 http://도메인/etc/passwd 을 입력하여 에러로그확인
웹에서 http://도메인/etc/passwd입력시 406 에러로 돌아가고 에러로그에 룰셋에러나 에러가 발생하지 않는다면 적용완료
룰셋에러의 경우 소스코드 수정 및 mod_security.conf 파일의 해당라인을 주석처리하면 해결됨
 
 
적용확인중 에러사항해결
[Fri Sep 24 08:42:36 2010] [error] ModSecurity: ModSecurity requires mod_unique_id to be installed.
 
위와같은 에러 발생시  mod_unique_id.c 를 설치하여 해결
 
/usr/local/apache/bin/apxs -cia /usr/local/src/apache-2.2.14/module/metadata//mod_unique_id.c
service httpd restart
 
 
룰 다운로드
Rule Download URL
 
-zip파일의 룰 종류 설명-
ModSecurity_1x_hosting_090311.conf – 1.9.x 버전 호스팅업체용
ModSecurity_1x_SMB_090311.conf – 1.9.x 버전 중소기업용
ModSecurity_2x_hosting_09311.conf – 2.x 버전 호스팅업체용
ModSecurity_2x_SMB_09311.conf – 2.x 버전 중소기업용
 
 
룰의경우 난 기존에 사용중인 룰을 적용해야 했기에 다른룰을 적용하였으며
위 룰은 기본룰로 생각하고 적용하면 될듯합니다.
 

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다