[【安全加固】] 配置安全的sco unix网络系统
一个网络系统的安全程度,在很大程度上取决于管理者的素质,以及管理者所采取的安全措施的力度。在对系统进行配置的同时,要把安全性问题放在重要的位置。
# z) x7 x; k; q' f* a
9 g- e3 x) a. q9 s sco unix,作为一个技术成熟的商用网络操作系统,广泛地应用在金融、保险、邮电等行业,其自身内建了丰富的网络功能,具有良好的稳定性和安全性。但是,如果用户没有对unix系统进行正确的设置,就会给入侵者以可乘之机。因此在网络安全管理上,不仅要采用必要的网络安全设备,如:防火墙等,还要在操作系统的层面上进行合理规划、配置,避免因管理上的漏洞而给应用系统造成风险。 5 _6 c9 y6 |3 n
* o: ?% g, [$ a2 f, [7 m 下面以sco unix openserver v5.0.5为例,对操作系统级的网络安全设置提几点看法,供大家参考。
( }( r/ `6 ^4 o' u5 p6 r( d/ p8 f6 b
- v4 j1 v' e" m" s 合理设置系统安全级别
+ x! c+ w2 w: a8 `; _' z+ w
0 n8 i4 |4 v+ @1 j- e9 l4 q sco unix提供了四个安全级别,分别是low、traditional、improved和high级,系统缺省为traditional级;improved级达到美国国防部的c2级安全标准;high级则高于c2级。用户可以根据自己系统的重要性及客户数的多少,设置适合自己需要的系统安全级别,具体设置步骤是:scoadmin→system→security→security profile manager。 ! u* b- s/ q5 x' v4 j% \8 p' p* h
- l* b+ q2 f& u& t, s. a! z( f
合理设置用户 6 s! f; ^: o8 o% h- p
; l- }# d, p$ ~ 建立用户时,一定要考虑该用户属于哪一组,不能随便选用系统缺省的group组。如果需要,可以新增一个用户组并确定同组成员,在该用户的主目录下,新建文件的存取权限是由该用户的配置文件.profile中的umask的值决定。umask的值取决于系统安全级, tradition安全级的umask的值为022,它的权限类型如下:
# h+ \: l' y( w6 n
/ a5 ?, n/ b( b# g9 r 文件权限: - r w - r - - r - - & c4 t( c9 j y8 c/ l5 v! c" r. i
( c( p& y+ v u8 i6 a+ h; p
目录权限: d r w x r - x r - x 5 o8 [* _; p/ f1 \/ z; c6 @! b
9 d/ p. t+ s- `4 x
此外,还要限制用户不成功登录的次数,避免入侵者用猜测用户口令的方法尝试登录。为账户设置登录限制的步骤是:scoadmin--〉account manager--〉选账户--〉user--〉login controls--〉添入新的不成功登录的次数。
3 y+ t0 s. n. |! i, o9 u3 o$ a) x7 x- v( u
指定主控台及终端登录的限制 3 v7 `$ m- j _+ {% |
! ]# ^3 m$ ]+ t- [ 如果你希望root用户只能在某一个终端(或虚屏)上登录,那么就要对主控台进行指定,例如:指定root用户只能在主机第一屏tty01上登录,这样可避免从网络远程攻击超级用户root。设置方法是在/etc/default/login文件增加一行:console=/dev/tty01。
6 `& l6 s* v0 n8 h) h+ ^' @5 w7 v/ q% w) z5 @0 t
注意:设置主控台时,在主机运行中设置后就生效,不需要重启主机。
. h! t6 q4 b7 s1 z0 e, a& d r9 y' l, o' ]
如果你的终端是通过modem异步拨号或长线驱动器异步串口接入unix主机,你就要考虑设置某终端不成功登录的次数,超过该次数后,锁定此终端。设置方法为:scoadmin→sysrem→terminal manager→examine→选终端,再设置某终端不成功登录的次数。如果某终端被锁定后,可用ttyunlock〈终端号〉进行解锁。也可用ttylock〈终端号〉直接加锁。
2 u* v: \% }' }: y$ t5 g
5 y2 w k& t3 l' a* w 文件及目录的权限管理
0 ]5 g. ~" j7 c
5 b2 |' y0 u+ p! i2 t/ i' h% h q 有时我们为了方便使用而将许多目录和文件权限设为777或666,但是这样却为黑客攻击提供了方便。因此,必须仔细分配应用程序、数据和相应目录的权限。发现目录和文件的权限不适当,应及时用chmod命令修正。 2 i* z6 t% }1 b% x
! |8 @9 c! a; s3 l& u ], p0 u, l 口令保护的设置 |% }0 g9 [# d2 ~% }! \2 l9 [
4 @8 h# m* u- g8 z/ s
口令一般不要少于8个字符,口令的组成应以无规则的大小写字母、数字和符号相结合,绝对避免用英语单词或词组等设置口令,而且应该养成定期更换各用户口令的习惯。通过编辑/etc/default/passwd文件,可以强制设定最小口令长度、两次口令修改之间的最短、最长时间。另外,口令的保护还涉及到对/etc/passwd和/etc/shadow文件的保护,必须做到只有系统管理员才能访问这两个文件。 $ w# x% x: e; c7 l" b
/ o( i* q3 k0 o. ^/ s 合理设置等价主机
9 m( m* i6 f' g3 a
: x. h/ r( h; t4 n 设置等价主机可以方便用户操作,但要严防未经授权非法进入系统。所以必须要管理/etc/hosts.equiv、.rhosts和.netrc这3个文件。其中,/etc /hosts.equiv列出了允许执行rsh、rcp等远程命令的主机名字;.rhosts在用户目录内指定了远程用户的名字,其远程用户使用本地用户账户执行rcp、rlogin和rsh等命令时不必提供口令;.netrc提供了ftp和rexec命令所需的信息,可自动连接主机而不必提供口令,该文件也放在用户本地目录中。由于这3个文件的设置都允许一些命令不必提供口令便可访问主机,因此必须严格限制这3个文件的设置。在.rhosts中尽量不用“+ +”,因为它可以使任何主机的用户不必提供口令而直接执行rcp、rlogin和rsh等命令。
$ s* d' k+ o; g b5 h7 h
6 h, f4 y) l$ w+ r6 o6 i i 合理配置/etc/inetd.conf文件
' m3 b6 x" ^4 u3 @- [' f9 c. m- y
unix系统启动时运行inetd进程,对大部分网络连接进行监听,并且根据不同的申请启动相应进程。其中ftp、telnet、rcmd、rlogin和finger等都由inetd来启动对应的服务进程。因此,从系统安全角度出发,我们应该合理地设置/etc/inetd.conf文件,将不必要的服务关闭。关闭的方法是在文件相应行首插入“#”字符,并执行下列命令以使配置后的命令立即生效。
) p# l; ]6 f! l0 c2 x1 ?3 n3 j2 k2 }; n
#ps-ef │ grep inetd │ grep -v grep * n, o" p6 v8 v" h' g8 s! z6 m" ^
2 \. k) k5 s' k1 k l% w5 }
#kill -hup 〈 inetd-pid 〉 , s: f" \7 l8 b6 v
1 b5 x+ b, m4 ?4 ]6 c; h 合理设置/etc/ftpusers文件
. s: u4 b5 c" i- j- ]6 s
( k& d- n# a7 b% a s, s 在/etc/ftpuser文件里列出了可用ftp协议进行文件传输的用户,为了防止不信任用户传输敏感文件,必须合理规划该文件。在对安全要求较高的系统中,不允许ftp访问root和uucp,可将root和uucp列入/etc/ftpusers中。 ' g8 p' p2 t! @9 ^- f$ w# b
2 r. g5 _8 u$ a, p2 o, v* s 合理设置网段及路由
: s' ^. ]- l$ z. z1 o: o4 i( k' |
8 w( p$ j* s, n1 {" _' c0 [- }- c3 o 在主机中设置tcp/ip协议的ip地址时,应该合理设置子网掩码(netmask),把禁止访问的ip地址隔离开来。严格禁止设置缺省路由(即:default route)。建议为每一个子网或网段设置一个路由,否则其他机器就可能通过一定方式访问该主机。 ' p5 t% g- c w6 k5 j& a
' c2 t' |$ x5 i' h' s- y b 不设置uucp 8 e8 w, d: p' o" n
. ?3 f) j9 t$ y& n$ e, y
uucp为采用拨号用户实现网络连接提供了简单、经济的方案,但是同时也为黑客提供了入侵手段,所以必须避免利用这种模式进行网络互联。 % [+ r1 r5 o7 s. m8 r
. a# e0 |4 d* v% h+ q- d6 c) u7 _ f' b
删除不用的软件包及协议
6 c4 r- k' z6 g) q- `1 k$ b* i3 a( ^# ~ n, y2 ~4 g
在进行系统规划时,总的原则是将不需要的功能一律去掉。如通过scoadmin--〉soft manager去掉x window;通过修改/etc/services文件去掉uucp、snmp、pop、pop2、pop3等协议。 $ t& b( w1 n: l# d6 u9 a6 m* c
0 r! a7 w6 |% h7 b 正确配置.profile文件 7 o' a6 q4 h r$ x h
* y' l$ y2 c! c" a .profile文件提供了用户登录程序和环境变量,为了防止一般用户采用中断的方法进入$符号状态,系统管理者必须屏蔽掉键盘中断功能。具体方法是在.porfile首部增加如下一行: 1 c) l% p% a6 @; a/ w, j1 f4 p+ ]
5 u" y5 q5 ^7 h9 c% z* r trap ' ' 0 1 2 3 5 15
# w4 z! u6 z6 s! g. n1 o4 c% z
. ]( { {+ h, q4 g" f! s; ` 创建匿名ftp 1 p- x8 j t; k
% a( j/ j4 \7 f. w4 p+ c" a$ ^ 如果你需要对外发布信息而又担心数据安全,你可以创建匿名ftp,允许任何用户使用匿名ftp,不需密码访问指定目录下的文件或子目录,不会对本机系统的安全构成威胁,因为它无法改变目录,也就无法获得本机内的其他信息。注意不要复制/etc/passwd、/etc/proup到匿名ftp的etc下,这样对安全具有潜在的威胁。 8 a. j3 h( m# `( g3 [% j: a" l0 v% w' ]
6 q/ j" l, ]1 y b 应用用户和维护用户分开
[9 v0 y4 |3 _9 w
/ _) h& v9 b( b/ \ 金融系统unix的用户都是最终用户,他们只需在具体的应用系统中完成某些固定的任务,一般情况下不需执行系统命令(shell),其应用程序由.profile调用,应用程序结束后就退到login状态。维护时又要用root级别的su命令进入应用用户,很不方便。可以通过修改.profile 文件,再创建一个相同id用户的方法解决。例:应用用户work有一个相同id相同主目录的用户worksh, 用户work的.profile文件最后为:
7 a: e6 ]9 n/ c' t4 e. h3 s2 d3 g
6 l% w1 ]- [6 ]5 ? set -- `who am i` " r) d i; r; c% |$ s
! u6 _+ t/ i! g) e
case $1 in a# ~/ y* t' d' q g' c
. h2 j8 {! a# r) ? work exec workmain;exit;;
! c, g t6 e/ b% {4 p! k: m: s, ], ]- \
$ h1 @( m+ c$ a1 m worksh break;;
: }7 l( u+ j: f1 o: j3 y0 c/ p: w# c s& f! }) p2 c
esac 2 e" m- c3 x, f* l
1 ~/ p. n, r* t 这样当用work登录时,执行workmain程序;而用worksh登录时,则进入work的$状态。
(责任编辑:admin) |