7/29/2009

hunt 사용

스니핑 툴 중에 하나인 hunt를 사용.
hunt는 동일 네트워크 상에 있는 모든 세션을 확인할수 있다. (default로 telnet과 rlogin)
구하는 건 알아서.....
# tar zxvf hunt-1.5.tgz
# cd hunt1.5
# make
# ./hunt

실행을 하게 되면 아래와 같은 화면이 나오게 된다.
메뉴를 보게 되면
l/w/r) list/watch/reset connections   // 리스트를 보여주는 l , 보기모드인 w , 확인한 커넥션을 강제로 끈어 버리는 r
u)     host up tests                          // host가 up 되어 있는 확인 test
a)     arp/simple hijack (avoids ack storm if arp used) // arp spoofing
s)     simple hijack                        /// 말그대로 하이젝킹
d)     daemons rst/arp/sniff/mac
o)     options
x)     exit

hunt를 telnet이나 rlogin으로 접속 되어있고 통신을 하고 있다면 리스트에 뜨게 된다.

/*
 *      hunt 1.5
 *      multipurpose connection intruder / sniffer for Linux
 *      (c) 1998-2000 by kra
 */
starting hunt
--- Main Menu --- rcvpkt 0, free/alloc 64/64 ------
l/w/r) list/watch/reset connections
u)     host up tests
a)     arp/simple hijack (avoids ack storm if arp used)
s)     simple hijack
d)     daemons rst/arp/sniff/mac
o)     options
x)     exit
-> l
no connections are available
--- Main Menu --- rcvpkt 24, free/alloc 63/64 ------
l/w/r) list/watch/reset connections
u)     host up tests
a)     arp/simple hijack (avoids ack storm if arp used)
s)     simple hijack
d)     daemons rst/arp/sniff/mac
o)     options
x)     exit
*> l                                                       ///// 리스트를 보자.
0) 192.168.11.1 [2311]         --> 192.168.11.100 [23]
1) 192.168.11.1 [2000]         --> 192.168.11.131 [23]
--- Main Menu --- rcvpkt 58, free/alloc 63/64 ------
l/w/r) list/watch/reset connections
u)     host up tests
a)     arp/simple hijack (avoids ack storm if arp used)
s)     simple hijack
d)     daemons rst/arp/sniff/mac
o)     options
x)     exit
-> w                                         ///////// watch 모드로 보자.
0) 192.168.11.1 [2311]         --> 192.168.11.100 [23]
1) 192.168.11.1 [2000]         --> 192.168.11.131 [23]

choose conn> 0
dump [s]rc/[d]st/[b]oth [b]> b
print src/dst same characters y/n [n]> y

CTRL-C to break
ffddssaa

-bash: fdsa: command not found
[youngrap@localhost youngrap]$ ddffssaa

-bash: dfsa: command not found
[youngrap@localhost youngrap]$ ffddss

-bash: fds: command not found
[youngrap@localhost youngrap]$ ssuu

Password: fdsafdsa

su: incorrect password
[youngrap@localhost youngrap]$


-펌-

sniffit

Sniffit

sniffit은 hunt에서 제공하는 정보보다 좀더 많은 정보를 제공한다.

작성자 : Brecht Claehout

필요조건 : C, IP 헤더, libpcap 라이버리( ftp://ftp.ee.lbl.gov/libpcap.tar.Z)

Download : http://reptile.rug.ac.be/~coder/sniffit/sniffit.html

sniffit은 상당한 설정 기능을 제공하는 비장의 카드이다. 그러나 사용할 때에 고려해야 할 점들이 많이 있으므로 주의한다.

 

설치

[root@linux mk]#./configure

[root@linux mk]#make

 

** 인터렉티브 모드로 작동시키기

[root@linux mk]# ./sniffit -i

 

Server : 211.234.52.20

Client : 211.234.52.10

 

         Source                Target

211.234.52.10 : 1704 - 211.234.52.20 : 23     /*  ls, pwd 등 명령만 출력 */

211.234.52.20 : 23 - 211.234.52.10 : 1704     /*  ls, pwd 등 명령와 결과도 출력 */

 

** 패킷 모니터링 (모티터 출력)

[root@linux mk]# ./sniffit -d -t 211.234.52.10

[root@linux mk]# ./sniffit -d -t 211.234.52.20 -p 23

 

** 패킷 모니터링 (파일출력)

[root@linux mk]# ./sniffit -t 211.234.52.20 -p 23

파일명 : 211.234.52.10.1704-211.234.52.20.23     /*  ls, pwd 등 명령만 출력 */

 

[root@linux mk]# ./sniffit -t 211.234.52.10

파일명 : 211.234.52.20.23-211.234.52.10.1704     /*  ls, pwd 등 명령와 결과도 출력 */

 

일반모드(Normal mode)

각 커넥션에 대한 데이터가 "출발지IP.출발지포트-도착지IP.도착지포트"와 같은 형식으로 저장된다.

 

Dump 모드

-d, -a 옵션 등을 주었을 경우 데이터가 stdout으로 바로 출력된다.

-c : 설정파일 명시

-p : 특별히 감시할 포트 설정

-s : 발신지 IP로부터 들어오는 패킷을 수집

-t : 목적지 IP로부터 들어오는 패킷을 수집

 

인터렉티브 모드(Interactive mode)

-i, -I 옵션 등을 주었을 경우 데이터가 curses를 사용하는 터미널로 출력됩니다. 각 커넥션 리스트가 나오고 브라우징이 가능합니다.

F1 : 출발지 호스트에 대한 필터링

F2 : 목적지 호스트에 대한 필터링

F3 : 출발지 포트에 대한 필터링

F4 : 도착지 포트에 대한 필터링

7/23/2009

tcpdump 사용법

tcpdump 기본 사용법  

# tcpdump -i eth0                             => 특정 ethernt(eth0) 으로 송수신 되는 데이터 패킷 덤프하여 확인
# tcpdump -i eth0 -w TCPDUMP  => 특정 ethernet으로 송수신 되는 패킷들 파일에 저장 및 확인
# tcpdump -r TCPDUMP                => TCPDUMP에 저장된 패킷헤드들을 확인
# tcpdump -i eth0 -c 10                    => 특정 ethernet에서 지정한 개수만큼의 네트워크 패킷 덤프하여 확인
# tcpdump -w tcpdump.log -s 1500 tcp port 22 and host 192.168.0.1
                  => 서버의 특정포트로 송수신되는 모든 데이터패킷 전체를 확인
                       이 명령의 의미는 현재 로컬서버와  192.168.0.00서버사이의 통신데이터패킷 중 tcp 22번포트의
                       모든 패킷을 1500길이로 캡쳐하여 tcpdump.log파일에 저장

# tcpdum -Xqnr tcpdump.log      => 캡쳐한 tcpdump.log파일의 내용을 ASCII모드로 확인



# tcpdump -q \( dst net 1.2.3.0/24 or 1.2.4.0/25 \) and dst port 80

; 목적지 주소가 1.2.3.x/24 와 1.2.4.x/25 이고 80번포트인 패킷 캡쳐



- # tcpdump host A

   ; A 호스트로/부터의 모든 도착/출발 패킷 출력
- # tcpdump host A and \( B or C \)

   ; A 호스트와 B 또는 C 사이의 모든 트래픽 출력
- # tcpdump ip host A and not B

   ; A호스트와 B를 제외한 호스트 간의 모든 IP 패킷 출력
- # tcpdump net ucb-ether

   ; 로컬호스트와 Berkeley의 호스트들 간의 모든 트래픽 출력
- # tcpdump 'gateway A and (port ftp or ftp-data)'

   ; 게이트웨이 A를 통한 모든 ftp 트래픽 출력
- # tcpdump ip and not net

   ; 로컬네트워크로/부터가 아닌 모든 트래픽 출력
- # tcpdump 'tcp[13] & 3 != 0 and not src and dst net '

   ; 로컬네트워크가 아닌 TCP 시작과 마지막 패킷 출력
- # tcpdump 'gateway A and ip[2:2] > 576'

   ; 게이트웨이 A를 통해 보내지는 576 Bytes보다 긴 IP 패킷 출력
- # tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'

   ; 이더넷이 아닌 IP 브로드 또는 멀티 캐스트 패킷 출력
- # tcpdump 'icmp[0] != 8 and icmp[0] != 0'

   ; echo 요청/응답이 아닌 모든 ICMP 패킷 출력 (ping 아닌 패킷)
- # tcpdump src net 1.2.3 or 1.2.4 and not dst net 1.2.3 or 1.2.4

   ; 1.2.3 과 1.2.4 IP주소 (내부) 패킷을 제외한 모든 패킷 출력
- # tcpdump -i br1

   ; br1 인터페이스의 모든 패킷 출력

7/21/2009

ethereal

wireshark 로 바뀌었다고 한다.

yum install ethereal-gnome 로 설치

쉘 모드에서는 볼수가 없다..

7/13/2009

clamav

clamav rpm 을 다운받고 rpm을 설치-

clamscan -ri /home > /root/clamscan.log 2>&1 : 구동 방법-!

virus scan..

[root@kyen etc]# cat /root/clamscan.log

----------- SCAN SUMMARY -----------
Known viruses: 585291
Engine version: 0.95.2
Scanned directories: 1664
Scanned files: 30557
Infected files: 0
Data scanned: 1088.32 MB
Data read: 697.22 MB (ratio 1.56:1)
Time: 401.626 sec (6 m 41 s)

결과물-

7/10/2009

yum 이 안될때

얼마전에 개인용도으로 Redhat을 깔았는데.
yum이 안되더군요 yum을 누르면 아래와 같은 메시지가 뜹니다.

This system is not registered with RHN

CentOS는 Redhat의 쌍둥이 클론입니다. 즉 같은 rpm을 사용한다고 보시면 됩니다.
(Redhat 5 Update 2 => CentOs 5.2 와 같이 Update 버전에 따라서 서브 버전이 나뉩니다.)

게다가, 말로만 듣던 gcc버그때문에, gcc를 업데이트할 일이 있어서.
구글링을 하다가 관련 자료를 찾아서 함 시도해보았습니다.
(http://www.linuxquestions.org/questions/linux-software-2/using-centos-repos-under-rhel-644632/)

1. /etc/yum.repos.d/rhel-debuginfo.repo 을 백업하고 삭제합니다.
2. /etc/yum/pluginconf.d/rhnplugin.conf 을 수정합니다.
(사실 이건 상관없을것 같은데. 기분상 해줍니다 -_-)
[main]
enabled = 0
gpgcheck = 1

3. /etc/yum.repos.d 디렉토리에 아무 파일이나 만들어서 .repo 를 생성합니다.
현재 전 WS5 update1 버전입니다..  빨강 부분을 주의하세요 :)

# Cent.repo
[base]
name=CentOS-5 - Base
baseurl=http://mirror.centos.org/centos/5/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#released updates
[updates]
name=CentOS-5 - Updates
baseurl=http://mirror.centos.org/centos/5/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-5 - Addons
baseurl=http://mirror.centos.org/centos/5/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-5 - Extras
baseurl=http://mirror.centos.org/centos/5/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5 - Plus
baseurl=http://mirror.centos.org/centos/5/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

yum update 로 확인해본다-

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"); 

?> 

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/ 으로 접속
익스플로러에서는 이미지가 표시되지 않음. 파이어폭스나 사파리는 잘나옴.
 

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)

-------------------------------------------------------------

$ 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
   파일이 추가 된 것을 볼수 있습니다.


<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 부분만 남기고 삭제합니다.


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
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 이렇게 나눠 처리 된다.

덴마크다이어트?


식단-ㅗ -

6/19/2009

linux cd-rom mount

 mount -t iso9660 -o ro /dev/cdrom /mnt

umount /mnt

6/17/2009

ab tool

ab

ab는 "Apache HTTP server Benchmarking tool" 의 약어로서 아파치서버의 응답속도를 측정하는 밴치마킹툴이다. 이 툴은 현재 설치된 아파치서버의 실행속도 및 성능테스트를 위해서 제우스테크널리지(Zeus Technology Ltd, http://www.zeustech.net/)의 Adam Twiss가 개발한 툴이며. 아파치를 설치하고 나면 기본적으로 설치되므로 별도의 설치 과정 없이 바로 사용할 수 있다.

명령어위치: /usr/local/apache/bin/ab            

(RPM설치시 : /usr/bin/ab)


아래는 ab를 이용해서 -c(한번에수행할 다중요구수) 값을 1000으로하고, -n(페이지요청수) 값을 1000 으로 하였으며 -t(테스트허용 최대시간)값을 10으로 주는 예이다.


[root@kyen bin]# ./ab -n 1000 -c 1000 -t 10 http://192.168.2.43/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/


Benchmarking 192.168.2.43 (be patient)

Completed 5000 requests

Completed 10000 requests

Completed 15000 requests

Completed 20000 requests

Finished 21754 requests



Server Software:        Apache/2.2.11

Server Hostname:        192.168.2.43

Server Port:            80


Document Path:          /

Document Length:        44 bytes


Concurrency Level:      1000

Time taken for tests:   10.001 seconds

Complete requests:      21754

Failed requests:        0

Write errors:           0

Total transferred:      6744980 bytes

HTML transferred:       957352 bytes

Requests per second:    2175.23 [#/sec] (mean)

Time per request:       459.722 [ms] (mean)

Time per request:       0.460 [ms] (mean, across all concurrent requests)

Transfer rate:          658.64 [Kbytes/sec] received


Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0   18 244.3      0    8999

Processing:    24   87 323.1     59    7838

Waiting:       23   86 322.7     59    7838

Total:         25  105 423.4     59    9131


Percentage of the requests served within a certain time (ms)

  50%     59

  66%     60

  75%     61

  80%     62

  90%     63

  95%     64

  98%    264

  99%   1790

 100%   9131 (longest request)

[root@kyen bin]#


ab 의 측정결과에서 다음과 같은 내용을 분석할수 있다.

Server Software

아파치버전을 표시

Server Hostname

특정사이트의 이름(도메인명)

Server Port

웹서비스 사용포트번호

Document Path

초기 문서가 준재하는 웹문서 root위치

Time take for tests

응답시간(매우 중요한 결과 값임)

Document Length

초기문서(대부분 index.html, index.htm)의 용량크기

Complete requests

요구에 응답완료한 세션수

Failed requests

요구에 응답실패한 세션수

Broken pipe errors

실패한 에러수

Total transferred

총 전송바이트수

HTTP transferred

총 전송한 HTML바이트수

Requests per second

초당응답요구수

Time per request

요구에 응답한 시간(단위 micro second, 중요한 결과값)

Time per request

요구에 응답한 시간

Transfer rate

초당전송가능한 용량

표 2. <ab 의 결과분석>


6/12/2009

under pressure_wembley 86


언제 사라질지 모르겠다..ㅠㅡㅠ

6/10/2009

vi editor

이동

h,j,k,l
w,W,b,B =단어
e,E =단어의 끝

),( =다음/이전 문장의 처음
},{ =다음/이전 문단의 처음
]],[[ =다음/이전 절의 처음

0,$ =현재 행의 처음,끝
^ =현재 행의 공백이 아닌 처음
+,- =다음/이전행의 공백이 아닌 처음
n| =현재 행의 n열

H =화면 맨 윗행
M =화면 중간행
L =화면 맨 아래행
nH =화면 맨 위에서 n행
nL =화면 맨 아래에서 n행

ctrl+f,b =page up/down
ctrl+d,u =반화면씩
ctrl+e,y =한행씩
z+enter =현재 위치를 화면의 맨 위로
z. =현재 위치를 화면의 중간으로(200z.이면 200번째 행을 화면의 중간으로)
z- =현재 위치를 화면의 맨 아래로
ctrl+l =화면갱신

/ptn =검색
?ptn =뒤로 검색
nN =검색 앞/뒤
/? =이전 검색 앞/뒤
fx =현재 행에서 다음 x(임의의 문자)위치로 이동
Fx
tx =현재 행에서 다음 x(임의의 문자)위치 바로 전으로 이동
Tx
;,, =현재 행에서 이전검색 반복 앞/뒤

ctrl+g =현재 행 수 표시
nG =n행으로
:n
G =마지막 행으로

% =괄호의 쌍 찾기

mx =현재 위치를 x로 marking
`x =x 위치로
`` =이전 위치로
'x =x 위치의 처음으로
'' =이전 위치의 처음으로



편집

i,a =insert/append(50i*...*을 50개 입력)
I,A =행의 처음/끝
o,O =새로운 아래행/위행

r =replace
cw =change word
cc =행 변경
cmotion
C =c$ =커서부터 행 끝까지 변경
R =덮어쓰기
s =문자 지우고 입력
S =행을 지우고 입력

x,X =문자 삭제 앞/뒤
dw =delete word(공백까지 삭제)
de =delete word(공백은 남김...단어만)
dd =행 삭제
d0,d$
d motion
D =커서부터 행 끝까지
p,P =paste 앞/뒤
"np =n버퍼 paste

yw =단어 복사
yy =행 복사
"ayy =a버퍼에 복사(a-z)
y motion
"ap =a버퍼의 내용을 paste(버퍼는 a-z, A-Z는 기존 버퍼에 추가하는 것)
"aP

. =redo (ctrl+r)
u,U =undo
J =행 합치기
~ =대문자<->소문자 변환

어떤 줄에 처음 등장하는 old를 new로 바꾸려면          :s/old/new
한 줄에 등장하는 모든 old를 new로 바꾸려면             :s/old/new/g
두 줄 #,# 사이에서 치환을 하려면                             :#,#s/old/new/g
파일 내의 모든 문구를 치환하려면                           :%s/old/new/g
바꿀 때마다 확인을 거치려면 'c'를 붙여서                 :%s/old/new/gc


v =영역설정 문자단위 (motion)
V =영역설정 행단위 (motion)
ctrl+v =영역설정 직사각형 형태

:x (수정시 저장)
ZZ =:wq =무조건 저장후 종료
w =저장
:w! =무조건 저장
:30,60w newfile =30-60행을 newfile로 저장
:30,60w>>file =file에 append
:w %.new
:q
:q! =무조건 종료(저장안함)
Q =vi to ex
vi =ex to vi
:e file2 =file2 편집
:r newfile =newfile 읽어오기(:r !date =시스템 날짜정보 읽어오기)
:n =다음파일 편집
:e! =마지막 저장상태로 (처음으로 되돌리기)
:e# =파일을 번갈아가며 편집
:sh =shell...ctrl+d(or exit)로 돌아오기
:% =현재 파일명
:# =다음 파일명



기타

:sp =split window (ctrl+w+s)
:new =new file (ctrl+w+n)
ctrl+ww =window change
:clo =close window (ctrl+w c)
:clo!
:on =only this window (ctrl+w+o)
:on!
:resize (+|-)n
ctrl+w = =모든 창의 높이를 같게
ctrl+w - =창 높이 줄이기 (앞에 n)
ctrl+w + =창 높이 늘리기 (앞에 n)
:zn+enter =현재 창의 크기를 n으로

:tags =tag stack 내용 표시
ctrl+] =tag stack
ctrl+T

vi -r file =이전 작업상태로 복원



:set hls =검색 highlight(해제시 :nohlsearch)
:set all =모든 option 표시
:set option? =option의 현재 값을 표시
:set =.exrc파일이나 현재 세션에서 특별히 값을 바꾼 option을 표시
:set ic =검색시 대소문자 구분 안함

:set autoindent(>>,<< =기본 8칸씩 이동)
:set shiftwidth=4(>>,<<에 의한 이동을 4칸으로 설정)


:so .xxx =.exrc 이외의 설정파일 불러오기(.xxx는 임의의 파일명)


:ab =현재 정의된 축약어 표시
:ab 축약어 원본 =원본에 대한 축약어 정의
:unab 축약어 =축약어 해제

:map =현재 mapping된 문자 표시
:map x sequence =임의의 문자 x에 명령어 sequence를 mapping(:map v dwelp...단어 순서 바꾸기)