텍스트큐브 메인 사이트가 터져 나가는 일련의 문제 (이런 문제들) 때문에 아침놀님 서버의 더부살이를 끝내고 TNF1 서버로 다시 메인 사이트의 이전준비를 하는 중이다. 매번 서버 준비할 때 마다 설정하는 것들이 많은데, 그 중에서 좀 마이너한 아파치 모듈 하나를 정리해 본다.
mod_limitipconn은 한 IP에서 동시에 접속하는 수를 아파치 서버 설정을 통해 간단하게 제한하는 기능을 가지고 있다. 터져나가는 서버나 DDoS에 대한 간단한 대비에 좋은 모듈이다.
먼저 데비안 시스템에 build-essential 패키지가 설치되어 있어야 한다.
- http://dominia.org/djao/limitipconn2.html 에서 mod_limitipconn 소스 파일을 내려 받는다. mod_limitipconn-0.23.tar.bz2 라는 파일을 받을 수 있다. [CODE]wget http://www.dominia.org/djao/limit/mod_limitipconn-0.23.tar.bz2 [/CODE]
- 압축을 푼다. (bz2 압축이므로 j 옵션을 쓴다.) [CODE]tar xvjf mod_limitipconn-0.23.tar.bz2 [/CODE]
- 디렉토리로 진입한다. [CODE]cd mod_limitipconn-0.23 [/CODE]
- 보통 apxs2가 아파치에 깔려있지 않다. 이 도구는 아파치 개발도구에 들어있다. 아파치 개발 도구를 설치한다. [CODE]sudo apt-get install apache2-dev [/CODE]
- Makefile을 vi 등으로 열어서 (vi Makefile) 현재 버전에 맞게 아래처럼 수정한다. [CODE]APXS=apxs2 APACHECTL=apache2ctl [/CODE]
- DSO를 컴파일해서 만들고 아파치 라이브러리에 설치한다. [CODE]sudo make install [/CODE]
- 아파치의 DSO 로 등록한다. 우선 아파치 디렉토리로 이동한 다음 load 파일을 만든다. [CODE]cd /etc/apache2/mod_available vi limitipconn.load 이후 내용을 LoadModule limitipconn_module /usr/lib/apache2/modules/mod_limitipconn.so 으로 만들고 저장하고 나온다. [/CODE]
- 아파치 서버의 모듈로 등록한다. [CODE]a2enmod limitipconn [/CODE]
- 아파치 서버를 재시작한다. [CODE]sudo /etc/init.d/apache2 restart [/CODE]
설치하고 나면 사이트 파일을 편집하면 된다. 원하는 사이트 정보 하위에 아래의 예제처럼 적으면 된다. (아래는 webhostgear 페이지 에서 소개하는 예이다.)
[CODE]
<Location /mp3>
MaxConnPerIP 1 # In this case, all MIME types other than audio/mpeg and video* # are exempt from the limit check OnlyIPLimit audio/mpeg video [/CODE]
다음에는 spamhaus PHP 확장 설치를 써볼까 싶다.