QQ在线服务: 风舞残阳风舞残阳 年满19岁年满19岁 小罗小罗 晴天晴天 心雨心雨 叮叮肉叮叮肉 小周小周 小童小童 小破孩小破孩 遥望当年遥望当年

用户导购指南

水货IBM笔记本电脑报价

行货IBM笔记本电脑报价

IBM服务器报价

IBM笔记本电脑配件报价

本周水货IBM笔记本电脑特价

IBM笔记本电脑驱动下载

水货IBM笔记本电脑验机流程

水货IBM笔记本电脑保修政策

IBM笔记本电脑FRU查询

IBM笔记本电脑常见问题

IBM笔记本电脑使用手册

笔记本电脑验机软件

论坛积分使用说明

水货IBM笔记本电脑异地购机流程

笔记本电脑购机经历及现场

贵宾申请入口

贵宾用户FTP入口

查看笔记本配置

水货APPLE苹果笔记本电脑报价

 
发新话题
打印

[linux教程] 利用Tripwire检测系统完整性(1)

利用Tripwire检测系统完整性(1)

来源:Isblog.cn% J2 E' [) F2 Q4 k5 Y% v/ Z  o' c9 L
完整性是安全要求的基本要求之一,本文将向读者详细介绍如何利用开源完整性检测工具Tripwire来检查系统的完整性。
: J! s  w! W9 k" w
4 n6 N8 \/ p. C+ V1 d+ _/ e一、系统的完整性
/ r, F$ E9 h  \" n; X
, o/ x" Z& N1 h我们知道,系统的正常运行要靠系统程序的正常运转,而程序的运行又与其可执行文件休戚相关。所以,维护系统完整性是确保系统安全的一项基本工作。我们这里的系统完整性是指系统中可执行文件的完整性,也就是说系统中的程序文件没被非法修改。
# E; p( R3 _* P1 F: u7 G
7 c' r# a3 r4 h* I: _" Z  M4 S如果可执行文件被恶意修改的话,如改变、插入或删除等,将直接威胁到系统的安全性。大多数情况下,黑客渗入到系统后会立即修改某些系统文件以创建后门,如用准备好的替代物换掉系统中原有的/bin/login文件以便使其不用口令便能登陆系统;然后再修改某些文件,例如/bin/ls等,以便隐藏其行径。如果我们没能发现这些改变的话,那无异于身处险境却还以为很安全,这就为黑客的长期入侵提供了非常有利的条件,同时也意味着我们的损失将更大!为了改变这种被动的局面,我们需要一种文件完整性检查工具,使得当系统文件被恶意修改后能及时发现,从而为进一步处理创造条件。
! S- |4 F- p4 Z" l2 v% {
3 d& g5 `( t: ]二、Tripwire概述8 P7 Q7 Y4 J) ~' X' O
  F. {' v' X8 `
Tripwire的运行机理8 v6 z. s9 i; ~
# a! `& j: a( W  I5 T
Tripwire是一款最为常用的开放源码的完整性检查工具,它生成目标文件的校验和并周期性的检查文件是否被更改。下面我们简单介绍一下Tripwire的运行机理。与大多数完整性检查程序相同,对于需要监视的文件,Tripwire会使用校验和来为文件的某个状态生成唯一的标识(又称为"快照"),并将其存放起来以备后用。当Tripwire程序运行时,它先计算新的标识,并于存放的原标识加以比较,如果发现不匹配的话,它就报告系统管理人员文件已经被修改。接下来,系统管理员就可以利用这个不匹配来判断系统是否遭到了入侵。例如,如果Tripwire已经为/bin/login和/bin/ls存放了快照,那么对它们的尺寸、inode号、权限以及其他属性的任何修改,都逃不过Tripwire的火眼金睛。尤其是对于文件内容的修改,即使只改变了一个字节,Tripwire也能察觉得到,因为校验和是针对文件整体的。
4 w  z  E& `  H- f6 @  X4 Q7 ^( |" \& W
通过对以上运行机制的了解我们不难发现,完整性检查工具的安装时机非常重要,最好是在交付用户使用和连入网络之前的Linux系统初装时进行。因为完整性检查工具只有保留了系统文件的初始状态(快照),才能确保系统文件的完整性;如果在系统使用一段时间后再取其快照的话,它很可能已经不再是原系统文件的映象(如已经遭到破坏),所以这时的完整性检测的可靠性已经打了折扣。
+ Q/ W/ d; }7 s+ o+ _5 Q% C
* ?$ K. ]8 c+ a& s- \Tripwire的组成, D; c$ L+ L2 R; j- y1 M0 o

3 T5 @7 E7 r, u" hTripwire主要由策略和数据组成。策略不仅指出Tripwire应检测的对象即文件和目录,而且还规定了用于鉴定违规行为的规则。一般情况下,对于/root、/bin和/lib目录及其中文件的任何修改都应视为违规行为。数据库则用来存放策略中规定的检测对象的快照。只要建立了策略和数据库,我们就可以随时用快照来比较当前的文件系统,然后生成一个完整性检测报告,从而判断系统的完整性是否受到攻击。除了策略和数据库外,Tripwire还有一个配置文件,用以控制数据库、策略文件和Tripwire可执行程序的位置等。
4 z3 b2 X/ Q; r- p5 f4 I3 W* h
# A6 \, I4 l: `/ H3 U6 ]为了防止被篡改,Tripwire对其自身的一些重要文件进行了加密和签名处理。这里涉及到两个密钥:site密钥和local密钥。其中,前者用于保护策略文件和配置文件,如果多台机器具有相同的策略和配置的话,那么它们就可以使用相同的site密钥;后者用于保护数据库和报告,因此不同的机器必须使用不同的local密钥。
  a! g" N; d$ t- T0 O/ |" m8 r) M) \
三、Tripwire的安装和设置
! D7 Q* Q4 W7 k' X  j3 C3 x* d
& L. A2 L" T( O- ^* @Tipwire的安装$ I' W7 N" l) L" m& p- F4 D! l
' K" ~0 L- A' A( L- ?
Tripwire的下载地址为http://www.tripwire.org。如果您使用的是RedHatLinux的话,可以下载该站点上的RPM格式的程序(当前最新版本为rpm4-tripwire-2.3-47.i386.tar.gz),假设将其下载到/A目录的话,安装过程如下所示:
, b! E, O" D7 ~1 n0 t! I1 J# ]: n0 Z6 @7 P: f
3 g( s1 u- a2 k& _& k' F5 Z4 l1 k
9 _! N9 M% r. X# L5 p' ^
+ ]. S% y, u% l

/ T* }8 a2 m3 Y" X! d. brpm-ivh/A/rpm4-tripwire-2.3-47.i386.tar.gz/ B0 @. y+ r. N6 A5 u& D$ G9 F' l
[color=#FFFFFF']
: Z$ t8 A0 k/ B: B& y; H- m5 j# |' D

" m& v; R; X3 r5 J7 w9 v& \7 _如果从源代码中进行软件安装,先下载tar格式源程序并解包。接下来在相应目录中执行如下操作:3 S1 `* b5 W2 {
1 O! v% `+ U8 W5 }( F4 p

$ S" |( Z! c3 y& ]' Y, W: e* X
2 L* v2 n$ T& m* m1 `
( K+ {1 S' k0 G
./configuremakemakeinstall
& `* `9 p9 H) P7 H1 X[color=#FFFFFF']1 K6 _8 ~& d: Q* j1 Q

  \" j! t- V+ t. h6 u) w$ p( w' r, v% ~! {
3 i3 O! ?7 ]. y4 Y安装后的设置
* q% r- T2 f# W2 V( y" [' i( `. p6 F# Q. U2 P
在安装Tripwire之后,可以进行如下的设置:: G: W& {- l3 c; {

3 A( ~+ w) S- D& J/ u
9 h+ w: q0 S; E  ^1 O1 v* |% I8 X! @& {

6 {* k4 T/ H8 |- o/ ~0 ?# n$ f; S( k2 s
#cd/etc/tripwire#./twinstall.sh#tripwire--init#rmtwcfg.txttwpol.txt
- S0 }/ x7 v& z. a0 t( q% s' z8 _1 f7 j' c1 i4 N: U
这里,脚本twinstall.sh的作用在于执行下列任务:
5 Q1 \  _) c- n9 E2 H1 R- Z
: s1 g, @0 s8 K! E7 j1)创建site和local密钥,这时会要求输入口令;如果这两个密钥业已存在,则可以跳过此步骤。其中,site密钥存放在site.key文件中,而local密钥则存放在hostname-local.key(这里的hostname是指该机器的主机名)文件之中。  `4 g3 B  `2 P' d, S. S/ C+ C

6 c/ G0 I. ?$ i+ b2)利用site密钥对默认配置文件twcfg.txt进行签名,并将签名(而非被签名的文件twcfg.txt)存放于文件tw.cfg之中。- a3 _9 Q, V* q  e: k9 x! N
8 }5 `$ o$ o9 [8 g0 c
3)利用site密钥对默认策略文件twcfg.txt进行签名,并将签名(而非被签名的文件twcfg.txt)存放于文件tw.pol之中。( J# B* Y. _( Z
3 b* e6 r( r% {8 @  o
此外,您还可以手工方式来安装,尤其是在由于某种原因,您的系统没带twinstall.sh文件等情况下则必须手工完成这项工作:
, q( f% a# k( P2 f, @1 T
2 |3 T7 N; V4 q6 W$ _4 Y设置常见的变量:8 o( S8 C! H/ }$ |6 b, c. T$ |3 J# L9 I
% u- _3 M, w# n; T- `

2 V% g7 T" `: ]2 |6 C: z% V$ J2 x
% O# q# u$ _. t" y1 ]) R7 f' B" `; b6 _2 \. m$ E* ]9 [

# \% J1 a5 V8 d# z; rDIR=/etc/tripwireSITE_KEY=$DIR/site.keyLOCAL_KEY=$DIR/`hostname`-local.key. o/ [6 C& I+ o. f$ @( T
[color=#FFFFFF']
1 A( p' z8 O# g  U0 T8 T% \- H. J$ t, j1 z6 u
! J8 J  {0 j" {
创建site密钥
- L; }% t2 Q$ b6 S% N1 Q: r& k* j" T- k: V

2 [8 D3 g2 J* Q7 ^# s# D: j: W6 t) n
& \2 c! X1 y" \: o2 C
" i* p. P+ w% r& |$ O; S
#twadmin--generate-keys--site-keyfile$SITE_KEY
: M& W, b3 u# u  n: g6 n7 J. w
生成local密钥3 K& i4 p& i. ^; [0 Q
4 p) a& B( v0 t# W0 G9 P
% q7 Z( U9 ^& C/ B0 J

0 Q' X- l$ Q" n9 k# R; D. G% d) T* _% Q* V/ \5 i" e, b1 U
) w0 [1 y4 E" W' y
#twadmin--generate-keys--local-keyfile$LOCAL_KEY
) k$ [+ `- ?6 _( s% I: f. s, S' N1 m# Y4 O- U2 C
为配置文件签名
8 P  k% u( m) a* S; G: K. r4 D" x, @5 |
) e1 x8 }9 Z5 |9 ]/ Q& j/ C( u

  h5 ]. T/ Y/ f0 U. {) W0 j$ r" [0 ^: f, \1 I) H
, [4 G: G% L/ i
#twadmin--create-cfgfile--cfgfile$DIR/tw.cfg\--site-keyfile$SITE_KEY$DIR/twcfg.txt( j1 e/ o3 |; I9 x' g* d) T! c0 Y
* ~8 Q* E7 c- \1 r( N
为策略文签名9 ]8 J) l1 f. o/ m) K, j: Y

0 s/ @- \8 @2 I: r. W$ r+ q% f" T$ E  F! P; q

4 g' z% {" j% \" {+ r* ^; Q+ _1 B8 N+ G5 w" o( N* i
  g0 L2 c4 C# a4 `
#twadmin--create-polfile--cfgfile$DIR/tw.cfg\--site-keyfile$SITE_KEY$DIR/twpol.txt4 Q  E8 u3 r+ z( Z
6 h" k- y+ g  s- U
设置权限
4 Z4 b- Q" K% M! j. M' w1 |
$ w: R' U0 a( N  `( F5 k8 k! G9 |
4 ^. q- R% q# u# }( x* o% c6 ~1 }
" c* k% I5 |  @# R0 ~% E
) \) @  z- V! H+ J) U) }6 q1 P' G/ o
#cd$DIR#chownroot:root$SITE_KEY$LOCAL_KEYtw.cfgtw.pol#chmod600$SITE_KEY$LOCAL_KEYtw.cfgtw.pol7 v+ z4 d. Q3 V8 ?1 n

& R' f: [) `$ w7 l+ }需要说明的是,上述配置是以您的默认配置和策略文件已经存在并分别为twcfg.txt和twpol.txt为前提的。一般情况下,为了使这两个文件能更好的满足我们的系统要求,还必须对其进行相应的修改(见下文)。此外,策略和配置文件的名称必须为twcfg.txt和twpol.txt,因为脚本代码就是用的这两个名称。
& V3 q( z  l+ P" C$ a) F9 t5 V8 \7 w7 m
然后,为tripwire建立数据库并用local进行签名,命令如下所示:& ^0 n' d" m+ u0 S
( g7 E: c0 h0 {
) |4 P' g3 o  D2 `$ W; {3 u# D

0 u0 ~" o9 z) o4 }6 _* V  S, L. o, n3 P

$ Q  {. o, C* O- {, A#tripwire-init; h  x  P9 @5 a% L0 `! e/ v
3 ]) i5 R! _2 l* v, d- \6 t
需要说明的是,完成此项操作,需要输入local密钥的口令;如果tripwire出现似"Warning:FileSystemError"之类的错误消息的话,那么可能是由于默认策略引用了并不存在的文件所引起的。
# ^5 F& G) y' y" c" u5 ]+ h& T8 U: K% S0 A/ q& ~% h
为了安全起见,我们还需要删除明文形式的策略和配置文件,命令如下所示:
; `  v/ E' k# A  l- m( L' x$ z$ l+ g- T7 o6 T; y
! ~' G, Q; o6 |% {+ M

% g5 x% I- V* x5 ^1 ?  t  E" j4 z
  n+ |1 |) Q6 g0 i2 l6 }
: @( ?( d* W/ X: r% o#rmtwcfg.txttwpol.txt
(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)

TOP

******请登陆论坛查看内容******

(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)
本帖最近评分记录
  • hotjava 鲜花 +3 恶意灌水 2008-6-18 12:01
  • hotjava 砖头 +3 恶意灌水 2008-6-18 12:01
这是赤果果的灌水呐
What good would wings be
if you couldn't feel wind on your face

TOP

发新话题