aide(tripwire)설치 방법
작성자 관리자 작성시간 2003-12-18 12:11:12
 

3. AIDE 설치

여기서는 AIDE에 대한 설치환경과 설치방법에 대해 알아본다.

3.1 필요한 요소

AIDE를 설치하기 전에 다음과 같은 요소들이 필요하며, 설치 전에 필요한 다음 파일을 /tmp 디렉토리에 다운로드한다.

- AIDE source code (http://www.cs.tut.fi/~rammer/aide.html)
- CRC32, HAVAL 그리고 GOST를 사용하고자 할 경우 MHASH library 설치
  ( target=_blank>http://schumann.cx/mhash/)

- Postgres sql을 연동할 경우에는 Postgres 설치 또는 확인

3.2 설치 절차

AIDE는 root 또는 특정 사용자가 동작해도 가능하지만, 좀더 보안을 강화하기 위해서는 root가 관리하는 것이 좋다.

① 무결성 알고리즘을 추가하여 CRC32, HAVAL, 그리고 GOST를 사용하고자 할 경우,
    mhash library를 설치하도록 한다. mhash 설치 절차는 다음과 같다.

[root@digital /tmp]# ls
aide-0.7.tar.gz  mhash-0.8.9.tar.gz

[root@digital /tmp]# tar -vzxf mhash-0.8.9.tar.gz
[root@digital /tmp]# cd mhash-0.8.9
[root@digital mhash-0.8.9]# ./configure
[root@digital mhash-0.8.9]# make;make install

② AIDE 설치도 마찬가지로 ./configure, make, make install을
    수행하여 간단히 설치하게 된다.

[root@digital /tmp]# tar vzxf aide-0.7.tar.gz
[root@digital /tmp]# cd aide-0.7

MHASH와 함께 기본적으로 설치할 경우 컴파일 옵션은 다음과 같다.

[root@digital aide-0.7]# ./configure --with-mhash

설치 디렉토리를 사용자가 정의하고 설치할 경우 컴파일 옵션은 다음과 같다.

[root@digital aide-0.7]# ./configure --with-mhash --prefix=/usr/local/aide

AIDE의 설치 디렉토리는 /usr/local 에 설치되며, 실행파일은 /usr/local/bin에 위치하게 된다. 현재 배포된 버전(AIDE-0.7)에서는 위와 같이 기본(default)으로 설치하거나 사용자 정의 디렉토리 옵션을 사용하여 설치했을 경우, 환경설정 파일인 aide.conf의 위치를 찾지 못하기 때문에 configure 파일을 직접 수정해야 한다. 따라서 다음과 같이 ./configure 파일을 수정하도록 한다.

[root@digital aide-0.7]# vi configure
#! /bin/sh
......
중간생략
.....
#define CONFIG_FILE “$sysconfdir/aide.conf // 2341  라인

을 다음과 같이 수정한다.

#define CONFIG_FILE “/usr/local/aide/etc/aide.conf”
.....

[root@digital aide-0.7]# ./configure --with-mhash --prefix=/usr/local/aide
[root@digital aide-0.7]# make; make install

설치 디렉토리는 /usr/local/aide이고, AIDE 실행파일은 /usr/local/aide/bin 에 있다. 사용자는 자신의 환경 설정파일에 /usr/local/aide/bin 디렉토리 경로를 설정한다. bash를 사용할 경우 다음과 같이 PATH를 설정한다.

[root@digital aide-0.7]vi ~/.bash_profile
.....
PATH=/usr/bin;/etc;/usr/sbin;/usr/local/aide /bin;......
.....

[root@digital aide-0.7]source ~/.bash_profile

[root@digital aide-0.7]# cd /usr/local/aide
[root@digital aide]# ls
bin/  man/



4 AIDE 사용법

여기서는 환경설정파일인 aide.conf 파일에 대해 설명하고, 처음 AIDE를 실행할 때 필요한 작업들에 대해 알아본다.

4.1  환경설정파일 aide.conf

AIDE를 실행하기 위해서는 우선 aide.conf를 설정해야 한다. aide.conf를 설정하기 앞서 설치 디렉토리에서 etc 와 doc 디렉토리를 생성하고, 원본 AIDE 디렉토리의 doc 디렉토리에서 환경설정 파일을 생성한 etc 디렉토리 아래에 복사한다.

[root@digital aide]# mkdir /usr/local/aide/etc
[root@digital aide]# mkdir /usr/local/aide/doc
[root@digital aide]# cp /tmp/aide-0.7/doc/aide.conf /usr/local/aide/etc

기본으로 제공되는 aide.conf 파일을 열어 다음과 같이 수정한다. 세부적인 설명은 생략한다.

[root@digital etc]# vi /usr/local/aide/etc/aide.conf
# AIDE 0.7
..  중략 ..
# 무결성 대상은 /etc 디렉토리가 된다.
  @@define TOPDIR /etc 
...
# AIDE를 실행시킨 후에 무결성을 유지하기 위한 데이터베이스 파일이다.
  database=file:/usr/local/aide/doc/aide.db
...
# Postgres sql을 사용하여 데이터를 저장할 경우에 사용한다.
# database_out=sql:host:port:dbname:user :password:table
...
# AIDE 첫 실행 후에 또는 갱신시에 생성되는 무결성 데이터베이스이다.
  database_out=file:/usr/local/aide/doc /aide.db.new
...
# 생성된 데이터베이스를 gzip을 사용하여 압축을 할 경우에 사용되며, 압축을 하고자
# 할 경우에는 #을 없애고 gip_dbout=yes 하면 된다.
# gzip_dbout=no
...
# 무결성 체크 후 그 결과에 대해 보고서를 작성하게 된다.
# aide 의 report 옵션인 -r을 사용하거나 다음을 사용하여 report를 작성한다.
  report_url=file:/usr/local/aide/doc/report.txt
# 무결성 체크 후 결과를 화면에 보여준다.
  report_

url=stdout
...

4.2 AIDE 사용법

AIDE 사용법은 다음과 같다.

[root@digital aide]# aide -h
        AIDE 사용법을 알려준다.

[root@digital aide]# aide -i
        데이터베이스를 초기화한다. 즉, aide.db.new 파일을 생성한다.

[root@digital aide]# aide -C
        무결성을 체크한다. aide.db와 단순히 변경 여부를 체크한다.

[root@digital aide]# aide -u
        aide.db와 무결성을 체크하고, 현재 무결성 값을 aide.db.new로 생성한다.

4.3 AIDE 실행

AIDE의 실행파일이 있는 위치(/usr/local/aide/bin)를 PATH로 연결했다면, 다음과 같이 /usr/local/aide/doc로 이동한 후에 AIDE를 실행할 준비를 한다.

[root@digital doc]# pwd
/usr/local/aide/doc

AIDE를 처음으로 실행하면서 데이터베이스를 초기화한다.

[root@digital doc]# aide -i
[root@digital doc]# ls
aide.db.new report.txt

-i 옵션은 aide.db.new를 생성하고, 그 결과를 report.txt에 저장하게 된다. 이 파일은 무결성 체크를 하기 위해 aide.db로 이름을 바꿔준다.

[root@digital doc]# mv aide.db.new aide.db

무결성을 체크한다. 파일의 변화가 발생했을 경우에는 화면에 결과를 보여주고, report.txt 파일에 그 결과를 기록한다.

[root@digital doc]# aide -C

무결성 데이터베이스를 갱신할 경우 -u 옵션을 사용하여 새로운 데이터베이스 파일을 생성하고, 이전 데이터베이스를 갱신한다. -u 옵션은 무결성을 체크하고 갱신하는 옵션이다.

[root@digital doc]# aide -u
[root@digital doc]# mv aide.db.new aide.db



5. AIDE 룰 설정

AIDE는 환경설정 파일인 aide.conf에 무결성 대상과 방법을 설정하고 있다. 여기에서는 환경설정에 필요한 값들과 설정방법 그리고 룰 정책에 대해 알아본다.

5.1 룰 표현 값

다음 [표 1]은 룰을 설정하기 위한 표현 값들을 보여주고 있으며, 이 룰들을 이용하여 사용자는 원하는 룰을 만들 수 있다.
  표현
설  명
표현
설  명

p
  permissions
  md5
  md5 checksum

i
  Inode
  rm160
  rmd160 checksum

n
  link 수
  tiger
  tiger checksum

u
  user
  R
  p+i+n+u+g+s+m+c+md5

g
  group
  L
  p+i+n+u+g

s
  size
  E
  Empty group

b
  block count
  >
  Growing lofile p+u+g+i+n+S

m
  mtime
  haval
  haval checksum

a
  atime
  gost
  gost checksum

c
  ctime
  crc32
  crc32 checksum

s
  growing size
 
 




[표 1] 기본적인 룰과 표현 값

5.2 룰 예제

다음은 무결성 대상데이터 설정과 해쉬알고리즘 설정에 대해 예제로 설명하고자 한다. aide.conf 파일을 다음과 같이 수정한다.

[root@digital etc]# vi /usr/local/aide/etc/aide.conf
database=file:/usr/local/aide/doc/aide.db # 읽어들일 데이터베이스 파일
database_out=file:/usr/local/aide/doc/aide.db.new # 새로 생성되는 데이터베이스 파일
verbose=20 # 파일무결성에 대한 정보의 양
report_url=file:/usr/local/aide/doc/report.txt # 레포트 파일
report_url=stdout # 화면에서 결과를 보이지 않게 하려면 이 부분을 마킹한다.

MyRule=p+i+n+u+g+s+b+m+c+md5+sha1 # 룰 설정 부분
/etc p+i+u+g    # /etc에 대해서는 permission, inode, user, 그리고 group만 체크한다.
/bin MyRule    # /bin에 대해서는 일반적인 룰을 적용한다.
/sbin MyRule    # /sbin에 대해서도 동일한 룰을 적용한다.
/var MyRule    # /var에 대해서도 동일한 룰을 적용한다.
!/var/log/.*    # /var/log 처럼 흔히 변하는 디렉토리에 대해서는 적용하지 않는다.
!/var/spool/.*  # /var/spool 도 적용범위에서 제외된다.

5.3 룰 정책

무결성 대상데이터는 관리자의 정책을 가지고 설정할 필요가 있다. 보안을 강화하기 위해 무조건 많은 디렉토리와 파일에 대해 무결성을 유지하려 한다면, 무결성을 체크하는데 많은 시간과 작업을 필요로 하게 된다. 따라서, 무결성 대상데이터에 대한 선별이 이루어져야 하고, 얼마의 주기로 무결성을 체크하도록 할 것인가에 대한 정책을 가지고 있어야 한다. 무결성 대상데이터는 시스템에 중요한 파일 또는 디렉토리를 정하고, 시스템이 HTTP나 FTP 등과 같은 서버로서 동작을 하고 있다면 이들에 대한 데이터나 환경설정파일들에 대해서도 고려해야 할 것이다.


목록 | 입력 | 수정 | 답변 | 삭제