Posted on 2004/03/03 13:58
Filed Under 리눅스기술문서/서버관련 조회수:

파일 무결성 체크 프로그램 Fcheck 설치 활용 방법

작성자 : 서진우 (alang@sysmng.com)
-------------------------------------------------------------------------


리눅스에는 많은 명령어와 설정파일들이 있습니다. 간혹 해커들에 위해 중요파일이
변조되거나 백도어로 사용되는 명령어가 생기는 경우가 많습니다. 관리자는 이런
세밀한 시스템의 변화를 항상 관찰하여야 한다. 하지만..아무리 부지런한 관리자라
고 해도 수만개의 파일로 이루어진 리눅스 시스템을 체크한다는것은 불가능하다.
이에 여러가지 시스템 파일의 무결성을 체크 하는 프로그램이 있다. 여기에 소개할
fcheck 는 다른 무결성 프로그램들에 비해 그 설정이 매우 간단하고 성능도 효과적
이라 할수 있다.


먼저 프로그램을 다운 받도록 하자.

http://www.geocities.com/fcheck2000/

가면 최신 프로그램이 있을것이다. 다운을 받고 /usr/local 및에 둔다.
압축을 풀고..fcheck,fcheck.cfg 파일의 설정값을 몇개 수정하자.

# tar xzvf FCheck_2.07.59.tar.gz
# cd fcheck
# vi fcheck
-------------------------------------------------------------------
.
# This should be passed through the command line, but hard coding still works
$config="/usr/local/fcheck/fcheck.cfg";
----------------------------------------- 이부분을 시스템 환경에 맞게 수정

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


# vi fcheck.cfg
-------------------------------------------------------------------
Directory   = /etc/
Directory   = /bin/
Directory   = /usr/bin/
Directory   = /sbin/
Directory   = /usr/sbin/
Directory   = /usr/local/bin/
Directory   = /usr/local/sbin/
Directory   = /lib/
Directory   = /usr/lib/
Directory   = /usr/local/lib/

#
# Directory 설정은 fcheck 가 체크할 파일들이 들어 있는 디렉토리로 시스템에
# 중요한 명령어나 설정파일등이 있는 곳을 정해 주면 된다.
#

Exclusion      = /etc/passwd
Exclusion       = /etc/shadow

#
# Exclusion 설정은 Directory 설정에서 정한 디렉토리중 자주 변경이 되는 파일
# 이 있어서 체크때마다 걸리므로 체크 생략을 요하는 파일을 정해 주면 된다.
# 호스팅 업체나 기타 자주 사용자를 추가하는 서버라면 위와 같이 해주면 된다.
#

DataBase        = /usr/local/fcheck/data/data.dbf

#
# DataBase 설정은 리눅스 파일 정보를 DB 파일로 저장해서 다음 체크시 비교
# 분석할때 사용되어진다.
#

TimeZone        = GMT-9

#
# 한국 시간을 적용한다. GMT-9
#

#File   = /usr/local/admtools/logs/sol.dbf

File 설정은 필요 없으니 주석 처리 해준다.
기타 여러 설정값이 있으나 크게 작동하는데 영향을 주지 않는다.기본값을 적용
한다.

이와 같이 적용후 /usr/local/fcheck/data 디렉토리를 만들어 준다.

# mkdir /usr/local/fcheck/data
# /usr/local/fcheck/fcheck -ac

이와 같이 fcheck -ac 로 파일 무결성 체크를 시작한다. 그럼 data 디렉토리 안
에 data.dbf 파일이 생성되어 진다.

이제 Directory 설정에 해당하는 디렉토리 안에다가 파일을 하나 생성하고 재대
로 점검을 하는지 테스트를 하여 보자..

# touch /etc/test
# /usr/local/fcheck/fcheck -a

그럼 아마 아래와 같은 결과를 출력할것이다.

PROGRESS: validating integrity of /etc/
STATUS:
        ADDITION: [zzang911.net] /etc/test
        Inode   Permissons      Size    Created On
        19508   -rw-r--r--      0       Sep 19 20:13 2001

자 이제 이 명령어를 이용하여 주기적으로 시스템 파일 무결성을 체크하고 관리
자에게 통보하는 프로그램을 만들어 보도록 하자.

# vi fcheck.sh

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

#!/bin/sh


CHECK=`/usr/local/fcheck/fcheck -a | grep Inode`
HOSTNAME=`hostname`

if [ -n "$CHECK" ]
then
   /usr/local/fcheck/fcheck -a > fcheck_result
   mail -s "$HOSTNAME File 무결성 체크 결과" alang at sysmng.com <
fcheck_result
   rm -f fcheck_result
fi
-------------------------------------------------------------------------
-

간단한 이정도 스크립터로 보다 효율적인 관리가 가능해 질것이다.
이제 cron 에 등록시켜 놓고..매일 파일 무결성 체크를 간단히 메일로 받아서 관리
할수 있게 된다. 만일 변화된 파일이 정당한 변화라면..

# /usr/local/fcheck/fcheck -ac

로 DBfile 를 업데이트 시켜 줘야 한다. 아님..계속 메일이 날아 오게 된다.

Writer profile
author image
-아랑 -

트랙백 주소 : 이 글에는 트랙백을 보낼 수 없습니다

About

by 서진우

Counter

· Total
: 4586211
· Today
: 167
· Yesterday
: 485