mod_evasive »ç¿ëÇϱâ
http://ehostidc.co.kr/center/EH050402.php?no=2526&page=16&choose=titl¡¦ (431)http://ehostidc.co.kr/cld/EH020201.php?ke=0 (405)
pache2.x Dos 공격막기
shell>wget http://www.zdziarski.com/projects/mod_evasive/mod_...
--15:33:40-- http://www.zdziarski.com/projects/mod_evasive/mod_...
=> `mod_evasive_1.10.1.tar.gz"
Resolving www.zdziarski.com... 209.51.159.242
Connecting to www.zdziarski.com|209.51.159.242|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20,454 (20K) [application/x-tar]
100%[=================================================================================================================>] 20,454 44.55K/s
15:33:41 (44.43 KB/s) - `mod_evasive_1.10.1.tar.gz" saved [20454/20454]
shell>tar xvfz mod_evasive_1.10.1.tar.gz
shell>cd mod_evasive
shell>/usr/local/apache/bin/apxs -iac mod_evasive20.c
/usr/local/apache_2.0.59/build/libtool --silent --mode=compile gcc -prefer-pic -DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache_2.0.59/include -I/usr/local/apache_2.0.59/include -I/usr/local/apache_2.0.59/include -c -o mod_evasive20.lo mod_evasive20.c && touch mod_evasive20.slo
/usr/local/apache_2.0.59/build/libtool --silent --mode=link gcc -o mod_evasive20.la -rpath /usr/local/apache_2.0.59/modules -module -avoid-version mod_evasive20.lo
/usr/local/apache_2.0.59/build/instdso.sh SH_LIBTOOL="/usr/local/apache_2.0.59/build/libtool" mod_evasive20.la /usr/local/apache_2.0.59/modules
/usr/local/apache_2.0.59/build/libtool --mode=install cp mod_evasive20.la /usr/local/apache_2.0.59/modules/
cp .libs/mod_evasive20.so /usr/local/apache_2.0.59/modules/mod_evasive20.so
cp .libs/mod_evasive20.lai /usr/local/apache_2.0.59/modules/mod_evasive20.la
cp .libs/mod_evasive20.a /usr/local/apache_2.0.59/modules/mod_evasive20.a
ranlib /usr/local/apache_2.0.59/modules/mod_evasive20.a
chmod 644 /usr/local/apache_2.0.59/modules/mod_evasive20.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/apache_2.0.59/modules
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apache_2.0.59/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR"
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH" environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH" environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR" linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf"
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache_2.0.59/modules/mod_evasive20.so
[activating module `evasive20" in /usr/local/apache_2.0.59/conf/httpd.conf]
shell>ls /usr/local/apache/modules/
httpd.exp libphp4.so mod_evasive20.so mod_url2.so
설치 후 httpd.conf 파일 안에 다음과 같은 설정을 입력하여 준다.
<IfModule mod_evasive.c>
DOSHashTableSize 3097
DOSPageCount 20
DOSSiteCount 100
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify *******@*******.net
DOSLogDir "/var/lock/mod_evasive"
DOSWhitelist 127.0.0.1
</IfModule>
설정에 대한 설명은 다음과 같다.
1. DOSPageCount: 몇개의 연속 pagehit 에 대해 차단 조치를 할 것인가에 대한 설정.
2. DOSSiteCount: 몇개의 연속 site 접속에 대해 차단 조치를 할 것인가에 대한 설정.
3. DOSPageInterval: pagehit 에 대한 "허용될 연속 접속 사이의 시간 간격"을 (초) 단위로 입력.
4. DOSSiteInterval: site 접속에 대한 "허용될 연속 접속 사이의 시간 간격"을 (초) 단위로 입력.
5. DOSBlockingPeriod: 차단된 호스트가 풀릴 때 까지의 시간을 (초) 단위로 입력.
6. DOSEmailNotify: 공격에 대한 정보를 보낼 메일 주소.
7. DOSLogDir: 로그파일 경로
8. DOSWhitelist: 차단에서 제외될 호스트
필자의 설정을 설명하자면 다음과 같다.
** 동일한 호스트로부터 "1초" 사이에 "20번" 이상의 pagehit 가 이루어질 경우 호스트 차단.
** 동일한 호스트로부터 "1초" 사이에 "100번" 이상의 site 접속 이 이루어질 경우 호스트 차단.
** 차단된 호스트는 10초 동안 차단한다.
** DoS 공격이 이루질 때 *****@*****.net 으로 메일을 보낸다.
** 127.0.0.1 은 차단 조치를 하지 않는다.