7/08/2009
rkhunter
해킹 여부를 알려줍니다. 일종의 PC의 백신 같은 역할을 하는데 치료는 직접해야 합니다. 지속적인 업데이틀 통해 리눅스 바이러스를 체크해 줍니다.
- 설치
다음에서 최신 버젼을 다운로드 받습니다.
http://www.rootkit.nl/projects/rootkit_hunter.html
설치를 하고 나서 실행을 해 봅니다.
rkhunter -c -sk
에러들이 나오고 마지막에 결과가 정리되어 나옵니다.
Possible infected의 숫자가 0이 아닌 것이 나오면 바이러스에 걸린 것이니 로그를 보고 해당 부분에 대한 조치(주로 삭제)를 취해야 합니다.
로그
/tmp/rkhunter.log
업데이트
rkhunter --update
bin이나 sbin 등의 유틸리티의 경우는 동일한 OS의 서버에서 복사해 오면 복구가 가능합니다.
삭제를 했는데 권한이 없다고 나오면
chattr -isa 해당 파일
clamv
rkhunter가 시스템 rootkit 위주로 검사를 하는 반면 clamav는 PC의 바이러스처럼 전체 파일을 검사해서 바이러스 유무를 알려 줍니다.
- 설치
yum -y install clamav*
사용 방법
clamscan -ri /home >/root/clamscan.log 2>&1
home을 검색해서 clamscan.log에 결과를 저장합니다.
저장된 내용을 보고 바이러스를 제거 합니다.
업데이트가 필요하면 다음을 실행합니다.
/usr/bin/freshclam --quiet --no-warnings
바이러스가 많을 경우 일일이 찾아서 삭제하기 어려우니 다음 코드로 virusrm.php 같은 식으로 만들어 실행을 하면 로그 파일을 읽어서 자동으로 삭제해 줍니다.
$filename = "clamscan.log";
$fp = fopen($filename, "rb") or die("fopen failed");
while(!feof($fp)) {
$fileStr = fgets($fp, 1024);
if ( strstr($fileStr,"home")) {
$query = explode(": ",$fileStr);
$query = $query[0];
$check = system("rm -rvf $query");
echo "rm $query";
}
}
$filename = "clamscan4.log";
$fp = fopen($filename, "rb") or die("fopen failed");
while(!feof($fp)) {
$fileStr = fgets($fp, 1024);
if ( strstr($fileStr,"home")) {
$query = explode(": ",$fileStr);
$query = $query[0];
$check = system("rm -rvf $query");
echo "rm $query";
}
}
fclose($fp) or die("fclose failed");
?>
- 설치
yum -y install clamav*
사용 방법
clamscan -ri /home >/root/clamscan.log 2>&1
home을 검색해서 clamscan.log에 결과를 저장합니다.
저장된 내용을 보고 바이러스를 제거 합니다.
업데이트가 필요하면 다음을 실행합니다.
/usr/bin/freshclam --quiet --no-warnings
바이러스가 많을 경우 일일이 찾아서 삭제하기 어려우니 다음 코드로 virusrm.php 같은 식으로 만들어 실행을 하면 로그 파일을 읽어서 자동으로 삭제해 줍니다.
$filename = "clamscan.log";
$fp = fopen($filename, "rb") or die("fopen failed");
while(!feof($fp)) {
$fileStr = fgets($fp, 1024);
if ( strstr($fileStr,"home")) {
$query = explode(": ",$fileStr);
$query = $query[0];
$check = system("rm -rvf $query");
echo "rm $query";
}
}
$filename = "clamscan4.log";
$fp = fopen($filename, "rb") or die("fopen failed");
while(!feof($fp)) {
$fileStr = fgets($fp, 1024);
if ( strstr($fileStr,"home")) {
$query = explode(": ",$fileStr);
$query = $query[0];
$check = system("rm -rvf $query");
echo "rm $query";
}
}
fclose($fp) or die("fclose failed");
?>
vnstat
네트워크 트래픽 모니터링이 가능한 도구이다.
보통 webalizer를 많이 사용하는데 이게 더 사용하기가 편한거 같다.
파일다운로드(다운로드가 안되면 제작사홈페이지에서 직접다운받기 바란다.)
#wget http://humdi.net/vnstat/vnstat-1.7.tar.gz
압축풀기
#tar zxvf vnstat-1.7.tar.gz
#cd vnstat-1.7
gcc 라이브러리 필수설치
#yum install gcc
./configure가 필요없으며, make 만으로 프로그램을 설치한다.
#make && make install
데이타베이스 생성(사용할 인터페이스 지정)
#vnstat -u -i eth0
Error: Unable to read database "/var/lib/vnstat/eth0". 처음에 실행시 나오는데 그냥무시
설정파일 수정(인터페이스 및 기타수정)
#vi /etc/vnstat.conf
데몬으로 실행(php로 모니터링할때는 필요사항아님.)
#vnstatd -d
쉘상에서 리포트보기
#vnstat -h
뭐가 잘못된것지 전송량이 정확히 안맞는거 같다. 약간의 오차는 있는듯.
자세한 내용은 제작사 홈페이지 참고
http://humdi.net/vnstat/
php 보고서는 아래사이트 참고
http://www.sqweek.com/sqweek/index.php?p=1
php로 보고서 보기
다운로드
#wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.4.1.tar.gz
압축풀고 폴더명 변경, 아파치 디렉토리로 이동.
#tar zxvf vnstat_php_frontend-1.4.1.tar.gz
#mv vnstat_php_frontend-1.4.1 vnstat
#mv vnstat_php_frontend-1.4.1 /home/test/www
config.php 수정
#vi /home/test/www/vnstat/config.php
필요없는 부분 삭제
$iface_list = array('eth0', 'eth1', 'sixxs');
$iface_title['eth1'] = 'Internet';
디렉토리 수정
$vnstat_bin = '/usr/bin/vnstat';
크론탭에 매5분마다 업데이트 작업 등록
#crontab -e
*/5 * * * * vnstat -u -i eth1
확인은 도메인/vnstat/ 으로 접속
익스플로러에서는 이미지가 표시되지 않음. 파이어폭스나 사파리는 잘나옴.
보통 webalizer를 많이 사용하는데 이게 더 사용하기가 편한거 같다.
파일다운로드(다운로드가 안되면 제작사홈페이지에서 직접다운받기 바란다.)
#wget http://humdi.net/vnstat/vnstat-1.7.tar.gz
압축풀기
#tar zxvf vnstat-1.7.tar.gz
#cd vnstat-1.7
gcc 라이브러리 필수설치
#yum install gcc
./configure가 필요없으며, make 만으로 프로그램을 설치한다.
#make && make install
데이타베이스 생성(사용할 인터페이스 지정)
#vnstat -u -i eth0
Error: Unable to read database "/var/lib/vnstat/eth0". 처음에 실행시 나오는데 그냥무시
설정파일 수정(인터페이스 및 기타수정)
#vi /etc/vnstat.conf
데몬으로 실행(php로 모니터링할때는 필요사항아님.)
#vnstatd -d
쉘상에서 리포트보기
#vnstat -h
뭐가 잘못된것지 전송량이 정확히 안맞는거 같다. 약간의 오차는 있는듯.
자세한 내용은 제작사 홈페이지 참고
http://humdi.net/vnstat/
php 보고서는 아래사이트 참고
http://www.sqweek.com/sqweek/index.php?p=1
php로 보고서 보기
다운로드
#wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.4.1.tar.gz
압축풀고 폴더명 변경, 아파치 디렉토리로 이동.
#tar zxvf vnstat_php_frontend-1.4.1.tar.gz
#mv vnstat_php_frontend-1.4.1 vnstat
#mv vnstat_php_frontend-1.4.1 /home/test/www
config.php 수정
#vi /home/test/www/vnstat/config.php
필요없는 부분 삭제
$iface_list = array('eth0', 'eth1', 'sixxs');
$iface_title['eth1'] = 'Internet';
디렉토리 수정
$vnstat_bin = '/usr/bin/vnstat';
크론탭에 매5분마다 업데이트 작업 등록
#crontab -e
*/5 * * * * vnstat -u -i eth1
확인은 도메인/vnstat/ 으로 접속
익스플로러에서는 이미지가 표시되지 않음. 파이어폭스나 사파리는 잘나옴.
7/01/2009
6/25/2009
dns 설정중..
nslookup
> kyen.com
servfail......
이런 경우 zone file 의 그룹 권한을 named 로 주자...
chgrp named [zonefilename.zone]
named restart
OK/OK
nslookup
> kyen.com
잘 된다 ..ㅠㅡㅠ
이걸 전혀 생각도 못하고 있었네.. 권한?
안습;;
6/22/2009
mod_cband
Apache 2.x 의 대역폭 컨트롤 모듈인 mod_cband ...
!!!cband는 apache 2 모듈이다. apache 1.3.XX용이아니며 1.3.XX는 mod_throttle을 사용하세요!!
-------------------------------------------------------------
[주요기능]
* Apache2용 가볍운 트래픽제한 모듈
* 사용자별 대역폭제한 기능
* 가상호스트별 대역폭 제한 기능
* 목적지별 대역폭 제한 기능
* 제한기능:
o 모든사용자 대역폭 제한
o 다운로드 속제 제한
o 초당요청수 제한
o 아이피대역별 제한
* Support for virtualhosts
* Support for defined users
* 제한결과 웹을 통한 확인 (/cband-status)
* 각 사용자별 제한 결과 확인(/cband-status-me)
* Apache2용 가볍운 트래픽제한 모듈
* 사용자별 대역폭제한 기능
* 가상호스트별 대역폭 제한 기능
* 목적지별 대역폭 제한 기능
* 제한기능:
o 모든사용자 대역폭 제한
o 다운로드 속제 제한
o 초당요청수 제한
o 아이피대역별 제한
* Support for virtualhosts
* Support for defined users
* 제한결과 웹을 통한 확인 (/cband-status)
* 각 사용자별 제한 결과 확인(/cband-status-me)
-------------------------------------------------------------
$ wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz
$ tar xzvf mod-cband-0.9.7.5.tgz
$ cd mod-cband-0.9.7.5
$ ./configure --with-apxs=/usr/local/apache2/bin/apxs
$ make
$ make install
# make install
/usr/local/apache2/bin/apxs -Wc,-Wall -Wc,-DDST_CLASS=3 -i -a -n cband src/mod_cband.la
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' src/mod_cband.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp src/mod_cband.la /usr/local/apache2/modules/
cp src/.libs/mod_cband.so /usr/local/apache2/modules/mod_cband.so
cp src/.libs/mod_cband.lai /usr/local/apache2/modules/mod_cband.la
cp src/.libs/mod_cband.a /usr/local/apache2/modules/mod_cband.a
chmod 644 /usr/local/apache2/modules/mod_cband.a
ranlib /usr/local/apache2/modules/mod_cband.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/apache2/modules
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apache2/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/apache2/modules/mod_cband.so
[activating module `cband' in /usr/local/apache2/conf/httpd.conf]
● 설치 확인
- httpd.conf 파일에
LoadModulecband_module modules/mod_cband.so
줄이 추가된것을 볼 수 있습니다.
- 아파치/modules 디렉토리에
mod_cband.so
파일이 추가 된 것을 볼수 있습니다.
LoadModulecband_module modules/mod_cband.so
줄이 추가된것을 볼 수 있습니다.
- 아파치/modules 디렉토리에
mod_cband.so
파일이 추가 된 것을 볼수 있습니다.
<IfModule mod_cband.c>
CBandSpeed 12Mbps 0 0
CBandRemoteSpeed 800kbps 0 0
<Location /cband-status>
SetHandler cband-status
Order Deny,Allow
Deny from
Allow from All
</Location>
<Location /cband-status-me>
SetHandler cband-status-me
Order Deny,Allow
Deny from
Allow from All
</Location>
</IfModule>
<VirtualHost *>
ServerName gnux.co.kr
Document /home/gnux/www
CBandLimit 300Mi
CBandPeriod 1D
CBandExceededURL http://manager.gnux.co.kr/traffic_exceeded.html
</VirtualHost>
위 설정파일은 gnux.co.kr 도메인에
하루에 300M(300*1024*1024byte)의 트래픽을 제공하는 설정입니다.
bit로 따지면, 2.4Gbit/일 트래픽을 제공하는 것입니다.
만약 하루에 300M를 초과했다면, "http://manager.gnux.co.kr/traffic_exceeded.html"
페이지가 뜨며, 지정하지 않았다면, 503 에러 페이지가 뜨게됩니다.
만약!. 제한을 하지 않고 관찰만 하려 한다면, CBandPeriod 부분만 남기고 삭제합니다.
하루에 300M(300*1024*1024byte)의 트래픽을 제공하는 설정입니다.
bit로 따지면, 2.4Gbit/일 트래픽을 제공하는 것입니다.
만약 하루에 300M를 초과했다면, "http://manager.gnux.co.kr/traffic_exceeded.html"
페이지가 뜨며, 지정하지 않았다면, 503 에러 페이지가 뜨게됩니다.
만약!. 제한을 하지 않고 관찰만 하려 한다면, CBandPeriod 부분만 남기고 삭제합니다.
2) 사용자 일트래픽 제공 및 초과시 연결수 제한.
==============================
<VirtualHost *>
ServerName doly.gnux.co.kr
Document /home/gnux/doly
CBandLimit 100Mi
CBandExceededSpeed 128 5 15
CBandPeriod 1D
</VirtualHost>
==============================
위 설정은 doly.gnux.co.kr도메인에 대해
하루에 100Mbyte의 트레픽을 제공하며,
100M를 초가했다면,
속도를 128bps로 제한, 초당 5번의 연결,
동시접속자를 15로 제한하는 예제입니다.
3) 한 사용자에 여러 도메인이 있다면?
==============================
<CBandUser host_user1>
CBandUserLimit 100Mi
CBandUserPeriod 1D
</CBandUser>
<VirtualHost *>
ServerName aaa.co.kr
Document /home/host_user1/aaa
CBandUser host_user1
</VirtualHost>
<VirtualHost *>
ServerName bbb.co.kr
Document /home/host_user1/bbb
CBandUser host_user1
</VirtualHost>
==============================
위 설정은 host_user1이라는 가상 사용자를 지정한다음.
그 사용자는 하루에 100Mbyte를 사용할수 있게합니다.
그런다음, aaa.co.kr, bbb.co.kr 모두 host_user1의
트래픽을 사용하게 설정하였습니다.
4) IP대역에 따라 속도를 제한하고 싶다면?
==============================================
<CBandClass class_1>
CBandClassDst 192.168.0.0/24
</CBandClass>
<CBandClass class_2>
CBandClassDst 222.97.189.0/24
</CBandClass>
<VirtualHost *>
ServerName intranet.gnux.co.kr
Document /home/gnux/intranet
CBandClassRemoteSpeed class_1 50Mbps 10 30
CBandClassRemoteSpeed class_2 300kbps 10 30
</VirtualHost>
==============================================
위 설정은, 내부아이피 192.168.0.XXX 에서,
50Mbps의 대역폭과, 초당 10번의 요청, 동시접속자 30을 설정하며,
다른 ip대역 222.97.189.XXX에서는
300kpbs, 초당 10번의 요청, 동시접속자 30을 설정합니다.
** xml 형태로 데이터를 얻고 싶다면?
http://도메인/cband-status?xml
http://도메인/cband-status-me?xml
http://도메인/cband-status?xml
http://도메인/cband-status-me?xml
1) 단위.
* 전송속도 단위
o kbps, Mbps, Gbps - bits per second: 1024, 1024*1024 , 1024*1024*1024 bps
o kb/s, Mb/s, Gb/s - bytes per second: 1024, 1024*1024, 1024*1024*1024 b/s
o 기본 : kbps
* 트래픽 쿼터 단위
o K, M, G - bytes: 1000, 1000*1000 ,1000*1000*1000 bytes
o Ki, Mi, Gi - bytes: 1024, 1024*1024, 1024*1024*1024 bytes
o 기본 : K
* 시간(기간) 단위
o S, M, H, D, W - 초, 분, 시간, 일, 주
o 기본 : S
2) 지시자들
(1) 이름 : CBandDefaultExceededURL
설명 : 제한을 초과했을때 보여줄 URL (지정하지 않으면, 503 에러 페이지)
문맥 : Server config
문법 : CBandDefaultExceededURL URL
(2)이름 : CBandDefaultExceededCode
설명 : 제한을 초과했을시 보여줄 에러 코드
문맥 : Server config
문법 : CBandDefaultExceededCode HTTP_CODE
예제 : CBandDefaultExceededCode 509
(3)이름 : CBandScoreFlushPeriod
설명 : scoreboard 파일에 기록할 요청수, mod_cband 의 성능에 영향을 준다.
기본값 : 1
문맥 : Server config
문법 : CBandScoreFlushPeriod 요청수
예제 : CBandScoreFlushPeriod 100 ( 매 100번의 요청에 한번씩 scoreboard 파일에 기록)
(4)이름 : CBandSpeed
설명 : 가상호스트 도메인의 최대 속도, 요청수, 접속수 설정
문맥 : <Virtualhost>
문법 : CBandSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
예제 : CBandSpeed 1024 10 30
최대 1024kbps전송속도로 제한, 초당 10개의 요청 처리, 동시 접속을 30개로 제한.
(5)이름 : CBandRemoteSpeed
설명 : 접속자(IP)의 최대속도, 요청수, 접속수 제한 (CBandSpeed와 비슷하지만, 접속자당 설정)
문맥 : <Virtualhost>
문법 : CBandRemoteSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당최대 요청수
max_conn - 최대 동시 접속수
예제 : CBandRemoteSpeed 20kb/s 3 3
접속자(ip)에대해 최대 20kb/s , 초당 3개의 요청, 동시 접속 3개로 제한.
(6)이름 : CBandClassRemoteSpeed
설명 : 정의한 class(ip 범위)에 대해 최대속도, 요청수, 접속수 제한
문맥 : <Virtualhost>
문법 : CBandClassRemoteSpeed class_name kbps rps
class_name - 이미 정의한 클래스 이름 (IP범위)
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
예제 : <CBandClass googlebot_class>
CBandClassDst 66.249.64/24
CBandClassDst 66.249.65/24
CBandClassDst 66.249.79/24
</CBandClass>
CBandClassRemoteSpeed googlebot_class 20kb/s 2 3
위에서 정의한 클래스(googlebot_class)의 요청에는 20kb/s 의 전송속도,
초당 3개의 요청, 동시 접속 3개로 제한.
(7)이름 : CBandRandomPulse
설명 : 속도 제한을 위해서 임의의 파형을 생성한 다음 처리하는 mod_cband의 처리 방법이다.
부하가 많을때는 자동 Off된다.
문맥 : Global
문법 : CBandRandomPulse On/Off
(8)이름 : CBandLimit
설명 : 제한할 전송량을 설정한다. (기간은 CBandPeriod 에서 설정)
문맥 : <Virtualhost>
문법 : CBandLimit limit
limit - 전송량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
예제 : CBandLimit 10M
전송양을 10M(10*1000*1000bytes)로 제한한다.
CBandLimit 10Mi
전송양을 10M(10*1024*1024bytes)로 제한한다.
(9)이름 : CBandClassLimit
설명 : 정의한 class(ip범위)에 대해 제한할 전송량 설정.
문맥 : <Virtualhost>
문법 : CBandClassLimit class_name limit
class_name - 이미 정의한 클래스 이름(ip범위)
limit - 전송량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
(10)이름 : CBandExceededURL
설명 : 제한을 초과했을시 보여줄 URL, 지정하지 않으면 503 에러 발생 ( 가상호스트에서 )
문맥 : <Virtualhost>
문법 : CBandExceededURL URL
(11)이름 : CBandExceededSpeed
설명 : 전송양을 초과했을시 , 전송속도 제한 설정.
문맥 : <Virtualhost>
문법 : CBandExceededSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
(12)이름 : CBandScoreboard
설명 : 가상호스트의 scoreboard 파일 지정. (성능향상을 위해 필요)
문맥 : <Virtualhost>
문법 : CBandScoreboard path
(path는 아파치(nobody또는 apache)권한으로 쓰기가능해야 함)
(13)이름 : CBandPeriod
설명 : 용량제한기간(이 기간이 지나면, 측정되었던 용량은 지워진다.)
문맥 : <Virtualhost>
문법 : CBandPeriod period
period - 사용단위: S (초), M (분), H (시간), D (일), W (주)
예제 : CBandPeriod 1W (1주일)
CBandPeriod 14D (14일)
CBandPeriod 60M (60분)
(14)이름 : CBandPeriodSlice
설명 : 기간이 길때는 나눌 기간을 명시한다.
기본값 : slice_len = limit
문맥 : <Virtualhost>
문법 : CBandPeriodSlice slice_length
예제 : CBandLimit 100G
CBandPeriod 4W
CBandPeriodSlice 1W
4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G
1주에 25G, 2주째 50G 이렇게 나눠 처리 된다.
(15)이름 : <CBandUser>
설명 : 새로운 cband 가상 사용자 설정
문맥 : Server config
문법 : <CBandUser user_name>
(16)이름 : CBandUserSpeed
설명 : cband 가상 사용자의 속도, 요청수, 동시 접속수 제한
문맥 : <CBandUser>
문법 : CBandUserSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
예제 : CBandUserSpeed 100kb/s 10 5
(17)이름 : CBandUserLimit
설명 : cband 가상 사용자의 저송 용량 제한.
문맥 : <CBandUser>
문법 : CBandUserLimit limit
limit - 사용용량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
예제 : CBandUserLimit 10M
CBandUserLimit 10Mi
(18)이름 : CBandUserClassLimit
설명 : cband 가상 사용자의 정의한 class(ip범위)에 대해 제한할 전송량 설정
문맥 : <CBandUser>
문법 : CBandUserClassLimit class_name limit
class_name - 지정한 class(IP범위)이름
limit -사용용량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
(19)이름 : CBandUserExceededURL
설명 : cband 가상 사용자의, 제한을 초과했을시 보여줄 URL,
지정하지 않으면 503 에러 발생 ( 가상호스트에서 )
문맥 : <CBandUser>
문법 : CBandUserExceededURL URL
(20)이름 : CBandUserExceededSpeed
설명 : cband 가상 사용자의, 전송양을 초과했을시 , 전송속도 제한 설정.
문맥 : <CBandUser>
문법 : CBandUserExceededSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
(21)이름 : CBandUserScoreboard
설명 : cband 가상 사용자의, scoreboard 파일 지정.
문맥 : <CBandUser>
문법 : CBandUserScoreboard path
(path는 아파치(nobody또는 apache)권한으로 쓰기가능해야 함)
(22) 이름 : CBandUserPeriod
설명 : cband 가상 사용자의, 용량제한기간(이 기간이 지나면, 측정되었던 용량은 지워진다.)
문맥 : <CBandUser>
문법 : CBandUserPeriod period
period - 사용단위: S (초), M (분), H (시간), D (일), W (주)
예제 : CBandUserPeriod 1W
CBandUserPeriod 14D
CBandUserPeriod 60M
(23)이름 : CBandUserPeriodSlice
설명 : cband 가상 사용자의, 기간을 나눌 기간 명시
기본값 : slice_len = limit
문맥 : <CBandUser>
문법 : CBandUserPeriodSlice slice_length
예제 : CBandUserLimit 100G
CBandUserPeriod 4W
CBandUserPeriodSlice 1W
4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G
1주에 25G, 2주째 50G 이렇게 나눠 처리 된다.
* 전송속도 단위
o kbps, Mbps, Gbps - bits per second: 1024, 1024*1024 , 1024*1024*1024 bps
o kb/s, Mb/s, Gb/s - bytes per second: 1024, 1024*1024, 1024*1024*1024 b/s
o 기본 : kbps
* 트래픽 쿼터 단위
o K, M, G - bytes: 1000, 1000*1000 ,1000*1000*1000 bytes
o Ki, Mi, Gi - bytes: 1024, 1024*1024, 1024*1024*1024 bytes
o 기본 : K
* 시간(기간) 단위
o S, M, H, D, W - 초, 분, 시간, 일, 주
o 기본 : S
2) 지시자들
(1) 이름 : CBandDefaultExceededURL
설명 : 제한을 초과했을때 보여줄 URL (지정하지 않으면, 503 에러 페이지)
문맥 : Server config
문법 : CBandDefaultExceededURL URL
(2)이름 : CBandDefaultExceededCode
설명 : 제한을 초과했을시 보여줄 에러 코드
문맥 : Server config
문법 : CBandDefaultExceededCode HTTP_CODE
예제 : CBandDefaultExceededCode 509
(3)이름 : CBandScoreFlushPeriod
설명 : scoreboard 파일에 기록할 요청수, mod_cband 의 성능에 영향을 준다.
기본값 : 1
문맥 : Server config
문법 : CBandScoreFlushPeriod 요청수
예제 : CBandScoreFlushPeriod 100 ( 매 100번의 요청에 한번씩 scoreboard 파일에 기록)
(4)이름 : CBandSpeed
설명 : 가상호스트 도메인의 최대 속도, 요청수, 접속수 설정
문맥 : <Virtualhost>
문법 : CBandSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
예제 : CBandSpeed 1024 10 30
최대 1024kbps전송속도로 제한, 초당 10개의 요청 처리, 동시 접속을 30개로 제한.
(5)이름 : CBandRemoteSpeed
설명 : 접속자(IP)의 최대속도, 요청수, 접속수 제한 (CBandSpeed와 비슷하지만, 접속자당 설정)
문맥 : <Virtualhost>
문법 : CBandRemoteSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당최대 요청수
max_conn - 최대 동시 접속수
예제 : CBandRemoteSpeed 20kb/s 3 3
접속자(ip)에대해 최대 20kb/s , 초당 3개의 요청, 동시 접속 3개로 제한.
(6)이름 : CBandClassRemoteSpeed
설명 : 정의한 class(ip 범위)에 대해 최대속도, 요청수, 접속수 제한
문맥 : <Virtualhost>
문법 : CBandClassRemoteSpeed class_name kbps rps
class_name - 이미 정의한 클래스 이름 (IP범위)
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
예제 : <CBandClass googlebot_class>
CBandClassDst 66.249.64/24
CBandClassDst 66.249.65/24
CBandClassDst 66.249.79/24
</CBandClass>
CBandClassRemoteSpeed googlebot_class 20kb/s 2 3
위에서 정의한 클래스(googlebot_class)의 요청에는 20kb/s 의 전송속도,
초당 3개의 요청, 동시 접속 3개로 제한.
(7)이름 : CBandRandomPulse
설명 : 속도 제한을 위해서 임의의 파형을 생성한 다음 처리하는 mod_cband의 처리 방법이다.
부하가 많을때는 자동 Off된다.
문맥 : Global
문법 : CBandRandomPulse On/Off
(8)이름 : CBandLimit
설명 : 제한할 전송량을 설정한다. (기간은 CBandPeriod 에서 설정)
문맥 : <Virtualhost>
문법 : CBandLimit limit
limit - 전송량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
예제 : CBandLimit 10M
전송양을 10M(10*1000*1000bytes)로 제한한다.
CBandLimit 10Mi
전송양을 10M(10*1024*1024bytes)로 제한한다.
(9)이름 : CBandClassLimit
설명 : 정의한 class(ip범위)에 대해 제한할 전송량 설정.
문맥 : <Virtualhost>
문법 : CBandClassLimit class_name limit
class_name - 이미 정의한 클래스 이름(ip범위)
limit - 전송량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
(10)이름 : CBandExceededURL
설명 : 제한을 초과했을시 보여줄 URL, 지정하지 않으면 503 에러 발생 ( 가상호스트에서 )
문맥 : <Virtualhost>
문법 : CBandExceededURL URL
(11)이름 : CBandExceededSpeed
설명 : 전송양을 초과했을시 , 전송속도 제한 설정.
문맥 : <Virtualhost>
문법 : CBandExceededSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
(12)이름 : CBandScoreboard
설명 : 가상호스트의 scoreboard 파일 지정. (성능향상을 위해 필요)
문맥 : <Virtualhost>
문법 : CBandScoreboard path
(path는 아파치(nobody또는 apache)권한으로 쓰기가능해야 함)
(13)이름 : CBandPeriod
설명 : 용량제한기간(이 기간이 지나면, 측정되었던 용량은 지워진다.)
문맥 : <Virtualhost>
문법 : CBandPeriod period
period - 사용단위: S (초), M (분), H (시간), D (일), W (주)
예제 : CBandPeriod 1W (1주일)
CBandPeriod 14D (14일)
CBandPeriod 60M (60분)
(14)이름 : CBandPeriodSlice
설명 : 기간이 길때는 나눌 기간을 명시한다.
기본값 : slice_len = limit
문맥 : <Virtualhost>
문법 : CBandPeriodSlice slice_length
예제 : CBandLimit 100G
CBandPeriod 4W
CBandPeriodSlice 1W
4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G
1주에 25G, 2주째 50G 이렇게 나눠 처리 된다.
(15)이름 : <CBandUser>
설명 : 새로운 cband 가상 사용자 설정
문맥 : Server config
문법 : <CBandUser user_name>
(16)이름 : CBandUserSpeed
설명 : cband 가상 사용자의 속도, 요청수, 동시 접속수 제한
문맥 : <CBandUser>
문법 : CBandUserSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
예제 : CBandUserSpeed 100kb/s 10 5
(17)이름 : CBandUserLimit
설명 : cband 가상 사용자의 저송 용량 제한.
문맥 : <CBandUser>
문법 : CBandUserLimit limit
limit - 사용용량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
예제 : CBandUserLimit 10M
CBandUserLimit 10Mi
(18)이름 : CBandUserClassLimit
설명 : cband 가상 사용자의 정의한 class(ip범위)에 대해 제한할 전송량 설정
문맥 : <CBandUser>
문법 : CBandUserClassLimit class_name limit
class_name - 지정한 class(IP범위)이름
limit -사용용량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
(19)이름 : CBandUserExceededURL
설명 : cband 가상 사용자의, 제한을 초과했을시 보여줄 URL,
지정하지 않으면 503 에러 발생 ( 가상호스트에서 )
문맥 : <CBandUser>
문법 : CBandUserExceededURL URL
(20)이름 : CBandUserExceededSpeed
설명 : cband 가상 사용자의, 전송양을 초과했을시 , 전송속도 제한 설정.
문맥 : <CBandUser>
문법 : CBandUserExceededSpeed kbps rps max_conn
kbps - 초당 최대 전송속도
rps - 초당 최대 요청수
max_conn - 최대 동시 접속수
(21)이름 : CBandUserScoreboard
설명 : cband 가상 사용자의, scoreboard 파일 지정.
문맥 : <CBandUser>
문법 : CBandUserScoreboard path
(path는 아파치(nobody또는 apache)권한으로 쓰기가능해야 함)
(22) 이름 : CBandUserPeriod
설명 : cband 가상 사용자의, 용량제한기간(이 기간이 지나면, 측정되었던 용량은 지워진다.)
문맥 : <CBandUser>
문법 : CBandUserPeriod period
period - 사용단위: S (초), M (분), H (시간), D (일), W (주)
예제 : CBandUserPeriod 1W
CBandUserPeriod 14D
CBandUserPeriod 60M
(23)이름 : CBandUserPeriodSlice
설명 : cband 가상 사용자의, 기간을 나눌 기간 명시
기본값 : slice_len = limit
문맥 : <CBandUser>
문법 : CBandUserPeriodSlice slice_length
예제 : CBandUserLimit 100G
CBandUserPeriod 4W
CBandUserPeriodSlice 1W
4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G
1주에 25G, 2주째 50G 이렇게 나눠 처리 된다.
Subscribe to:
Posts (Atom)
