스마트웹앱콘텐츠전문가/웹서버

[modsecurity]아파치 modsecurity 연동

9D4U 2019. 12. 6. 11:41
728x90
반응형

ModSecurity는 

시스템 소프트웨어, 보안,  modsecurity -> Open Source Web Application Firewall. 
웹 서비스를 통해서 공격을 시도하는 XSS, SQL Injection, Command Execute과 같은 공격을
효과적으로 차단하는 역할을 수행하는 보안 모듈이며, Apache HTTP 서버, 마이크로소프트
IIS 및 NGINX에서도 사용 가능 하다고 한다.

[사전 설치]
pcre, apr, apr-util, libxml2, pcre-devel, libxml2-devel, curl-devel

yum install pcre
yum install pcre-*
yum install apr-* apr
yum install libxml2 libxml2-*
yum install curl-devel

[설치]
- 환경 : modsecurity(v2.9.2), apache24(httpd-2.4.41), centos7
1. apache 설치
https://httpd.apache.org/download.cgi#apache24 -> 다운로드 링크 복사 : http://mirror.navercorp.com/apache//httpd/httpd-2.4.41.tar.gz
~]# wget http://mirror.navercorp.com/apache//httpd/httpd-2.4.41.tar.gz
~]# tar xvf httpd-2.4.41.tar.gz 
~]# cd httpd-2.4.41
~]#./configure --prefix=/app/web/apache24 --with-mpm=worker --enable-mods-shared=all
<- 결과에 에러나 정상적인 동작이 진행 안되면,
libc6-dev, g++, gcc 설치해보기

[정상 결과 확인]


~]# make & make install
~]# cd /app/web/apache24 <- 아파치 설치 경로 이동

[아파치 디렉토리 구성]


~]# vi /app/web/apache24/conf/httpd.conf
-> ServerName {hostname} 지정해주기
~]# ./apachectl -t <- 신택스 테스트 하기
~]# ./apachectl start <- 서버 시작
~]# ps -ef | grep httpd
~]# curl localhost

[정상 동작 확인]

2. ModSecurity 모듈 설치
https://www.modsecurity.org/download.html -> 다운로드 링크 복

사 : https://www.modsecurity.org/tarball/2.9.3/modsecurity-2.9.3.tar.gz
~]# wget https://www.modsecurity.org/tarball/2.9.3/modsecurity-2.9.3.tar.gz
~]# tar xvf modsecurity-2.9.3.tar.gz
~]# cd modsecurity-2.9.3 
~]# ./configure --with-apxs=/app/web/apache24/bin/apxs
~]# cp modsecurity.conf-recommended /app/web/apache24/conf/modsecurity.conf
~]# cp unicode.mapping /app/web/apache24/conf/
~]# cd /app/web/apache24/modules/
~]# ls -lart
-> modsecurity 모듈 생성 유무 확인

[생성된 모듈 확인]

3. 아파치, ModSecurity 연동
 3-1. httpd.conf에 해당 모듈 추가
~]# vi /app/web/apache24/conf/httpd.conf  

(mod_security2.so, mod_unique_id.so 추가)

[모듈 추가]


~]# ./apachectl -M | grep security

[추가된 모듈 확인]

4. 룰셋 다운로드 및 적용
- owasp crs 사용
~]# cd /app/web/apache24/
~]# git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
(yum install git)
 4.1 OWASP 룰셋 파일 설정
~]# cd /app/web/apache24/owasp-modsecurity-crs
~]# cp crs-setup.conf.example crs-setup.conf <-파일 복사
~]# echo Include owasp-modsecurity-crs/crs-setup.conf >> /app/web/apache24/conf/httpd.conf   <- httpd.conf 내용 수정
~]# echo Include owasp-modsecurity-crs/rules/*.conf >> /app/web/apache24/conf/httpd.conf     <- httpd.conf 내용 수정
~]# vi /app/web/apache24/owasp-modsecurity-crs/crs-setup.conf

해당 옵션 추가
SecRuleEngine On
SecAuditEngine On
SecAuditLog /app/web/apache24/logs/modsec_audit.log
SecAuditLogParts ABCFHZ
SecDataDir /tmp

~]# cd /app/web/apache24/bin
~]# ./apachectl -t <- 신택스 검사
~]# ./apachectl stop  <- 서비스 중지
~]# ./apachectl start <- 서비스 시작
~]# ps -ef | grep httpd   <- 서비스 정상 동작 확인

6. ModSecurity 로그 확인
~]# cd /app/web/apache24/logs
~]# cat modsec_audit.log

 

[XSS 인젝션 시 로그]

 

728x90