Tripwire는 설치된 정보를 DB화 하여 가지고 있다가 서버의 이상유무 (변동사항)를 체크 하여
사용자에게 알려주는 유용한 툴이다.
기존에 설치된 초기 정보를 가지고있다는 것은 그만큼 보안에 신경 쓰고 있다는 것이니 잘 활용
하도록하자.
해킹의 유형을 보면 대부분 한번 침입에 성공하면 들어오자 마자 해꼬지 하는 경우는 드물다.
두번째, 세번째 들어와서 정찰을 하는데, 이때 남기는 것이 트로이쟌 바이러스류의 Back-door 프로그램
을 이용한다.
예를 들면 리눅스 사용자가 빈번하게 사용하는 명령어인 ls, ps 등을 변조시켜 공격자에게 정보를 그대로 전송하는 스크립트 등을 사용하거나, 혹은 공격자가 자기 입맛에 맞게 패치를 하여, 다른 공격자가 공격하지 못하도록 한다. 즉, 나만의 서버를 만드는 셈이다. -_-;;
여기서는 tar-ball (Source)설치에 대한설명은 하지 않겠다.
tripwire의 설치를 설명하기 전에 현재, tripwire의 버전은 리눅스 커널 2.4x에 맞추어져 있다.
즉, Fedora (RedHat 9와 다름)에서는 적용되지 않는다. Fedora 버전은 커널 2.6을 기본으로 하고 있기때문이다. 이점을 반드시 확인 후, 사용하도록 한다.
Tripwire는 감시 및 점검 유틸리티이지 백신프로그램이 아니다.
그럼 설치를 해보자.
1. 설치 여부 확인 하기
[root@test root]#rpm -qa | grep tripwire
- 아무것도 나오지 않아야 한다. 그러면 설치가 안된 것이므로 설치하도록 한다. 만약 설치가 된 경우라면 tripwire 버전 얼마얼마~ 이러면서 나올 것이다.
2. tripwire 구하기
tripwire의 최신버전은 http://www.tripwire.org 에서구할 수 있으며 만일 일반 버전을 설치하고 싶은 경우, ftp.redhat.com에서 각자 맞는 버전을 확인 한 후, rpm 소스를 다운 받는다.
* 자신의 리눅스 버전 확인하기 (레드햇)
[root@test root]#cat /etc/redhat-realease
RedHat 7.3
3. 설치하기
rpm들은 늘 그렇듯 간단하게 설치 할 수 있다.
[root@test root]#rpm -Uvh tripwire-Version.i386.rpm --force
* Version 부분은 해당하는 숫자가 써있을 것이다.
* 이미 설치된 tripwire 말고 최신 버전을 설치할 경우 --force 명령어를 통하여 강제로 엎어쓰자.
간혹, 커널 패치후에 오류가 나는 수가 있으므로 --force를 주는 것이다.
[root@test root]#cd /etc/tripwire
[root@test tripwire]#./twinstall.sh
* 반드시 해당 경로를 확인하자. rpm으로 설치하게 되면 경로는 모두 같다.
twinstall.sh의 shell을 실행시키면 암호키를 생성하게 되는데, 이때 비밀번호를 잘 설정하도록 하자.
비밀번호는 반드시 8자 이상 입력한다.
1) keyfile passphrase 비밀번호 생성
Creating key files...
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
2) site keyfile passphrase의 재 확인
Enter the site keyfile passphrase:
Verify the site keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
3) local keyfile passphrase 키 생성
Enter the local keyfile passphrase:
Verify the local keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.
----------------------------------------------
4) site passphrase를 이용하여 configuration file을 완성한다.
Signing configuration file...
Please enter your site passphrase:
Wrote configuration file: /etc/tripwire/tw.cfg
A clear-text version of the Tripwire configuration file
/etc/tripwire/twcfg.txt
has been preserved for your inspection. It is recommended
that you delete this file manually after you have examined it.
----------------------------------------------
5) site passphrase를 이용하여 policy file을 완성한다.
다음의 policy file이 생성되었다는 메시지와 함께 설치가 끝나게 된다.
Signing policy file...
Please enter your site passphrase:
Wrote policy file: /etc/tripwire/tw.pol
A clear-text version of the Tripwire policy file
/etc/tripwire/twpol.txt
has been preserved for your inspection. This implements
a minimal policy, intended only to test essential
Tripwire functionality. You should edit the policy file
to describe your system, and then use twadmin to generate
a new signed copy of the Tripwire policy.
이제 모든 설치는 끝났다.
최초로 실행 시켜 각 서버에 맞는 설정을 하도록 하자.
[root@test tripwire]./tripwire --init
Please enter your local passphrase:
Parsing policy file: /etc/tripwire/tw.pol
이렇게 비밀번호를 요구할때, 입력을 해준다.
최초로 initializing을 실시 하면, 경로가 다르거나 없는 파일을 체크 해준다.
잘 기록해 뒀다가 다음 파일을 수정하여 새로 initializing 하도록 한다.
* 기본 수정파일 /etc/tripwire/twpol.txt
twpol.txt 파일을 열면 에러가 났던 부분의 파일들을 수정할 수 있다.
필요없는 부분은 '#'으로 처리하자.
처리가 다 되었으면 Db갱신을 해야 한다.
[root@test tripwire]./tripwire --create-polfile twpol.txt
twadmin --create-polfile /etc/tripwire/twpol.txt
새롭게 DB가 생성되고 나면 다시 초기화 하도록 한다.
[root@test tripwire]./tripwire --init
Please enter your local passphrase:
Parsing policy file: /etc/tripwire/tw.pol
에러 사항에 대해서는 위의 부분을 반복하여 에러가 검출되지 않도록 한다.
모든 설정이 끝나면 최초로 무결성 검사를 실시하도록 한다.
# ./tripwire --check
Parsing policy file: /etc/tripwire/tw.pol
*** Processing Unix File System ***
Performing integrity check...
Wrote report file: /var/lib/tripwire/report/리포트 파일명.twr
자.이제 모든 준비가 되었으므로 하루에 한번씩 체크 하여 무결성 보고를 받도록 하자.
4. shell파일 만들기.
shell파일은 서버관리자만 쓸 파일 이므로 각자의 관리 디렉토리(여기서는 admin으로 하겠음) 로 이동하여 만든다.
[root@test tripwire]# mkdir -p /admin;cd /admin
[root@test admin]# cat triprun
#!/bin/sh
/usr/sbin/tripwire -m c | mail -s "tripwire report from linux-1" admin@test.com
(* 실제로는 vi를 사용하셔야 합니다.^^;;)
[root@test admin]#chmod 100 triprun
5. Crontab 정의
crontab 을 편집하여 아래 문구를 집어 넣는다.
1 1 * * * /usr/local/bin/runtripwire.sh
[root@test admin]crontab -e
... 중략..
1 1 * * * /usr/local/bin/runtripwire.sh
* 저장하고 빠져나온다.
[root@test admin]
자~ 이제 모든 설정이 끝났다. 이젠 매일 새벽 1시에 무결성 검사를 하여 admin@test.com (각자 수정하세요~ ^^) 로 보고서를 보낼 것이다. ^^
------------------------------------------------------------------------------------------
안녕하세요.(주)인터넷 나야나 시스템 관리자 강성규 입니다.
본 내용은 제가 직접 작성한 글이며, 타 사이트의 링크나 복사,전제가 허용 됩니다.
단, 복사, 전제 하실 경우에는 출처를 반드시 남겨 주시면 감사하겠습니다.
http://icomis.co.kr/<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]</div>
사용자에게 알려주는 유용한 툴이다.
기존에 설치된 초기 정보를 가지고있다는 것은 그만큼 보안에 신경 쓰고 있다는 것이니 잘 활용
하도록하자.
해킹의 유형을 보면 대부분 한번 침입에 성공하면 들어오자 마자 해꼬지 하는 경우는 드물다.
두번째, 세번째 들어와서 정찰을 하는데, 이때 남기는 것이 트로이쟌 바이러스류의 Back-door 프로그램
을 이용한다.
예를 들면 리눅스 사용자가 빈번하게 사용하는 명령어인 ls, ps 등을 변조시켜 공격자에게 정보를 그대로 전송하는 스크립트 등을 사용하거나, 혹은 공격자가 자기 입맛에 맞게 패치를 하여, 다른 공격자가 공격하지 못하도록 한다. 즉, 나만의 서버를 만드는 셈이다. -_-;;
여기서는 tar-ball (Source)설치에 대한설명은 하지 않겠다.
tripwire의 설치를 설명하기 전에 현재, tripwire의 버전은 리눅스 커널 2.4x에 맞추어져 있다.
즉, Fedora (RedHat 9와 다름)에서는 적용되지 않는다. Fedora 버전은 커널 2.6을 기본으로 하고 있기때문이다. 이점을 반드시 확인 후, 사용하도록 한다.
Tripwire는 감시 및 점검 유틸리티이지 백신프로그램이 아니다.
그럼 설치를 해보자.
1. 설치 여부 확인 하기
[root@test root]#rpm -qa | grep tripwire
- 아무것도 나오지 않아야 한다. 그러면 설치가 안된 것이므로 설치하도록 한다. 만약 설치가 된 경우라면 tripwire 버전 얼마얼마~ 이러면서 나올 것이다.
2. tripwire 구하기
tripwire의 최신버전은 http://www.tripwire.org 에서구할 수 있으며 만일 일반 버전을 설치하고 싶은 경우, ftp.redhat.com에서 각자 맞는 버전을 확인 한 후, rpm 소스를 다운 받는다.
* 자신의 리눅스 버전 확인하기 (레드햇)
[root@test root]#cat /etc/redhat-realease
RedHat 7.3
3. 설치하기
rpm들은 늘 그렇듯 간단하게 설치 할 수 있다.
[root@test root]#rpm -Uvh tripwire-Version.i386.rpm --force
* Version 부분은 해당하는 숫자가 써있을 것이다.
* 이미 설치된 tripwire 말고 최신 버전을 설치할 경우 --force 명령어를 통하여 강제로 엎어쓰자.
간혹, 커널 패치후에 오류가 나는 수가 있으므로 --force를 주는 것이다.
[root@test root]#cd /etc/tripwire
[root@test tripwire]#./twinstall.sh
* 반드시 해당 경로를 확인하자. rpm으로 설치하게 되면 경로는 모두 같다.
twinstall.sh의 shell을 실행시키면 암호키를 생성하게 되는데, 이때 비밀번호를 잘 설정하도록 하자.
비밀번호는 반드시 8자 이상 입력한다.
1) keyfile passphrase 비밀번호 생성
Creating key files...
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
2) site keyfile passphrase의 재 확인
Enter the site keyfile passphrase:
Verify the site keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
3) local keyfile passphrase 키 생성
Enter the local keyfile passphrase:
Verify the local keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.
----------------------------------------------
4) site passphrase를 이용하여 configuration file을 완성한다.
Signing configuration file...
Please enter your site passphrase:
Wrote configuration file: /etc/tripwire/tw.cfg
A clear-text version of the Tripwire configuration file
/etc/tripwire/twcfg.txt
has been preserved for your inspection. It is recommended
that you delete this file manually after you have examined it.
----------------------------------------------
5) site passphrase를 이용하여 policy file을 완성한다.
다음의 policy file이 생성되었다는 메시지와 함께 설치가 끝나게 된다.
Signing policy file...
Please enter your site passphrase:
Wrote policy file: /etc/tripwire/tw.pol
A clear-text version of the Tripwire policy file
/etc/tripwire/twpol.txt
has been preserved for your inspection. This implements
a minimal policy, intended only to test essential
Tripwire functionality. You should edit the policy file
to describe your system, and then use twadmin to generate
a new signed copy of the Tripwire policy.
이제 모든 설치는 끝났다.
최초로 실행 시켜 각 서버에 맞는 설정을 하도록 하자.
[root@test tripwire]./tripwire --init
Please enter your local passphrase:
Parsing policy file: /etc/tripwire/tw.pol
이렇게 비밀번호를 요구할때, 입력을 해준다.
최초로 initializing을 실시 하면, 경로가 다르거나 없는 파일을 체크 해준다.
잘 기록해 뒀다가 다음 파일을 수정하여 새로 initializing 하도록 한다.
* 기본 수정파일 /etc/tripwire/twpol.txt
twpol.txt 파일을 열면 에러가 났던 부분의 파일들을 수정할 수 있다.
필요없는 부분은 '#'으로 처리하자.
처리가 다 되었으면 Db갱신을 해야 한다.
[root@test tripwire]./tripwire --create-polfile twpol.txt
twadmin --create-polfile /etc/tripwire/twpol.txt
새롭게 DB가 생성되고 나면 다시 초기화 하도록 한다.
[root@test tripwire]./tripwire --init
Please enter your local passphrase:
Parsing policy file: /etc/tripwire/tw.pol
에러 사항에 대해서는 위의 부분을 반복하여 에러가 검출되지 않도록 한다.
모든 설정이 끝나면 최초로 무결성 검사를 실시하도록 한다.
# ./tripwire --check
Parsing policy file: /etc/tripwire/tw.pol
*** Processing Unix File System ***
Performing integrity check...
Wrote report file: /var/lib/tripwire/report/리포트 파일명.twr
자.이제 모든 준비가 되었으므로 하루에 한번씩 체크 하여 무결성 보고를 받도록 하자.
4. shell파일 만들기.
shell파일은 서버관리자만 쓸 파일 이므로 각자의 관리 디렉토리(여기서는 admin으로 하겠음) 로 이동하여 만든다.
[root@test tripwire]# mkdir -p /admin;cd /admin
[root@test admin]# cat triprun
#!/bin/sh
/usr/sbin/tripwire -m c | mail -s "tripwire report from linux-1" admin@test.com
(* 실제로는 vi를 사용하셔야 합니다.^^;;)
[root@test admin]#chmod 100 triprun
5. Crontab 정의
crontab 을 편집하여 아래 문구를 집어 넣는다.
1 1 * * * /usr/local/bin/runtripwire.sh
[root@test admin]crontab -e
... 중략..
1 1 * * * /usr/local/bin/runtripwire.sh
* 저장하고 빠져나온다.
[root@test admin]
자~ 이제 모든 설정이 끝났다. 이젠 매일 새벽 1시에 무결성 검사를 하여 admin@test.com (각자 수정하세요~ ^^) 로 보고서를 보낼 것이다. ^^
------------------------------------------------------------------------------------------
안녕하세요.(주)인터넷 나야나 시스템 관리자 강성규 입니다.
본 내용은 제가 직접 작성한 글이며, 타 사이트의 링크나 복사,전제가 허용 됩니다.
단, 복사, 전제 하실 경우에는 출처를 반드시 남겨 주시면 감사하겠습니다.
http://icomis.co.kr/<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]</div>
게시글 목록
| 번호 | 제목 |
|---|---|
| 12307 |
JavaScript
테이블 각 row 마우스오버시 색깔바꾸기 입니다.
|
| 12306 |
JavaScript
png 24비트 투명처리하기 입니다.
|
| 12305 |
JavaScript
full-down메뉴 자바스크립트 입니다.
|
| 12304 |
JavaScript
iframe사용시 높이 자동 조정하기 입니다.
|
| 12303 |
JavaScript
계산기
|
| 12302 |
JavaScript
숫자를 한글로 변환하기 입니다.
|
| 12301 |
JavaScript
아이프레임 자동으로 늘어나는 자바 스크립트 입니다.
|
| 12300 |
JavaScript
끊기지 않는 배너 롤링 입니다.
|
| 12299 |
기타
랜섬에 당한 화일 복구
|
| 12298 |
JavaScript
id값 변수명으로 치환 예제 자바스크립트 입니다.
|
| 12297 |
JavaScript
상태바의 링크 주소 감추기 입니다.
|
| 12296 |
JavaScript
가짜 카운터 달기 입니다.
|
| 12295 |
JavaScript
홈에 머문시간을 제목표시줄과 상태바에 실시간으로 알려주기 입니다.
|
| 12294 |
JavaScript
prompt 와 alert 응용 자바스크립트 예제 입니다.
|
| 12293 |
JavaScript
prompt 와 alert 간단한 자바스크립트 예제 입니다.
|
| 12292 |
jQuery
간단한 탭 제이쿼리
|
| 12291 |
jQuery
간단한 셀렉트 드롭다운 제이쿼리
|
| 12290 |
JavaScript
문서내 이미지갯수 출력하기 입니다.
|
| 12289 |
JavaScript
내용 복사해서 붙어넣기 하면 출처 따라오는 자바스크립트입니다.
|
| 12288 |
JavaScript
팝업창 지정한 시간대에 예약 열기 입니다.
|
| 12287 |
JavaScript
접속때마다 음악 다르게 나오기 입니다.
|
| 12286 |
JavaScript
자동 스크롤 메뉴 관련 입니다.
|
| 12285 |
JavaScript
이 브라우저로 몇페이지나 보았나 확인하기 입니다.
|
| 12284 |
JavaScript
사용자 브라우저의 펄러그인 목록 출력하기 입니다.
|
| 12283 |
JavaScript
상태표시줄 제어 + 간단한 복사 제어 하기 입니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기