SCO UNIX网络安全管理
编者按 1998年10月13日,步嫌袭击银行网络的江苏两兄弟被捕。
今年9月,他们在联网的银行电脑终端上安装了远程控制设备,通过制
造假帐从银行窃取了近20万元人民币。
据有关资料显示,近两年内,中国的计算机网络受到了近200个
黑客有意识的袭击。网络遭到攻击已经不仅仅是从报刊文摘中读到的
外国神话,而是真真切切地存在于我们生活中的现实。维护网络的安
全性已经具有越来越重要的现实意义,下面这篇文章介绍了在sco unix
上进行安全管理的一些具体设置,也是一些专业书籍中很少涉及到的,
具有很强的实用价值。
金融业务系统大部分以UNIX或XENIX操作系统为平台,以TCP/IP
为网络平台。虽然UNIX安全性能已达到美国国防部的C2级安全标准,
是一个相对安全、严密的系统,但也并非无懈可击。电脑黑客入侵多
种、证券网络系统的新闻再次敲响金融网络安全管理的警钟。如何加
强UNIX网络系统的安全性管理,笔者以SCO UNIX3.2.v4.2为例,提几
点看法,与广大同仁商榷。
这里所说的安全性,主要指通过防止本机或本网被非法侵入、访
问,从而达到保护本系统可靠、正常运行的目的,本文只在此范围内
讨论,对其他方面不予考虑。
一、抓好网内主机的管理是网络安全管理的前提
用户名和密码管理永远是系统安全管理中最重要的环节之一,对
网络的任何攻击,都不可能没有合法的用户名和密码(后台网络应用
程序开后门例外)。但目前绝大部分系统管理员只注重对特权用户的
管理,而忽视对普通用户的管理。主要表现在设置用户时图省事方便,
胡乱设置用户的权限(id)、组别(group)和文件权限,为非法
用户窃取信息和破坏系统留下了空隙。
金融系统UNIX的用户都是最终用户,他们只需在具体的应用系统
中工作,完成某些固定的任务,一般情况下不需执行系统命令(shell)。
以农业银行全国电子汇兑为例,用户名为dzhd,它在/etc/passwd
文件中描述如下:
dzhd:x:200:50: :/usr/dzhd:/bin/sh
它的.profile内容大致如下:
COBSW=+R+N+Q-10
DD_PRINTER=“1p-s”
PATH=/etc:/bin:/usr/bin:$HOME/bin:/usr/dzhd/obj:
MAIL=/usr/spool/mail/logname
umask 007
eval`test -m ansi:ansi -m:\?ansi -c -s -Q`
export PATH MAIL COBSW DD_PRINTER
cd usr/dzhd/obj
runx hdg
exit
用户正常登录后,如果按下中断键“delete”,关掉终端电源,
或同时键入“Ctrl”“\”,那么用户将进入shell命令状态。例如他
可以在自己的目录不断创建子目录而耗尽系统的I节点号、或用yes>aa
创建一个其大无比的垃圾文件而耗尽硬盘空间等导致系统的崩溃、瘫
痪;如果文件系统的权限设置不严密,他可运行、窥视甚至修改它;
还可通过su等命令窃取更高的权限;还可登录到其它主机上去捣乱……
令你防不胜防,危险性可想而知。这一些问题都与用户设置有关。
所以,尽量不要把用户设置成上述形式。如果必须这样,可根据实际
需要,看看能否把用户的sh变成受限sh,如rsh等,变成如下形式:
dzhd:x:200:50: :/usr/dzhd/obj:/bin/rsh
或如下形式:
dzhd:x:200:50: :/usr/dzhd:./main
在main(.porfile)首部增加如下一行:
trap' ' 0 1 2 3 5 15
那么上述一切问题都可避免。
此外定期检查你的/etc/passwd文件,看看是否有来历不明的用
户和用户的权限;定期修改用户密码,特别是uucp、bin等不常用的
用户的密码,以防有人在此开个活动的天窗--一个可自由进出的用户;
删除所有睡眠用户等。
二、设置好自己的网络环境是阻止非法访问的有效途径
网上访问的常用工具有telnet、ftp、rlogin、rcp、rcmd等网络
操作命令,对它们的使用必须加以限制。最简单的方法是修改/etc/services
中相应的服务端口号。但这样做会使网外的一切访问都被拒绝,即使
是否法访问也不例外。这种闭关自守的做法不值得提倡,因为这样会
使本网和网外隔绝开,也会给自己带来不便。通过对UNIXt系统的分
析,我们认为有可能做到有条件限制(允许)网上访问。
(1)建立etc/ftpusers文件(不受欢迎的ftp用户表)。与之相
关的命令是ftp。配置如下:
#用户名
dgxt
dzhd
…
以上都是本机内的一些用户,侵入者使用以上用户名ftp访问本网
会被拒之门外。
(2)注意保存好.netrc文件(远程注册数据文件)。与之有关
的命令是ftp。.netrc包含注册到网络上用ftp作文件转移的远程主机
的数据。通常驻留在用户当前目录中,文件权限必须为0600。格式如
下:
machine对方主机名login对方主机内用户名password对方用户密
码macdef init ftp的操作命令集。
(3)创建匿名ftp。所谓匿名ftp,是指其他主机的用户能以ftp
或anonymous用户进行数据收发而不要任何密码。建立方法如下:
a)用sysadmsh创建ftp用户,在passwd文件表示为:
ftp:x:210:50: :/usr/ftp:/bin/sh
.profile中的路径为:
PATH=$HOME/bin:$HOME/etc
b)在/usr/ftp目录:
#创建匿名ftp所用的目录
#mkdir bin etc dev pub shlib
#改变pub以外所有目录权限
#chmod 0555 bin etc dev shlib
#改变pub目录的所有者和同组者
#chown ftp pub
#chgrp ftp pub
#复制匿名ftp所执行文件
#cp/bin/rsh/bin/pwd/bin/1s bin
#改变所需执行文件权限
#chmod 011 bin/*
#查看所需伪设备的情况
#1/dev/socksys
#1/dev/null
#建立所需伪设备的驱动程度
#cd/usr/ftp/dev
#mkond null c 4 2
#mkond socksys c 26 0
#改变伪设备驱动程序的所有者、同组者
#chown ftp ftp/*
#chgrp ftp ftp/*
#复制共享文件
#cp/shlib/ilbe_s shlib
注意不要复制/etc/passwd、/etc/proup到etc下,这样对安全具
有潜在的威胁。此外给ftp用户加上密码,不要告诉其他任何人。
(4)限制.rhosts用户等价文件(又叫受托用户文件)。与之有
关命令有rlogin、rcp、rcmd等。
所谓用户等价,就是用户不用输入密码,即可以相同的用户信息
登录到另一台主机中。用户等价的文件名为.rhosts,存放在根下或
用户主目录下。它的形式如下:
#主机名 用户名
ash020000 root
ash020001 dgxt
…
如果用户名为空,是所有用户均等价。
(5)限制hosts.equiv主机等价文件,又叫受托主机文件。有关
的命令为rlogin、rcp、rcmd等。主机等价类似于用户等价,在两台
计算机除根目录外的所有区域有效,主机等价文件为hosts.equiv,
存放在/etc下,它的形式如下:
#主机名 用户名
ash020000
ash020001
…
当远程使用ftp访问本系统时,UNIX系统首先验证用户名和密码,
无误后查看ftpusers文件,一旦其中包含登录所用用户名则自动拒绝
连接,从而达到限制作用。因此我们只要把本机内除匿名ftp以外的
所有用户列入ftpusers文件中,即使入者获得本机内正确的用户信息,
无法登录系统。需对外发布的信息,放到/usr/ftp/bub下,让远方通
过匿名ftp获取。使用匿名ftp,不需密码,不会对本机系统的安全构
成威胁,因为它无法改变目录,也就无法获得本机内的其他信息。使
用.netrc配置,需注意保密,防止泄露其他相关主机的信息。
使用用户等价和主机等机这类访问,用户可以不用口令而像其他
有效用户一样登录到远程系统,远程用户可使用rlogin直接登录而不
需密码,还可使用rcp命令向或从本地主机复制文件,也可使用rcmd
远程执行本机的命令等。因此主种访问具有严重的不安全性,必须严
格控制或在非常可靠的环境下使用。1998年美国发现的著名的“蠕虫”
病毒,由一个叫英尔(morris)的年青人编写的,在Internet网上
流传开,造成许多UNIX系统的瘫痪,损失达数亿美元,其重要的传播
手段之一就是利用了用户等价和主机等价的配置。慎重使用(最好不
用)和经常检查上述文件,会有效加强系统安全。
UNIX系统没有直接提供对telnet的控制。但我们知道,/etc/profile
是系统默认shell变量文件,所有用户登录时必须首先执行它。如果
我们在该文件首部增加如下几条shell命令:
#设置中断变量
trap' ' 0 1 2 3 4 5 15
umask 022
#获取登录终端名
dc=“'who am i |awk‘[prin $2]’`”
#检查是否受限
grep $de /etc default/aaa >dev/null 2>&1
#如果受限
if [$?=“0”]
then
echo“请输入密码:\c”
read abc
#获取正确密码
dd=“grep root /etc/edfault/aaa|awk’[pint $2]’`”
#非法用户发出警告信息到主控台
法[“$abc”!=$dd]
then
echo “非法用户!”
echo“有非法用户试图登录!”>tev/tty01
logname>/dev/tty01
#同时记载日记文件
echo“有非法用户试图登录!\c”> >/usr/tmp/err
echo $dc> >/usr/tmp/err
logname > >/usr/tmp/err
exit;
fi;
fi
其中/etc/default/aaa是受限终端名的一个文本文件,root后为
密码,它的内容如下:
root qwerty
ttyp0
ttyp1
ttyp2
ttyp3
ttypa
ttypb
…
这样非法用户即例获得了合法的用户名和密码,也无法远程使用。
系统管理员定时阅读日记文件,注意控制台信息,就能获得被非法
访问的情况,及时采取措施。如果用c语言实现上述过程,把接受爱
变成不可显示,效果更佳。
三、加强对重要资料的保密
它主要包括hosts表、X.25地址、路由、连接调制解调器的电脑
号码及所用的通信软件的种类、网内的用户名等,这些资料都应采取
一些保密措施,防止随意扩散。如可向电信部门申请通信专用的电话
号码不刊登、不供查询等。由于公共的或普通邮电交换设备的介入,
信息通过它们后可能被篡改或泄露。
四、加强对重要网络设备的管理
路由器在网络安全计划中是很重要的一环。现在大多数路由器已
具备防火墙的一些功能,如禁止telnet的访问、禁示非法的网段访问
等。通过网络路由器进行正确的存取过滤是限制外部访问简单而有效
的手段。
有条件的地方还可设置网关机,将本网和其他网隔离,网关机上
不存放任何业务数据,删除除系统正常运行所必须的用户外所用的用
户,也能增强网络的安全性。
总之,只要我们从现在做起,培养网络安全意识,并注意经验的
积累和学习,完全可能保证我们信息系统的安全、正常运行。