YUM으로 간단히 설치하는 방법
리눅스 서버 : CentOS 6.5
아파치 서버 : 2.2.15
modsecurity : 2.7.3
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uhv epel-release-6-8.noarch.rpm
yum install mod_security
*위의 순서대로 차례로 하시면 페도라 yum 이 설치되고 mod_security가 설치가 됩니다.
*소스 설치를 하게 되면 설정부터 먼가 상당히 복잡한데, yum 으로 설치하면 간단하게 끝이 납니다.
*소스로 설치하기
*먼저 아파치 서비스를 중단합니다.
[root@terminus ~]# service httpd status
httpd is stopped
[root@terminus ~]# /etc/init.d/httpd status
httpd is stopped
*아파치 버전을 확인합니다.
[root@terminus ~]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Dec 8 2011 18:10:49
*ModSecurity는 1.x 버전은 아파치 1.x에서 설치 및 구동이 가능하고 2.x 버전은 아파치 2.x 버전에서 작동이 가능합니다.
*설치에 앞서 아래 개발 툴이 사전에 설치가 되어있어야 합니다.
[root@terminus ~]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
gcc
make
libxml2
libxml2-devel
httpd-devel
pcre-devel
curl-devel
*CentOS 기준 경로 입니다.
/etc/httpd/
conf/
httpd.conf Main configuration file
magic
conf.d/ Subdirectories for specific tasks
manual.conf Should the apache manual be served?
mod_dnssd.conf
nss.conf
php.conf Set up PHP for apache; not the same as php.ini
README
ssl.conf Configure SSL
welcome.conf
logs -> link to /var/log/httpd/
modules -> link to /usr/lib64/httpd/modules/
run -> link to var/run/
/var/log/httpd/
access_log Requests served via http
error_log Errors & problems.
ssl_access_log Requests served via https
ssl_error_log Errors & problems with SSL requests
ssl_request_log Requests served via https with encryption details
/var/www/
cgi-bin/ directory for CGI script
error/ HTTP error messages in multiple languages
html/ Root directory for web
icons/ Collection of public domain icons
manual/ http://localhost/manual
본격적인 설치진행
개발 툴을 설치해줍니다.
## For RHEL/CentOS 6.2/6.1/6/5.8 ##
# yum install gcc make
# yum install libxml2 libxml2-devel httpd-devel pcre-devel curl-devel
모드시큐리티를 다운받아 설치합니다.
## For RHEL/CentOS 6.2/6.1/6/5.8 ##
# cd /usr/src
# wget http://www.modsecurity.org/download/modsecurity-apache_2.6.6.tar.gz
# tar xzf modsecurity-apache_2.6.6.tar.gz
# cd modsecurity-apache_2.6.6
# ./configure
# make install
# cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
*아파치 환경설정 파일을 수정해줍니다.
vi /etc/httpd/conf/httpd.conf
*추가
LoadModule security2_module modules/mod_security2.so
*추가
<IfModule security2_module>
Include conf.d/modsecurity.conf
</IfModule>
*아파치 재시작
# /etc/init.d/httpd restart
모드시큐리티 규칙파일 설정하기
*아래 경로를 통해 모드시큐리티 규칙파일을 다운받습니다.
http://sourceforge.net/projects/mod-security/files/modsecurity-apache/2.6.3/
*압축을 풀어줍니다.
tar -xzvf ./SpiderLabs-owasp-modsecurity-crs-2.2.7-11-g52370fc.tar.gz
*파일을 명칭을 변경합니다.
mv ./SpiderLabs-owasp-modsecurity-crs-52370fc/ /etc/httpd/crs
* 파일을 복사해줍니다.
mv /etc/httpd/crs/modsecurity_crs_10_setup.conf.example /etc/httpd/crs/modsecurity_crs_10_config.conf
*아래에 명렁어들로 파일을 복사합니다.
*순서대로 실행하세요. 경로도 맞춰주셔야 합니다. 아래 예시는 CentOS 기준입니다.
# ln -s /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf activated_rules/modsecurity_crs_10_config.conf
# for f in `ls base_rules/` ; do sudo ln -s /etc/httpd/modsecurity-crs/base_rules/$f activated_rules/$f ; done
# for f in `ls optional_rules/ | grep comment_spam` ; do sudo ln -s /etc/httpd/modsecurity-crs/optional_rules/$f activated_rules/$f ; done
*아파치 환경설정 파일에 추가해줍니다.
테스트 : http://terminus.cosc.tu/?a=string%00 이렇게 접근하면 오류 창이 나올 것 입니다.