본문 바로가기
Webhaking/ModSecurity를 활용한 웹 애플리케이션 방어 레시피

[Modsecurity] ModSecurity 다운로드 및 환경설정

by Y06 2021. 1. 16.

[ Modsecurity 설치 ]

SEEDUbuntu 환경이다.

 

root 계정으로 변경한 후, apt-get install libapache2-modsecurity -y 명령어를 이용하여 modsecurity를 다운받는다.

설치 확인을 하는 방법 중 하나이다. apachectl -M을 이용해 로드된 모듈 목록 중 security가 들어가는 모듈이 있는지 확인한다. 아해와 같이 security2_module (shared)이 뜨면 설치가 제대로 된 것이다.

 

[ Modsecurity 설정 및 룰셋 설정 ]

설치를 끝내고 이제 설정을 시작한다. 제일 먼저, /etc/modsecurity 경로의 파일을 modsecurity.conf 파일로 복사한다.

cp /etc/modsecurity/modsecurity.conf-recommanded /etc/modsecurity/modsecurity.conf 명령어를 사용한다.

 

nano 편집기를 사용하여 복사한 파일을 편집한다.

/etc/modsecurity/modsecurity.conf 설정파일에서 SecRuleEngine DetectionOnly 부분을 아래와 같이 SecRuleEngine On으로 변경한다.

현재까지 변경사항에 문제가 없는지 apache2를 재시작한다.

ModSecurity Core Rule Set (CRS)

IncludeOptional /usr/share/modsecurity-crs/*.conf

IncludeOptional /usr/share/modsecurity-crs/activated_rules/*.conf 를 추가한다.

현재까지 변경사항에 문제가 없는지 apache2를 재시작한다.

ll /usr/share/modsecurity-crs/base_rules/ 명령어를 이용해서 디렉토리로 가면 아래와 같이 기본적으로 제공되는 룰셋 설정파일들이 존재한다.

위 디렉토리에 존재하는 conf 파일 전부를 아래와 같이 /usr/share/modsecurity-crs/activated_rules/ 폴더로 전부 심볼릭 링크를 걸어준다. activated rules 폴더에 설정파일이 존재해야 룰셋을 활성화시킬 수 있다.

(전부 걸 필요없이 필요한 룰셋만 해주어도 된다. 밑에 이미지를 보면 나오지만 나의 경우에도 아파치 재시작 시 특정 conf 파일에서 에러가 발생해서 결국 필요한 것 빼고 삭제했다.)

현재까지 변경사항에 문제가 없는지 apache2를 재시작한다.

설치가 완성되었다.