- 在线时间
- 63 小时
- 最后登录
- 2019-5-3
- 注册时间
- 2004-5-10
- 听众数
- 442
- 收听数
- 0
- 能力
- -250 分
- 体力
- 10122 点
- 威望
- -12 点
- 阅读权限
- 150
- 积分
- -586
- 相册
- 6
- 日志
- 10
- 记录
- 10
- 帖子
- 2003
- 主题
- 1253
- 精华
- 43
- 分享
- 8
- 好友
- 1292

复兴中华数学头子
TA的每日心情 | 开心 2011-9-26 17:31 |
|---|
签到天数: 3 天 [LV.2]偶尔看看I
- 自我介绍
- 数学中国网站(www.madio.cn)是目前中国最大的数学建模交流社区
群组: 越狱吧 群组: 湖南工业大学数学建模同盟会 群组: 四川农业大学数学建模协会 群组: 重庆交通大学数学建模协会 群组: 中国矿业大学数学建模协会 |
5#
发表于 2004-9-27 15:28
|只看该作者
|
|邮箱已经成功绑定
9.加限制的环境 5 v& H8 J6 b: C% U Y( I |
P; ?( m9 ]" F8 u; }$ f$ j$ ^
0 G+ t* H; ?2 E8 `& h) J# \! T7 z/ |8 I+ ^
(1)加限制的shell(rsh) & p% z2 i1 ?7 `8 Y# m$ E
4 i0 z& m% m: p( V
该shell几乎与普通的shell相同,但是该shell的设计能限制一个用户的
* `8 O; D1 J8 X* |" A/ j7 S) S8 _8 y! s8 t
能力,不允许用户有某些标准shell所允许的行为:
6 c, I) r5 _% T% u8 \
7 b0 X+ x2 y/ H- w/ ?+ ]. 不能改变工作目录(cd). 7 G8 B! t$ O) B% |
8 |7 c% j5 Q+ G+ k- q$ m% {
. 不能改变PATH或SHELL shell变量.
9 B8 N u' @7 ?
$ V4 V& d2 s" N1 Y: }. 不能使用含有"/"的命令名.
; } M; n! s) Q7 c# a9 { b0 s4 b
. 不能重定向输出(〉和〉〉).
8 m1 Q8 P; b) k8 `% v" t
3 V5 J) M1 m5 O0 u7 Z, G. 不能用exec执行程序. 4 ?% t d" a! a3 ?0 m' {1 `
( L% E' ?' g! t* u
用户在登录时,招待.profile文件后系统就强加上了这些限制,如果用户 % [* E4 @2 t0 ^! m! D- e
- ?( h6 X% x& J( Z' j
在.profile文件正被解释时按了BREAK键或DELETE键,该用户将被注销. . ]8 R: m* @' M6 c, S( h
4 B0 ^7 N5 R7 P8 m
这些简单的限制,使用写受限制用户的.profile文件的系统管理员可以对
- E" r* g( c( f0 B: @8 D
6 s9 _9 @+ G+ L' K用户能使用什么命令,进行完全的控制. * ]7 R2 D% ]; B9 Q, a- K9 f
/ ]! R! R1 F; X7 p
应当注意:系统V加限制的shell实际上不是很安全,在敌对的用户时不要 ) s7 U- L1 [- Y' P
4 c. k# ^; G4 O3 L1 F9 }8 Y用.系统V版本2以后的版本中加限制的shell更安全些.但若允许受限制的用户 ' o' }3 N* D7 s0 T7 j
% _! g; Q8 `( V3 E
使用某些命令(如env,cp,ln),用户将能逃避加限制的shell,进入非限制的
4 p& ~5 S& l: ?& r3 k
$ |& W k: S0 v; C1 l% ushell.
/ ?# J( o& K/ F' N% ~$ S0 j3 e5 d
6 \1 l6 J. r+ e4 Y6 t. O(2)用chroot()限制用户
7 }9 X4 y$ S b+ g
, `, M0 C2 W; h如果的确想限制一个用户,可用chroot()子程序为用户建立一个完全隔离
- [8 y2 g0 [ @/ R& f T$ ~- ^+ s2 Z' Y" H1 h/ R
的环境,改变了进程对根目录的概念,因此可用于将一个用户封在整个文件系 0 B# {' C" ]3 o3 {9 c. A
, J/ A5 s3 R6 K5 v7 M3 h
统的某一层目录结构中,使用户无法用cd命令转出该层目录结构,不能存取文
. U4 n: q0 e6 S, W. l2 h9 m! D
2 ?6 b; O4 p8 ~9 N/ u, Q件系统中其余部分的任何文件.这种限制方式比加限制的shell好得多.用户使 , D2 p! R/ F- {, D
3 D+ l+ g1 M6 {$ ~* |
用的命令应由系统管理员在新的root目录中建立一个bin目录,并建立用户可 , Q, X: n* _ L/ ]5 Q
9 {+ K" f/ _3 k* v
用命令的链到系统的/bin目录中相应命令文件上(若在不同的文件系统则应拷 $ V" j, y2 W" L5 |$ x, _
) ^) o) E! Z z; a; a5 C! W7 A2 C贝命令文件).
2 Y6 i: g& s) ?/ p4 _$ A5 G- s: j, y# [, z k" d2 }) d4 h Q5 c7 I' g
还应建立新的passwd文件,保留系统登录户头(为了使ls -l正确地报告与
% Q# `+ f9 m5 N( P4 U6 R/ }, n2 m+ U: N: k1 I
受限制的子文件系统中的文件相关的正确登录名)和用户帐户,但系统帐户的 8 k2 ^, z% G( w9 u7 o& b
; L0 q3 C1 L# H$ \0 v* q% `/ a: _口令改为NOLOGIN以使受限制的用户不能取得系统登录的真实口令,使"破密" # b3 `! f9 y9 a$ B# ?
& ?& }* K4 h' ?/ G4 H3 A1 `- V7 I
程序的任何企图成为泡影. / N: H8 k' ~' A% Z! m3 G7 S
8 _3 [! \5 i7 y. X1 p* l) eutmp文件是who所需要的,该文件含有系统中已登录用户的列表.
. H; E2 l9 {- N! U& F
: ?/ k) q u/ @% c0 e0 B新的/etc/profile文件也不是建链文件,以便受限制的用户可以执行不同
8 M$ H) N! g: W# Z$ q, }: Y( k+ H1 @1 D: }, x& y
的启动命令. 8 a4 E8 w4 h* G: p9 g* N
9 X. c4 u H$ r0 L0 L$ n
/dev目录中的终端设备文件被链接到新的/dev目录下,因为命令who产生
( _2 C3 |. X k1 }* p6 O3 [7 x' }7 {; b }
输出时要查看这些文件.
; ]1 k+ i/ ^9 j, k9 S
" C% F0 ]) O# Z: K在系统V及以后的UNIX版本中,login命令有chroot()的功能.如果口令文 * d# z \) R* E8 C, |; s6 v# t; W7 y: l
' D9 T3 k# o, y4 L件中用户入口项的登录shell域(最后一个域)是*,login将调用chroot()把用 4 S C6 f2 w+ B1 M4 k- f
9 `5 h# a {0 F
户的根目录设置成为口令文件中用户入口项登录目录域指定的目录.然后再调
9 K$ v v/ S2 p2 D. z4 N! s) A' l8 ]0 @
( F# C7 C8 R: c7 P5 t' I7 V用exec()执行login,新的login将在新子系统文件中执行该用户的登录.
' m/ G' j# A+ _9 A
0 P$ S; ?1 O! j/ ^# qchroot()并不是把root封锁在一个子文件系统中,所以给受限制用户用的
5 h+ i) K) \0 t" K
) }3 O1 O( |( P命令时应加以考虑,具有root的SUID许可的程序可能会给予用户root的能力.
1 J1 s0 ~& i n6 l
5 H( ]; J# a5 f$ y4 @应当将这种可能减低到最小程度,交给用户使用的命令应当取自清除了SUID陷 & C: ]9 Y) e$ y# e
2 A+ v5 w9 ?& Q6 q
井的系统命令.链接文件可减少磁盘占用区,但要记住,当与敌对用户打交道时
1 e* P& s( H L3 N" K& ^
% m0 [% _; t: D8 J链接到chroot目录结构(尤其是命令)的系统文件是很危险的. 7 ~2 a0 n$ a- ]& n* l) s
2 T# J9 x- ~' p7 u4 l( d4 l
如果建立一个像这样的限制环境,应确保对安装到新的/bin的每条命令都 / v; {! h1 e4 ] b" y8 g j
) `: z; Y. U g
做过测试,有些程序可能有系统管理员未曾想到的出乎意料的执行结果.为了 " ?1 [- W' f! }2 R
3 V; n9 J+ K$ k }/ G* d使这些命令能运行,还得在加限制的子文件系统中加服务目录或文件如:/tmp,
" l# J. M4 `- M2 o$ l4 e0 C& u. \ U) E, N9 g1 Y/ T' O# ^
/etc/termcap,/usr/lib/terminfo,/dev/mem,/dev/kmem,/dev/swap,用户所
' d# @, G& t2 j" e) E2 }* i
& a+ d, m! w+ s% v# e: A: f登录的/dev中的tty文件以及/unix.
* L; s" f' G" b8 s% W" p: s1 ?' X4 @$ ]8 N
有些程序在子文件系统中运行时不会很好,如果将假脱机程序和网络命令
3 t/ q/ k) y' c( o
+ X$ `. q) i; U2 L* Q9 m) [拷贝到加限制的子文件系统中,并放在为两条命令专建的目录层结构下,它们 4 q7 a6 K! f9 k5 H9 ^! L
. r6 O" i- q4 |8 S$ O$ C+ e可能也运行不了.
: x0 M3 @ Q3 V3 _- B4 ]- k4 r* u8 n' m2 A E0 R
9 z) c( U# W3 a u/ [10.小系统安全
1 Y8 X% F+ R' f4 c
9 a& y* j0 v7 e* A B6 ?. _8 o, M7 F1 p+ }" G3 n
任何足够小,运行于办公室的UNIX系统就是小系统.这类小系统也包括所有
, s* A; w1 \" i, P( a& q1 p1 f& s3 z8 P5 J7 Q! P
台式UNIX机器.根据安全观点,使小系统很特别而值得特别的有以下几点:
: {4 J7 Q1 _: u. k# `9 W, b4 Z6 q8 B7 ~* b3 l v$ N
. 小系统的用户比大系统的用户少,通常是很小一组用户,使系统管理员能
! t% A% A( H8 G& E
- n0 O" ^9 D6 Y5 C; q熟悉每个人,安全问题可以直接地面对面处理.
: V3 Y% Y7 A) P- A- H
, w1 b5 p, H$ |& w5 z3 y. 由于小UNIX系统管理更简单,可能只需要一个系统管理员,因而维护系统 0 H# v6 ]# y1 h/ @/ V4 p7 ^: w' B
' ?+ I: K/ T* f8 V9 X安全的责任只有一个人担负. 4 v! F& h- e, ?: J9 B& o
' G h, r) [, Q p. 如果既是用户又是系统管理员,将不能花大量时间考虑系统安全. - g5 d, E( M/ \2 c- S+ l" u
: K1 d1 T0 R0 x7 ~) X. 如果自己拥有系统并且是系统管理员,就可能有权直接将违反规的用户从 6 ?% L! g5 d8 I1 i* ~0 D
: b$ c* M8 l# p. h \. E
系统中删除,而没有几个大系统的管理员能有这种权利.
! R! ^: K1 {9 p0 q
1 j, V4 h9 H% T: K0 K0 a. 如果自己是系统的唯一用户,则将既是用户又是管理员,维护系统安全的
) l1 q4 u# f. H D0 ~( ^# S( g: J& j
任务就很简单了,只须确保系统中所有登录户头的口令是好的. ( u3 c! t& b1 E- S7 E0 W/ }, {: i
( \) E, m9 P0 J0 c( \1 g( }
. 如果不能将系统锁起来,就把敏感的数据存放在软盘上,把软盘锁起来.
b1 r4 X! T6 V# B4 u' n" E- b6 c% |0 M5 m, S0 C
. 即使系统中有若干个用户,但如果系统的终端之产是有线连接,并且用户 1 S7 X. E# c! K& V& `
0 a, z$ ?4 m' h
们保持门上锁,则系统也将是安全的,至少在本组用户内是安全的. + B& p9 d% @3 J( O- r5 d% h% ~' H8 {# R% _
% v {" K, v2 X7 f1 ]- P. 小系统通常有可移动的介质(软盘),可用mount命令将其安装到系统上,提
\/ S4 @( l9 {8 l2 L
& u u1 W' r- m# I- T供一种安全的方法让用户自己在系统上安装软盘,否则系统管理员要一天 " a- f0 M9 y- |1 |% t- W2 X) x
' ~7 l F+ o4 i4 \5 |7 Z# C' Q* E到晚地干这些琐碎的安装盘事务.允许用户安装软盘的通常做法是给用户 ; L' e% ?* H) E: |. z1 ~
4 [& }! u# p1 Q; @$ i# V一个SUID程序,该程序基本完成与系统管理员安装用户软盘同样的操作, 9 \4 W2 S9 `! g9 Y1 Q1 v- f
! n7 P) l" U$ s# a6 S7 ~0 `
首先检查软盘上有无SUID/SGID/设备文件,若发现任何奇怪的文件,则拒 6 Q- p+ R9 M8 h/ e, r x# X
+ N4 n' c* U" g1 e( _" k% h绝安装该软盘. 6 C9 Q' r( m* [1 ^$ k
) b4 X% I3 e( v4 O: \! ~9 B- t3 e. S1 Y. 当小系统开电源后,系统一般在从硬盘引导以前,先试图从软盘引导.这就
$ o8 E7 d2 f1 K' ]- F5 }1 s/ b2 y( ^( k: e$ D% t
意味着计算机将首先试图从软盘装入程序,若软盘不在驱动器中,系统将 u) V0 v6 _* `( C0 n
8 M. F0 Q5 [: d$ u9 R从硬盘装入UNIX内核.软盘几乎可以含有任何程序,包括在控制台启动
$ s9 {8 K; X: D m% S( M3 K! O. w+ y7 h# A. P
root shell的UNIX系统版本.如果破坏者有一把螺丝起子和有关系统内部
! \% ?- b; F) D# @( ^* }% K( y0 M$ l2 n, @# h1 h
的一些知识,则即便系统有被认为防止安全事故发生的特殊"微码"口令, / M! N, d9 v: `
7 G3 a! v, _# T, p C2 U
也可能被诱骗去从软盘引导. 2 r. c# Y4 p/ i; O" a( s
0 Z1 d, U j8 ~3 W4 k& T" f3 i. 即使小系统晚上不锁,凡从不将个人的或秘密的信息存放在大系统上的人 ' u6 @) o/ \- Y- K- {) o" P
6 N. @- H! }% C \1 G9 z7 v他们不可能认识所有系统上的用户),也不会想把这样的信息存放在小系 & D9 b: f/ a0 E
, [) P/ Z7 T ]8 m, C0 X T0 n统上. * p8 V* G/ z9 u3 W- G+ w1 C2 |
- x0 _8 g* j4 s0 A7 S7 @' ^, n% ^2 {
. 小系统的系统管理员在使用UNIX系统方面常不如大系统管理员有经验,而
, x, {' `8 W {; A, g
, z! `; G- P6 ?安全地管理系统需要一定的使用系统的知识.
. ?, ]' S' `5 l0 g8 z1 E0 \8 {# }- {# S+ u6 O$ B3 U: C) [
2 O# v9 c8 P/ y/ h
11.物理安全 7 l; }# E# U9 I; S) b
% a6 w- n0 L, m1 f
& K- c) e1 }+ W' }; [4 ~* B+ D/ N! r
对于运行任何操作系统的小型或大型计算机,物理安全都是一个要考虑的重
1 y0 V7 L3 C) A2 O# I' [6 [; d5 X- Y3 F9 `4 X2 }3 G7 m- L7 y
要问题,物理安全包括:锁上放置计算机的屋子,报警系统,警卫,所有安置在不能 , v: s1 v4 I: w: \2 h* h
7 y9 k. v2 P( c) E# _3 Q+ _, m+ Z$ J5 [
上锁的地方的通讯设施,包括有线通讯线,电话线,局域网,远程网,应答MODEM,钥 % v1 E7 I/ k; @' C$ s1 y* t8 t
* Y7 X. Q' t% @2 Z! L
匙或信用卡识别设备,给用户的口令和钥匙分配,任何前置通讯设施的加密装置, 3 X7 w+ }6 J" j' Z7 ]; o4 O
6 i4 m- T* h8 Y' O. E
文件保护,备份或恢复方案(称为安全保险方案,用作应付偶然的或蓄意的数据或 3 c1 U3 z3 F. \2 j' z) R
7 L6 m, `, \# u1 }# r6 {计算设备被破坏的情况),上锁的输出仃,上锁的废物箱和碎纸机.
A- f, V# U. t* b/ w" L0 h2 _6 `: F( ?( d8 [7 }4 r3 t
物理安全中所饮食的总考虑应是:在安全方案上所付出的代价不应当多于值 $ j5 _2 }& ^% S/ W( M$ ?* b. T9 T% ^
. ]& O- _0 ]- B, @" a得保护的(硬件或软件的)价值.
/ [- ^' |+ t: V8 ^) I$ P; x# X* r/ f" H% ^# Q x
下面着重讨论保护用户的各种通讯线.对于任何可在不上锁的地方存取的系 ! N. h5 V- d# ?2 c. h. f$ Z
& `* L! |' N# D9 b/ p& U. g1 L
统,通讯是特别严重的安全薄弱环节.当允许用户通过挂到地方电话公司的拨号
$ {9 o" U' a$ q. q
% M3 u2 Q3 u4 z# B9 x; v/ i' AMODEM存取系统时,系统的安全程度就将大大地削弱,有电话和MODEM的任何人就
- N+ W0 b- f; F6 S9 u6 [* v: R9 r4 R" c! S! ?2 ?) p2 _3 B9 K
可能非法进入该系统.应当避免这一情况,要确保MODEM的电话号码不被列于电话
+ s$ | H4 i1 L- ~+ C! W; B0 z4 K/ f
薄上,并且最好将电话号码放在不同于本公司普通电话号码所在的交换机上.总
7 U( `! {& w, O6 _2 X _& ]6 X+ y/ O- n5 e
之,不要假设没人知道自己的拨入号码!大多数家庭计算机都能编程用一个MODEM
3 B4 h; `' l6 d! E7 ~8 M. r a3 Z0 S! l* d X/ u- N
整天地依次调用拨号码,记录下连接上其它MODEM的号码.如果可能,安装一个局
' K, s& k9 [! ?* M
0 u! \# V0 e, l1 W" w域PBX,使得对外界的拨号产生一秒钟的拨号蜂音,并且必须输入一个与MODEM相 $ b6 ?2 u9 W0 }& ]6 K1 w
0 U h; U$ N! d0 o7 s# n% O% ?% B
关联的扩展号码. ! K/ n4 D% l( Z) z- y
3 Q8 ?2 a# G# [. G& E8 N
2 w; l2 Z2 p7 R12.用户意识
7 V5 A/ I9 I! ^) t2 m' H+ X, e' p+ n
/ F! B. K$ y5 a" o7 N ~1 R( g9 D; E" Q0 f" `2 _3 p
UNIX系统管理员的职责之一是保证用户安全.这其中一部分工作是由用户的
+ N4 O# Q: \9 Q D' _( ~7 t' e# f% }5 N0 c0 l; z+ b1 p. k! c
管理部门来完成,但是作为系统管理员,有责任发现和报告系统的安全问题,因为 A, w8 T& S z8 f' [
5 O D6 Z- v J+ f! C系统管理员负责系统的运行.
3 F0 c+ w- j! @+ A7 r5 p) E' s- }
2 Y( T+ U1 f' W9 `2 E避免系统安全事故的方法是预防性的,当用户登录时,其shell在给出提示前 0 |8 N: ]. ~' p% G: k
1 D: H6 N7 H6 C
先执行/etc/profile文件,要确保该文件中的PATH指定最后搜索当前工作目录,
' A% }8 G: q0 Q* @: }6 z" C, Q& U4 d0 Y/ I% |
这样将减少用户能运行特洛依木马的机会.
1 c% n' _* f# |; x" g9 |. r; e9 [* U
将文件建立屏蔽值的设置放在该文件中也是很合适的,可将其值设置成至少
7 K0 l# F7 a1 r/ n) p& n2 g" J& W
) Q6 [! |9 n; q" B2 f) G将防止用户无意中建立任何人都能写的文件(022/026).要小心选择此值,如果限
: U, Y: c9 I$ v, o2 {9 C
" q5 m& p5 Y* S: y4 T3 w, g制太严,则用户会在自己的.profile中重新调用umask以抵制系统管理员的意愿,
8 x" p' _- j2 F6 ^' b$ B
' q& Y1 `6 N3 w: P% P L如果用户大量使用小组权限共享文件,系统管理员就一要设置限制小组存取权限 4 j2 r0 L% E5 P! |
8 I! S N& |) F9 C
的屏蔽值.系统管理员必须建立系统安全和用户的"痛苦量"间的平衡(痛苦量是 / V1 j# B" |; I# c
( k+ E9 i# `# c6 U: f. Z; L安全限制引起的愤怒的函数).定期地用grep命令查看用户.profile文件中的 * K+ _# i5 x% R4 Y3 t* z
) }- I) |: Y! Q2 i+ ~
umask,可了解系统安全限制是否超过了用户痛苦极限. * }4 [( J' i3 }
. p2 C6 ^: s" Y6 Z G* x系统管理员可每星期随机抽选一个用户,将该用户的安全检查结果(用户的 9 C) p7 o9 j3 n. U( G( R
: o3 J1 ?4 M2 {0 K5 x
登录情况简报,SUID/SGID文件列表等)发送给他的管理部门和他本人.主要有四 1 K( i5 i9 G7 ^. j# F
- K% Q4 q' @/ U3 T. G7 q个目的: ! o& {3 M8 T' T# N5 w
* M: v6 v0 y. T; |( Z5 `& Z
. 大多数用户会收到至少有一个文件检查情况的邮件,这将引起用户考虑安
8 Q# Y$ h- a# b2 y2 S; Z
% e3 ]1 X2 z& z" D) T5 _ n7 a6 C全问题(虽然并不意味着用户们会采取加强安全的行动). 1 D# Y# o' Z: B
+ _7 l8 `) U ]. 有大量可写文件的用户,将一星期得到一次邮件,直到他们取消可写文件 # K3 @% C! B% N) i7 R/ v
4 x8 s' x( y6 P- K# I0 Z- R+ o的写许可为止.冗长的烦人的邮件信息也许足以促使这些用户采取措施, ( U7 }/ V* U" p3 S0 Y
! S$ S0 Y l& ?7 V* R
删除文件的写许可.
. X3 t% X- S. }- A
3 J$ t; \8 k0 G3 ~( y. 邮件将列出用户的SUID程序,引起用户注意自己有SUID程序,使用户知道 6 y$ j1 L' w! Q# s: {* I
: U6 N$ B/ S1 u, m1 u! l+ K4 Y是否有不是自己建立的SUID程序. 0 b7 R& S4 Q, j7 T
: z8 k* F# I6 y" |4 Z% f. 送安全检查表可供用户管理自己的文件,并使用户知道对文件的管理关系
: H! ~6 m8 w9 x! |9 w
! j Y% I _4 s& [到数据安全.如果系统管理员打算这样做,应事先让用户知道,以便他们了
) l9 s7 h# m, k6 i% r* U
( K7 V* n# P% ] f- z/ e$ \; t解安全检查邮件的目的.
: S1 d$ k5 f. t4 Q: n! }' s; Y& }4 W0 A2 c
发送邮件是让用户具有安全意识,不要抱怨发送邮件.
. F' z6 k2 i* m, z" N" p W% o: L
" T- r8 n1 K4 H* e# y) t0 g! T) i) u7 g; l, |
$ @2 C3 c, z! _ `7 M管理意识是提高安全性的另一个重要因素.如果用户的管理部门对安全要求
: f3 b6 G+ N* u l, J J5 H( o3 F1 r1 K3 X) s
不强烈,系统管理员可能也忘记强化安全规则.最好让管理部门建立一套每个人 2 ]- ^5 J& t# E
/ _ u% [) W! p9 d5 H% a; h# F
都必须遵守的安全标准,如果系统管理员在此基础上再建立自己的安全规则,就 ' r H! @1 u+ r- g4 j/ i4 o# h( t
: Q7 A1 c1 p/ {, `
强化了安全.管理有助于加强用户意识,让用户明确,信息是有价值的资产. ' E: W$ f: v9 ]" ^8 R9 Z9 r1 G+ `4 d: E
5 o3 o8 H* H( W( P k
: W1 V( W9 O3 J9 k7 ?
* w- t/ w$ z+ j. N9 a, A
系统管理员应当使安全保护方法对用户尽可能地简单,提供一些提高安全的
9 ^! Z5 z( U, }) L W3 s# U5 m; P5 m4 u I- E$ E3 s
工具,如:公布锁终端的lock程序,让用户自己运行secure程序,将pwexp(检查用
G c) g/ [- w# _. ]( T" T0 L" `. ?5 ?) a
户口令信息的程序)放入/etc/profile中,使用户知道自己的口令时间.多教给用
& g; P5 R$ v: w6 H- l% w" d) |6 \3 ~( h( d8 q
户一些关于系统安全的知识,确保用户知道自己的许可权限和umask命令的设置 ) b" Z9 }; \0 q1 [/ U; p1 N* }, W
( x C9 q% t8 `+ T' s
值.如果注意到用户在做蠢事,就给他们一些应当怎样做才对的提示.用户知道的
! l/ O# f+ Q# n* N* Y0 J2 t% q# n, @" Z2 Q; D! d
关于安全的知识越多,系统管理员在保护用户利益方面做的事就越少. 5 {6 W7 C. u( N" S+ E7 T0 G
6 ^& }. x3 X9 z! d) X4 ^1 J# p' l) N' n% F; x
13.系统管理员意识 5 |3 k' c" t1 G5 u$ `
2 P0 [' P/ V! h: ~; c, T! Q
1 y+ B1 e# W2 N4 m8 P(1)保持系统管理员个人的登录安全
# g2 w! k% K: W6 \% `$ n9 r- ?2 p3 z. K% K6 ]+ p
若系统管理员的登录口令泄密了,则窃密者离窃取root只有一步之遥了,
7 @6 V( ~# f( X2 l# Q i7 K; l- `5 ^+ Q F6 j
因为系统管理员经常作为root运行,窃密者非法进入到系统管理员的户头后,
) R) Y8 D' G# M" v! L" J1 P9 c/ o7 c2 U4 c9 y+ G: B6 x: X$ l
将用特洛依木马替换系统管理员的某些程序,系统管理员将作为root运行这些 # W6 r# g- D; q3 H1 K2 ?) |9 I# d9 Q
% M6 t0 ^7 R' K* O8 K已被替换的程序.正是因为这个原因,在UNIX系统中,管理员的户头最常受到攻 ) Q" p' o+ K4 Y7 u, g( J
$ F4 u0 m$ S1 Q7 ~. r
击.即使su命令通常要在任何都不可读的文件中记录所有想成为root的企图,
6 z8 v. e" }+ x
4 E9 T) S' r: }还可用记帐数据或ps命令识别运行su命令的用户.也是如此,系统管理员作为 4 L* j0 \+ g2 D, E0 s# b! v0 ?2 u
- K6 B5 S/ q3 Y) M+ m
root运行程序时应当特别小心,因为最微小的疏忽也可能"沉船".下列一些指
$ Y( _1 R) w) c/ {3 w7 B5 E5 M; U. X5 `1 I
导规则可使系统管理员驾驶一艘"坚固的船": ) B- A+ Z& L2 b/ ]( h6 ?" ~# G
" ?5 i: {- K; \# T. 不要作为root或以自己的登录户头运行其他用户的程序,首先用su命令进 2 f' g2 h; j% e' L% J4 I, ~2 Z- _
( j% J- k# X* C* U- w# @, x1 y% y入用户的户头.
7 ^7 S! q7 u% A0 q- o0 P% q9 a& ~+ c5 c. I1 P/ Q1 Y5 z& J' c5 d) n4 w
. 决不要把当前工作目录排在PATH路径表的前边,那样实际是招引特洛依木 ) ^( l2 c+ }( a) y% h4 _+ d
; {, }+ p5 S: L% t8 t
马.当系统管理员用su命令进入root时,他的PATH将会改变,就让PATH保持 & D% X1 ?$ [7 @! C
. F/ ?, S g. \( l; n0 A这样,以避免特洛依木马的侵入.
6 b; r! z4 p4 Y$ F
( K$ j( y( @5 T' \7 R5 L. 敲入/bin/su执行su命令.若有su源码,将其改成必须用全路径名运行(即
$ E9 \! S6 A# D( M% C" |0 C
' {% h& _* l9 D3 f1 Y, r/ isu要确认argv[0]的头一个字符是"/"才运行).随着时间的推移,用户和管
0 E' u/ U. n) v
5 E) O* a7 ~7 n/ B2 p理员将养成敲/bin/su的习惯. . G' e; Q/ ^- i# o7 g
7 b' g) O1 w3 M+ o
. 不要未注销户头就离开终端,特别是作为root用户时更不能这样.当系统 + @5 }8 R) N1 b( i, D, N
6 | B5 s$ O+ W# Q# ]
管理员作为root用户时,命令提示符是"#",这个提示符对某些人来说可能
1 |6 ~4 C8 D" z2 D9 B
4 `# \/ g1 N f# p) v( `) i- t是个红灯标志. 7 F6 d `! \: G) `8 l, `% w
{/ M u, E) g& S" [
. 不允许root在除控制台外的任何终端登录(这是login的编译时的选项), 1 `; I6 s! h u( t+ ~4 M
L7 f* i: t3 u) I如果没有login源码,就将登录名root改成别的名,使破坏者不能在root登
|; ^) W: h7 e7 l" M% v5 ]/ s
3 l) Q$ ^0 r1 Y* K录名下猜测各种可能的口令,从而非法进入root的户头.
) b$ }& y! F: |- D6 d( c8 m5 q' s4 A& L, a. ?5 {
. 经常改变root的口令. % B) J7 G' J& L
+ {% T, r3 W* s) @9 o# Q
. 确认su命令记下的想运行su企图的记录/usr/adm/sulog,该记录文件的许
% \5 y5 y6 h! e, I8 j9 \* z$ a
! Z$ q3 R( ^1 d) `! G可方式是600,并属root所有.这是非法者喜欢选择来替换成特洛依木马的
$ P9 m% `) N9 W
$ u$ \7 k$ z n1 w! g0 J, {文件. ; L- Y6 y' N# g6 L3 W6 h, k
% F( }9 r3 v8 b5 n
. 不要让某人作为root运行,即使是几分钟,即使是系统管理员在一旁注视
1 L$ v) Z. f1 I- o( X. C' K5 T1 u# h' a' k! I
着也不行!
. Z4 H( m4 s. l& ~1 P# w% B( ^9 E* h! u% d( K; G7 |
7 R- N7 X _8 a2 ~1 {0 z6 t
(2)保持系统安全
, @, n" ~- p' {8 d# I& V
) B8 M. Q% L2 m ^. f/ @! C# S3 J. 考虑系统中一些关键的薄弱环节:
: ]% _7 M# |- [
' I( o2 [2 l) \) O/ p; |& Wa. 系统是否有MODEM?电话号码是否公布?
/ R2 T9 t+ U9 O x( L! i7 J8 q; l8 p+ y- ~
b. 系统是否连接到?还有什么系统也连接到该网络? 3 {* l; ^/ F# ]
% M3 x2 c* c# O5 G! @) ^
c. 系统管理员是否使用未知来处或来处不可靠的程序?
& o3 Z: l7 A I) n3 w
' l7 T! B! {8 m# f9 U$ p. ?2 ]1 Ad. 系统管理员是否将重要信息放在系统中? - t' \0 E% K3 f) w9 l1 D
1 ]% a. K5 d9 y1 ]! B( [" ^% u
e. 系统的用户是熟悉系统的使用还是新手? : I0 q B. g, h8 k: L, ~! h( _2 ]
) X) i* A' D: ]" P% w
f. 用户是否很重视关心安全?
2 W5 {7 x }0 D# z2 M' W l+ L5 d; [& ^( T& M- m8 {1 X; m
g. 用户的管理部门是否重视安全? * g4 c. ^% a6 n& P3 R* E6 g
+ \( M- w8 L' H) Q9 c, Q( ?
. 保持系统文件安全的完整性.检查所有系统文件的存取许可,任何具有
# t7 d( }( W6 z ]0 a _+ p$ o. M' A& d' d' O. |
SUID许可的程序都是非法者想偷换的选择对象.
4 b6 t) h# s0 l! B
. h. C* O5 E( I" p. 要特别注意设备文件的存取许可.
- t! i0 O, ?+ ~1 ], Y5 m. C/ t/ O; Q
. 要审查用户目录中具有系统ID/系统小组的SUID/SGID许可的文件.
0 q9 k: T3 Q/ K# m( Z8 v( w% I$ c+ Z; c, z, W( i+ i
. 在未检查用户的文件系统的SUID/SGID程序和设备文件之前,不要安装用
3 g8 ~( Q' [- u+ `
" B% |, a8 Y; M& P户的文件系统.
~, E' g5 K; \# \7 \( v" i5 l2 Q1 P! y
. 将磁盘的备份存放在安全的地方. . Y9 b* T: `5 W P, \0 ~
4 n; |6 j6 M% h1 b. 设置口令时效,如果能存取UNIX的源码,将加密口令和信息移到仅对root
; i) r0 Y/ P6 s% p* T, S+ m8 }/ t# O4 X5 {
, d! V- P; h6 C6 I& |" O5 S
可读的文件中,并修改系统的口令处理子程序.这样可增加口令的安全.修 8 r9 N* i# G6 H. E) R
0 u; |2 V" N6 e8 e改passwd,使passwd能删去口令打头和末尾的数字,然后根据spell词典和 5 w. y" j6 @" t1 i9 k
. j9 l% I% H! D) J& D3 H9 k- ^8 C/etc/passwd中用户的个人信息,检查用户的新口令,也检查用户新口令中
, G" ^+ W1 l+ d4 d- A8 T9 n& O4 w" X, _; G6 w' h, D7 `1 b! S1 K
子串等于登录名的情况.如果新口令是spell词典中的单词,或/etc/passwd
4 M/ o2 I2 Q* L/ x: Z% R6 c% k3 t' N, m9 l
中的入口项的某项值,或是登录名的子串,passwd将不允许用户改变口令. 4 y$ r+ p5 @* w; A
) Z9 G" Z4 I' g6 u0 r3 L. 记录本系统的用户及其授权使用的系统.
3 }/ g, H; |* C" K, ~+ H
; g u7 ~' I& e8 x. 查出久未使用的登录户头,并取消该户头. * \; M' u6 a% y
$ m2 P7 ~, d8 {/ j
. 确保没有无口令的登录户头. 6 S% E1 Y4 h! `9 M- y
) z( V. T9 j9 r( C/ o! m. 启动记帐系统.
* S# l) }# ]" B8 X6 |0 b# e1 K0 i& @; G+ C& G$ G" f, s
. 查出不寻常的系统使用情况,如大量的占用磁盘,大量的使用CPU时间,大 4 j2 B; ~. c/ a+ @4 g
# b$ Z( w+ L2 B$ m1 k) t. ^量的进程,大量的使用su的企图,大量无效的登录,大量的到某一系统的网
2 t3 M7 c" [: r- S o! b
6 M/ g( {# t* [! f$ |5 B3 g络传输,奇怪的uucp请求.
$ y% Y* D) d( m, d4 V& `! N" G( f* A3 j a
. 修改shell,使其等待了一定时间而无任务时终止运行.
) K# s- e" G& K( M& P+ t$ d3 M
3 l; s6 q) T1 W! @( l9 [. 修改login,使其打印出用户登录的最后时间,三次无效登录后,将通讯线
+ e4 z& T% [* y) Z, ]
" M6 t3 P4 b$ X$ ~- @& k. z. ?2 T" ~挂起,以便系统管理员能检查出是否有人试图非法进入系统.确保login不
( F) ?- v3 M6 ]# \4 K
5 {* D- q5 Y8 j3 _0 a让root在除控制台外的任何地方登录. . e- k! o2 {0 L9 l: f+ P
p4 y1 }/ B+ a5 |1 a1 B
. 修改su,使得只有root能以过期口令通过su进入某一户头. % d0 O! ^3 b8 o/ g& c& ~" N2 R
& x7 I- W& h- p) B# H r
. 当安装来源不可靠的软件时,要检查源码和makefile文件,查看特殊的子
. b& [, }8 z5 K7 W) u8 W. A4 R) E3 k# k$ L7 h
程序调用或命令. & L+ u3 Q2 j; b
0 o' l# K0 P$ Q1 x$ d* t4 w$ `" q
. 即使是安装来源可靠的软件,也要检查是否有SUID(SGID)程序,确认这些 1 C9 X6 _6 G# `3 c# Y9 Q- C
* v3 X8 _2 J' w, K2 P" w& w6 E
许可的确是必要的.如果可能,不要让这些程序具有系统ID(或组)的SUID
/ m7 G. L' h( y5 q* L7 _" S' y8 ^# y+ {# A) q
(SGID)许可,而应该建立一个新用户(或给)供该软件运行. * d7 \5 _' c7 m2 Z4 y$ P$ a
% W/ o0 {! F4 Q% E9 d. 如果系统在办公室中,门应上锁,将重要数据保存在软盘上或带上,并锁起
5 Q5 F+ t4 p4 _7 h
* z& K( L/ X# Y! V+ T来.
* x* m; ?& ]! J8 n
( k( v( d9 T+ R/ j) I* a. 将secure,perms和任何其它做安全检查的shell程序存取许可置为仅执行, - a5 }$ G9 K( J# w& m* R, d
1 B: S' v a4 ]2 _& e" ]9 h1 u
更好的是将这些shell程序存于可拆卸的介质上.
0 o G6 Q- P) R8 k
7 n' l1 Z6 b5 c. 记住,只要系统有任何人都可调用的拨号线,系统就不可能真正的安全.系 6 n$ z1 P) z& K& X, F
+ y% }1 Z" B* S" k7 u
统管理员可以很好地防止系统受到偶然的破坏.但是那些有耐心,有计划, % Q- ~ T- ?0 J* P' A) I
: `0 _6 k" a- q# O* e0 Z
知道自己在干什么的破坏者,对系统直接的有预谋的攻击却常常能成功.
5 Q+ w. L. R% J4 m; I+ @4 \
/ H& [0 o3 X' E, s1 ~. 如果系统管理员认为系统已经泄密,则应当设法查出肇事者.若肇事者是 9 `1 H9 |, p$ g/ A4 \
L9 y8 W$ ~6 h8 p( _; c2 [本系统的用户,与用户的管理部门联系,并检查该用户的文件,查找任何可
4 W7 D% W. j9 z9 @6 T- b& b' v- [! ?) _, D" n: J! }9 j. w2 Z& {
疑的文件,然后对该用户的登录小心地监督几个星期.如果肇事者不是本 + o4 \ v! m Z$ }" O7 }; p# e1 ~
# P1 ]' \8 o- C1 z, A9 J. s
系统的用户,可让本公司采取合法的措施,并要求所有的用户改变口令,让 A9 M: \% T q( K: n% O2 Q% f' z$ }9 w
0 q, ^9 O: B* `+ i用户知道出了安全事故,用户们应当检查自己的文件是否有被窜改的迹象.
, q& D3 U! r* v8 i
0 O: t8 I3 Z8 ] Y( j2 y+ d如果系统管理员认为系统软件已被更改了,就应当从原版系统带(或;软盘
1 {4 t1 ^9 t6 ^8 Z9 i# H' ~4 b, `* z3 N2 E7 m: e* w7 X
)上重装入所有系统软件,保持系统安全比道歉更好. |
|