假设你是一位使用solaris操作系统的网站管理员,有一天你无意中在你硬盘/var/adm目录下messages文件中看到了如下类似内容:
Apr 24 20:31:04 nmssa /usr/dt/bin/rpc.ttdbserverd[405]: _Tt_file_system::findBest
MountPoint -- max_match_entry is null, aborting…
Apr 24 20:31:05 nmssa inetd[140]: /usr/dt/bin/rpc.ttdbserverd: Segmentation Faul
t - core dumped
知道这意味着什么吗?你的系统已有至少99%的可能性被侵入!
目前使用solaris的系统管理员都知道在/var区下有个目录adm,在这个目录下有messags,syslog,sulog,utmp等诸多日志文件,它们记录着solaris系统产生的各种消息日志。从系统管理员的角度来讲,清楚的理解各个日志文件的功能及作用是很有必要的,在系统发生安全问题时,这些日志纪录可以在一定意义上起到帮助和诊断作用。
我们来依次看看Adm目录下的主要文件。
adm/messags
管理员可以从上述纪录中可以清楚看到在24日11点26, 11点27, 11点28分有可疑用户在猜主机的ftp口令,它们的来源ip 分别是 11.22.33.46和11.22.33.49。
adm/sulog
sulog中记载着普通用户尝试su成为其它用户的纪录。它的格式为: 发生时间 +/-(成功/失败) pts号 当前用户欲su成的用户,我们截取一部分实际内容,来看一下:
SU 04/15 16:35 + pts/6 yiming-root
SU 04/15 16:43 + pts/4 root-yiming
SU 04/17 08:20 - pts/5 cheny-root
SU 04/18 16:36 - pts/4 cheny-root
SU 04/19 02:57 + pts/11 lizhao-root
SU 04/19 19:57 + pts/11 cys-root
SU 04/21 08:20 - pts/4 cheny-root
SU 04/21 16:36 - pts/8 cheny-root
SU 04/22 15:23 - pts/5 cheny-root
对管理员来讲,需要密切关注两种用户,第一是反复su失败的,如以上cheny用户,他有猜超级用户口令的嫌疑。第二是在不正常时间的su纪录,如上述第六行用户lizhao,随然他正确的输入了口令(在第四列中有+号)但02:57分这个时间比较可疑,这是一个管理员不大可能工作的时间,要知道,入侵者可能安装过sniffer之类的软件,并利用它窃取到了超级用户口令,为了进一步做工作,如窃取主机敏感数据,入侵者需要进行比较复杂的操作,但在白天这个系统管理员活动的时间被发现的可能性是比较大的,所以即使入侵者得到了高权限的密码,一般也会选择深夜等管理员一般不工作的时间。这些时候没有人会抓他。
adm/utmp,utmpx
这两个文件是不具可读性的,它们记录着当前登录在主机上的用户,管理员可以用w,who等命令来看,下面为who的输出结果,
yiming pts/29 Jun 12 09:24 (11.22.33.44)
yiming pts/28 Jun 12 08:41 (11.22.33.43)
root pts/19 Jun 12 08:19 (:0.0)
./zap -v guest
- WTMP:
WTMP = /var/adm/wtmp
Removing user guest at pos: 131328
Done!
- UTMP:
UTMP = /var/adm/utmp
Removing user guest at pos: 864
Done!
- LASTLOG:
LASTLOG = /var/adm/lastlog
User guest has no wtmp record。 Zeroing lastlog。。
- WTMPX:
WTMPX = /var/adm/wtmpx
Done!
- UTMPX:
UTMPX = /var/adm/utmpx
Done!
此时,在用w看时,我们看看发生了什么变化?
yiming pts/29 Jun 12 09:24 (11.22.33.44)
yiming pts/28 Jun 12 08:41 (11.22.33.43)
root pts/19 Jun 12 08:19 (:0.0)
我们可以看到入侵者消失了!这对入侵者是个好消息,但对一个安全意识较差的系统管理员而言,这台主机可不大妙了。建议如果系统看起来不大对劲,而用w,last等看出不出来端倪的话,还是安装其它系统监视软件如ttywatcher,ethereal等仔细审核一下。
adm/wtmp,wtmps
这两个文件相当于历史纪录,它们记录着所有登录过主机的用户,时间,来源等内容, 这两个文件也是不具可读性的。可用last命令来看,如下。
support pts/13 11.22.33.44 Thu Apr 20 18:40 - 20:50 (02:10)
gogo pts/12 11.22.33.45 Thu Apr 20 1:53 - 17:21 (02:28)
管理员要注意那些发生在不正常时间或是来自可疑地点的登录纪录,如上面输出结果中的gogo用户,这个时间不太正常。
与上面utmp,utmpx一样,管理员也应该清楚:last只能给你一个大概的参考,不要完全相信last的结果。
除了上述几个文件外,在/var/log目录下还有一个syslog文件,这个文件的内容一般是纪录mail事件的,管理员应该经常检查有没有异常纪录。
最后来讲一讲solaris一个很少被用起但却极为有用的功能---记账。Solaris操作系统可以通过设置日志文件可以对每个用户的每一条命令进行纪录,这一功能默认是不开放的,为了打开它,需要执行/usr/lib/acct目录下的accton文件,格式如下 /usr/lib/acct/accton /var/adm/pacct,在sun的手册上,只有这一种用法,但这样做的缺点是明显的,大多数有经验的入侵者一定不会放过/var/adm和 /var/log这两个目录的,如果它们看到有pacct这个东西,不删才怪。针对这种情况其实有个很好的解决办法,执行 /usr/lib/acct/accton 后面跟一个别的目录和文件即可,如/usr/lib/acct/accton /yiming/log/commandlog,这样入侵者不会在/var/adm/下看到pacct,入侵者也许会删掉message,syslog等日志,但他并不知道实际上他所有的操作都被记录在案,管理员事后只要把commandlog这个文件拷贝到/var/adm下,改为pacct ,同时执行读取命令lastcomm,就一切尽在掌握啦。如lastcomm hack,可得到下面的输出结果:
sh S hack pts/7 0.05 secs Mon Jun 12 14:28
sh F hack pts/7 0.00 secs Mon Jun 12 14:39
ls hack pts/7 0.01 secs Mon Jun 12 14:39
ls hack pts/7 0.02 secs Mon Jun 12 14:39
ls hack pts/7 0.01 secs Mon Jun 12 14:38
df hack pts/7 0.03 secs Mon Jun 12 14:38
ftp hack pts/7 0.02 secs Mon Jun 12 14:37
ls hack pts/7 0.01 secs Mon Jun 12 14:37
vi hack pts/7 0.02 secs Mon Jun 12 14:37
who hack pts/7 0.02 secs Mon Jun 12 14:36
我们从输出中可以了解用户hack所做的工作,是不是很爽?
其实网络安全,可以从一些小的点点滴滴的方面加以注意,使用得当,一样会起到较好的作用,管理员,从关注你的日志文件开始吧。