db injection 등 80포트를 통해서 지속적으로 공격이 들어온다면 "웹 방화벽"이 필요하다.
설치 순서는 아래와 같다.
1) yum.repo 설정
-> 문서 참조 :
http://www.7-star.net/bbs/board.php?bo_table=talk_computer&wr_id=725
https://www.oss.kr/info_install/show/1cc9689a-f1bb-4d0d-8ac9-bfb8e3b4313f
일단 yum으로 설치를 하기 전에 저장소를 추가 해야 한다.
2) 설치하기
예전에는 소스를 다운 받아 컴파일을 했는데 요새는 yum 을 통해서 간단하게 설치할 수 있다. 1)에서 저장소를 갱신했다면 아래와 같이 입력만 하면 된다.
yum install mod_security |
제대로 설치하면 아래 파일과 폴더가 생긴다.
- mod_security 설정 파일 : /etc/httpd/conf.d/mod_security.conf
- 규칙 파일 : /etc/httpd/modsecurity.d
- 동작 확인 : /var/log/httpd/modsec_audit.log 로그 확인 (이 파일은 아파치를 다시 실행해야 생성된다 )
3) 규칙 다운 받기 및 업로드
- KISA 기준 룰 : 파일 첨부 및 다운로드(http://jnstory.net/1241). 대부분 저 룰을 쓴다고 한다.
룰을 다운 받아 살짝 수정을 한 후 아래 폴더에 업로드 한다.
/etc/httpd/modsecurity.d/activated_rules
* 일단 2.x 버전용으로 수정한 conf 파일과 KISA 표준 규칙을 첨부했다.
4) 적용 확인
- 브라우저 주소창에 "도메인/etc/passwd" 를 입력했을때 406에러가 발생하면 정상 동작 ( 동작하지 않으면 404 에러 나옴 )
- 예를 들어 http://www.7-star.net/etc/passwd 를 주소창에 입력해 본다. 그러면 406 에러가 뜬다.
SecRequestBodyAccess Off
413 Request Enity too large
does not allow request data with post request, or the amount of data provided in the request excceds the capacity limit
아래 항목을 mod_security.conf 에서 아래 항목을 수정한다.
SecRequestBodyInMemoryLimit
이를테면 아래과 같이.
SecRequestBodyInMemoryLimit 1310720000