'utmp'에 해당되는 글 2건

  1. 2009.10.20 Dstat: Versatile resource statistics tool
  2. 2009.04.30 시스템 로그파일과 로그기록 삭제 방법
2009.10.20 14:29

Dstat: Versatile resource statistics tool

[dag@moria ~]$ dstat --help
Usage: dstat [-afv] [options..] [delay [count]]
Versatile tool for generating system resource statistics

Dstat options:
  -c, --cpu              enable cpu stats
     -C 0,3,total           include cpu0, cpu3 and total
  -d, --disk             enable disk stats
     -D total,hda           include hda and total
  -g, --page             enable page stats
  -i, --int              enable interrupt stats
     -I 5,eth2              include int5 and interrupt used by eth2
  -l, --load             enable load stats
  -m, --mem              enable memory stats
  -n, --net              enable network stats
     -N eth1,total          include eth1 and total
  -p, --proc             enable process stats
  -r, --io               enable io stats (I/O requests completed)
  -s, --swap             enable swap stats
     -S swap1,total         include swap1 and total
  -t, --time             enable time/date output
  -T, --epoch            enable time counter (seconds since epoch)
  -y, --sys              enable system stats

  --aio                  enable aio stats
  --fs, --filesystem     enable fs stats
  --ipc                  enable ipc stats
  --lock                 enable lock stats
  --raw                  enable raw stats
  --socket               enable socket stats
  --tcp                  enable tcp stats
  --udp                  enable udp stats
  --unix                 enable unix stats
  --vm                   enable vm stats

  --plugin-name          enable plugins by plugin name (see manual)
  --list                 list all available plugins

  -a, --all              equals -cdngy (default)
  -f, --full             automatically expand -C, -D, -I, -N and -S lists
  -v, --vmstat           equals -pmgdsc -D total

  --float                force float values on screen
  --integer              force integer values on screen

  --bw, --blackonwhite   change colors for white background terminal
  --nocolor              disable colors (implies --noupdate)
  --noheaders            disable repetitive headers
  --noupdate             disable intermediate updates
  --output file          write CSV output to file

delay is the delay in seconds between each update (default: 1)
count is the number of updates to display before exiting (default: unlimited)
Only in black and white :)
[dag@moria ~]# dstat
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  5   0  93   0   0   0| 154k   84k|   0     0 |   0     0 |1081  1116 
 13   0  87   0   0   0|   0     0 |   0     0 |   0     0 |1036   696 
  8   0  92   0   1   0|   0  8192B|   0     0 |   0     0 |1073   936 
  0   0  99   0   0   1|   0     0 |   0     0 |   0     0 |1072   940 
  1   1  97   0   2   0|   0     0 |   0     0 |   0     0 |1252  1727 
  1   1  98   0   1   0|   0     0 |   0     0 |   0     0 |1126  1191 
  1   0  99   0   0   0|   0     0 |   0     0 |   0     0 |1045   908 
  0   0  99   0   0   0|   0    44k|   0     0 |   0     0 |1051   904 
  1   1  99   0   0   0|   0     0 |   0     0 |   0     0 |1036   850 
  1   0 100   0   0   0|   0     0 |   0     0 |   0     0 |1029   757 
[dag@moria ~]$ dstat -c --top-cpu -d --top-bio --top-latency
----total-cpu-usage---- -most-expensive- -dsk/total- ----most-expensive---- --highest-total--
usr sys idl wai hiq siq|  cpu process   | read  writ|  block i/o process   | latency process 
  5   0  94   0   0   0|firefox      3.6| 148k   81k|init [5]     98k   50B|pdflush        21
  2   1  98   0   0   0|wnck-applet  0.5|   0     0 |                      |at-spi-regist   5
  2   1  98   0   0   0|firefox      0.5|   0     0 |                      |Xorg            1
  1   2  97   0   0   1|                |   0     0 |                      |Xorg            1
  1   1  98   0   0   0|                |   0     0 |                      |ksoftirqd/1    10
  1   1  97   0   0   0|firefox      0.5|   0     0 |                      |ksoftirqd/0     5
  2   1  97   0   0   0|firefox      0.5|   0     0 |firefox       0    28k|ksoftirqd/0     5
  2   1  97   0   0   0|firefox      0.5|   0     0 |                      |Xorg            1
  1   1  97   0   0   0|firefox      0.5|   0     0 |                      |ksoftirqd/0     6
  2   1  98   0   0   0|firefox      0.5|   0     0 |                      |ksoftirqd/0     6
  1   2  98   0   0   0|                |   0     0 |                      |ksoftirqd/1     8
  2   1  98   0   0   0|iwlagn       0.5|   0    72k|kjournald     0    32k|ksoftirqd/1    12
  1   1  97   0   0   0|                |   0     0 |                      |iwlagn/0        1
  1   1  98   0   0   0|firefox      0.5|   0     0 |                      |ksoftirqd/1     8
Here are 2 screenshots of older dstat versions in action. 

Dstat 0.4 on a Power5 system that is being stress tested.


Dsta 0.3 (first release) on 5 RHEL3 nodes in a cluster from a Windows terminal.

If you've found a bug, please check the TODO file for known problems and send me updates if you have more information to provide. 

Please also copy&paste the output of the problem, with a description, the version of the kernel and if appropriate the involved /proc entries. 

Dstat has a --debug option to profile plugins and show what plugins and /proc entries are affected. Dstat also shows some more information with the --version option that might be useful. The following packages (in order of appearance) are available. or grab the latest 0.7.2 tarball at: http://dag.wieers.com/home-made/dstat/dstat-0.7.2.tar.bz2

출처 : http://dag.wieers.com/

Trackback 1 Comment 0
2009.04.30 13:31

시스템 로그파일과 로그기록 삭제 방법

1. 시스템의 기본로그파일에 대하여

시스템에 접속을 하거나 하고있는 정보를 기록하는 파일이 있습니다. 해커가 침입을 하고난 후에는 자신의 접속정보를 삭제하는 작업을 하게되는데 아래의 파일에서 자신의 접속로그를 삭제하게된다.

/var/run/utmp  또는 /var/adm/utmp

/var/log/wtmp 또는 /var/adm/wtmp

/var/log/lastlog 또는 /var/adm/lastlog



2. utmp 파일

먼저 utmp에 대해서 알아보겠습니다. 이 파일은 현재시스템에 접속해 있는 사용자의 정보를 가지고 있습니다. 시스템은 사용자가 remote로 접속을 하면 먼저 이 파일에 기록을 하고 로그아웃을 할 때에 기록해둔 정보를 삭제합니다.

그리고 이 파일의 구성요소를 결정하는 파일은 /usr/include/utmp.h 에 정의되어 있습니다.

struct utmp {
       char    ut_user[32];            /* User login name */
       char    ut_id[14];              /* /etc/inittab id- IDENT_LEN in init */
       char    ut_line[32];            /* device name (console, lnxx) */
       short   ut_type;                /* type of entry */
       pid_t   ut_pid;                 /* process id */
       struct exit_status {
           short       e_termination;  /* Process termination status */
           short       e_exit;         /* Process exit status */
       } ut_exit;                      /* The exit status of a process
                                        * marked as DEAD_PROCESS.
                                        */
       time_t  ut_time;                /* time entry was made */
       char    ut_host[64];       /* host name same as MAXHOSTNAMELEN*/
};


이 파일은 보통 바이너리형태로 되어 있기 때문에 strings라는 명령어를 사용하여 다음과 같이 내용을 볼 수 있습니다.

$ strings utmp | more

system boot
run-level 3
sysconfig
update
LOGIN
cons
console
sac -t 300
PM00
root
console
ttyp1
ttyp1
8:0.0
webadmin
ttyp4
ttyp4
168.126.62.90
webadmin
ttyp3
ttyp3

이 파일의 정보를 이용하는 명령어는 다음과 같습니다.

login(1), who(1), ac(8), init(8), last(8), lastcomm(8)



3. wtmp 파일

다음으로 wtmp에 대해서 알아보자. 이 파일에는 처음부터 접속했던 모든 사용자의 로그인정보와 로그아웃정보를 가지고 있습니다.  이파일은 삭제해주지 않으면 계속 누적이 되므로 정기적으로 백업을 받아 두든지 아니면 불필요한 정보를 삭제하든지 해야합니다.

이 파일에 기록되는 정보는 utmp.h에 있는 내용에 ut_time이추가되어 로그아웃시의 시간이 추가기록됩니다. 물론 이 파일의 정보를 보는 방법은 last라는 명령어로 볼 수있으며 wtmp와 관련된 명령어에는 다음과 같은 것들이 있습니다.

login(1), who(1), ac(8), init(8), last(8), lastcomm(8)



4. lastlog 파일

다음으로 lastlog에 대해서 알아보겠습니다. 이 파일에는 가장최근에 로긴한 정보를 저장하고 있습니다.

이 파일또한 last라는 명령어로 조회를 해 볼 수 있으며 기록되는 정보를 정의하는 파일은 /usr/include/lastlog.h에 다음과 같이 정의되어 있습니다.

struct lastlog {
       time_t  ll_time;
       char    ll_line[LL_LINELEN];
       char    ll_host[LL_HOSTLEN];            /* same as in utmp */
};



5. 로그파일과 로그기록삭제

자, 그럼 이쯤에서 이파일들의 보안에 대해서 언급해 보도록 하겠습니다. 만약 자기가 다른 시스템에 불법으로 침입했다면 이들 파일에 기록된 자신의 정보를 삭제하고자 할 것입니다. 그런데 이파일에서 일부정보를 삭제하려면 write 퍼미션이 있어야 합니다. 그래서 이들 파일의 퍼미션이 또 문제가 되는 것이며, 대부분의 시스템에는 이들 파일에 다음과 같은 퍼미션을 설정하고 있습니다.

[webserver:/var/adm 78 ] ls -l utmp

8 -rw-r--r--   1 root     adm         7332 12월 1일 19:40 utmp

[webserver:/var/adm 79 ] ls -l wtmp

84624 -rwxr-xr-x   1 root     system   86593728 12월 1일 19:40 wtmp*

[webserver:/var/adm 80 ] ls -l lastlog

160 -rw-r--r--   1 root     adm       153132 12월 1일 19:40 lastlog


위에서 보시는 바와 같이 utmp와 lastlog는 644로 되어 있기 때문에 root 외에는 파일을 조작할 수 없으며 wtmp에는 755로 설정되어 있기 때문에 당연히 root 외에는 조작이 불가능합니다. 주의할 것은 이들 파일의 펴미션이 혹시 변경되지 않았나를 정기적으로 확인해 봐야한다는 것입니다.

이들 파일속에서 침입한 자신의 로그기록을 삭제해주는 유틸리티가 있는데 zip2라는 프로그램입니다.

수작업으로 이들 파일의 접속정보를 삭제할 수도 있으나 우린 좀더 편리한 것을 사용할 수 있는 방법을 사용해보겠습니다.

위에서 언급한 zap2.c에 대해서 설명을 하려합니다. 이 파일을 컴파일하여 사용하도록 해야합니다.


#define WTMP_NAME "/var/adm/wtmp"

#define WTMP_NAME "/var/adm/utmp

#define WTMP_NAME "/var/adm/lastlog


이 파일의 처음에 나오는 부분을 해당시스템에 맞게 수정하여야합니다.


사용하는 방법은 간단합니다.. 다음과 같이....킥킥....

$./zap2 webmaster



6. 또다른 로그기록삭제 프로그램

cloak1.c, invisible, mme.c, sunwt.c, zip.c, lled.c, wted.c 등등...



출처 : http://hackersnews.org/

Trackback 0 Comment 0