站点主机安全档案_第1页
站点主机安全档案_第2页
站点主机安全档案_第3页
站点主机安全档案_第4页
站点主机安全档案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页站点主机安全档案ccess、mysql、sshd、nobody等)没有自己的shell;检查有无帐户被提升到root权限(UID0);

3.运行netstat–an|grepLISTEN查看有无可疑的打开的端口;

4.使用ps命令查看系统进程,保证只有必要的进程在运行;

5.检查被cron运行的程序,Solaris一般在/var/spool/cron目录里,Freebsd一般在/var/cron里,初始化的crontable除root外,其他用户不应拥有;仔细查看root的crontable;

6.使用vmstat和top查看系统资源占用状况,对高资源占用的系统进程要做谨慎处理;

7.查看系统日志,包括Solaris下的/var/adm/messages和Freebsd下的/var/log/messages,以发现有无可疑的事件发生;

8.查看系统安全日志,包括用户登陆尝试、验证失败、可疑的IP地址登陆等,在solaris下是/var/log/authlog,freebsd下是/var/log/auth.log;

9.运行chkrootkit,以检查系统是否被植入木马程序;

10.安装了Apache的主机,不定期查看Apache的访问日志和错误日志,以发现是否有试图攻击WEB的行为。

4.2系统及服务的稳定性

一些重要的服务器是片刻也不能停的,一旦发生服务器down机事故,而你又没有及时发现和恢复,那么你面对的将是铺天盖地的指责。系统安全管理的任务也许不是很重,但责任却并不轻。因此,你有必要时刻了解服务器的存活状况,一旦发生down机事件,你应在第一时间知道。

有些好的IDC机房有服务器监控系统,一旦某台机器down掉,它会发出警报。然后机房的值班人员会电话通知你,这样你就能从容的处理事故。然而,并非所有的机房都有这样的措施,很多时候还得依靠自己的小心。

在机房网络中,应该有一它网管机器,这台机器最好是Unix系统,因为你可以在上面编写脚本来监控网络,并通过sendmail发送邮件给自己。这台机器可以是一台服务器,象前面讲过的登陆入口服务器,就完全可以充当网管机;也可以是一台配置很低的普通PC,能运行Linux或Freebsd就可以了。有必要在上面运行sendmail,因为它要对外发送邮件。当然,sendmail有一些安全问题,因此在运行它之前,你必须确认服务器处于安全的网络:在防火墙之后,且同一网段中没有其他公司的服务器。否则,就不要运行它。当然,你也可以配置sendmail绑定在端口,不接受网络请求(在Linux默认安装的sendmail不接受网络请求,Freebsd中可以在rc.conf文件中设置使sendmail绑定在端口),这样的sendmail会安全很多。

然后你可以写一个简单的脚本来监控网络主机生存状况。在Unix主机上,使用shell或perl都很容易编写脚本,但是,shell脚本用于系统管理更简单明了,除非你要进行复杂的数学计算或文本处理。如下这个shell脚本很简单,却很实用:

#!/bin/sh

#scriptname:nping

#usethisscripttoconfirmthehostsarealiveornot

HOST01="xxx.xxx.xxx.xxx"

HOST02="xxx.xxx.xxx.xxx"

HOST03="xxx.xxx.xxx.xxx"

HOST04="xxx.xxx.xxx.xxx"

HOST05="xxx.xxx.xxx.xxx"

HOST06="xxx.xxx.xxx.xxx"

HOST07="xxx.xxx.xxx.xxx"

HOST08="xxx.xxx.xxx.xxx"

HOST09="xxx.xxx.xxx.xxx"

HOST10="xxx.xxx.xxx.xxx"

forLOOPin$HOST01$HOST02$HOST03$HOST04$HOST05$HOST06$HOST07$HOST08$HOST09$HOST10

do

if!/sbin/ping-c2$LOOP/dev/null21;then

echo"Warning:Thehost$LOOPseemsdown"error.log

fi

done

if[-ferror.log];then

caterror.log|mail-s"Warning:HostDown"下载最新版本)。它的使用很简单,安装完成后直接在命令行下执行:nmapIP,就可以得到目标主机的开放TCP端口状况。当然,Nmap的功能远不止如此,它还可以执行UDP、SYN、FIN、RPC等扫描,它的半开放扫描可绕过防火墙的过滤,并可根据操作系统指纹判断目标系统类型。在这里只要利用到Nmap的TCP扫描就够了。然后,你可以编写一个脚本来定期检测服务器的开放端口状况,并将结果Email给管理员。我编写的如下:

#!/bin/sh

#scriptname:nscan

#usethisscripttochecktheservicesstatusonlocalservers

HOST01="xxx.xxx.xxx.xxx"

HOST02="xxx.xxx.xxx.xxx"

HOST03="xxx.xxx.xxx.xxx"

HOST04="xxx.xxx.xxx.xxx"

HOST05="xxx.xxx.xxx.xxx"

HOST06="xxx.xxx.xxx.xxx"

HOST07="xxx.xxx.xxx.xxx"

SQL_PORT="2433/tcp"

MSRDP_PORT="3389/tcp"

PCANYWH_PORT="5631/tcp"

forLOOPin$HOST01$HOST02$HOST03$HOST04$HOST05$HOST06$HOST07

do

nmap-sT$LOOPnmap.tmp21

forPORTin$SQL_PORT$MSRDP_PORT$PCANYWH_PORT

do

if!grep$PORTnmap.tmp/dev/null21;then

echo“Warning:Theport$PORTisseemtodownon$LOOP”$LOOP.error

fi

done

if[!-f$LOOP.error];then

echo"Theservicesrunningon$LOOParenomal!"

else

cat$LOOP.errornscan.err21

rm-rf$LOOP.error

fi

rm-rfnmap.tmp

done

if[-fnscan.err];then

catnscan.err|mail–s“HostServicesDown”yourname@

rm–rfnscan.err

fi

该脚本只是判断MSSQLServer、MS终端服务和Pcanywhere服务是否正常,如果不正常,就向管理员发送邮件报警。如果你需要检查其他的服务端口,修改该脚本即可。

你也可以配置任务来定期执行该脚本,不过请注意,Nmap扫描会影响网络,因此检测的时间间距不要太小。当然,在Unix系统下,有好些方法可以判断目标系统的开放端口状况,但使用Nmap扫描看起来也不错。

4.3日志管理

不管是Windows系统还是Unix系统,都有自己的事件日志。在Windows下使用事件查看器可以清楚的了解系统运行的各项状态,它包括应用程序日志、安全日志和系统日志。你应经常阅读这些日志,尤其是一些红色标记的错误信息。根据这些错误提示发现问题和解决问题是Windows系统管理员应做的事。

如果服务器不加入域,那么一般来说系统错误信息很少;如果在机房的服务器组成一个域,那么从日志里可能会经常看到各种错误提示,尤其是在域控制器有问题的时候。管理好一个域不是一件太容易的事,它凭空给系统管理员增加很多困难。如果你真碰到这样的问题,建议你到google上面去查找答案,一般来说,你碰到的问题别人肯定也遇见过了,因特网上有很多热心的人愿意解答困难者的问题(尤其是国外的技术站点)。

读Windows的日志不浪费你太多精神,因为它都分门别类整理得很清楚,有什么错误能一目了然的看出来。每天快速翻一下它的日志是可行的,如果你的服务器磁盘有坏道,也能从日志里体现出来,为你及早更换磁盘、避免数据灾难赢得了时间。

在Unix系统下,读日志要费劲一些,因为Unix系统通常把一些通用的日志信息写到messages文件里,导致这个文件里杂七杂八什么都有,包括应用程序信息、用户验证信息、网络连接信息、内核信息等等,在浏览它们时比较费劲。然而,这不意味着你可以不管它们。实际上,日志文件是系统侦错时的唯一依据。某天你的Unix系统崩溃了,在居丧之余,不要忘了去分析它的日志,或许可以为你找到原因。

在Unix系统下,有一个日志分析软件叫Swatch,它能很好的帮你裁减和分析日志,减轻系统管理员的负担。关于它的安装和使用我不在这里详叙,因为我自己并没有使用它。我自己编写脚本用于查看日志,使用awk语句照样能将日志文件裁减到合理的程度。这个脚本的样式我不在这里描述,因为不同的系统和网络环境所产生的条件并不一样。

在UNIX系统下,另外一个日志文件也很值得关注,它记载了用户的登陆和验证信息,该文件一般位于/var/log下,名为authlog或者auth.log,只有root才可以对它进行读写。

如果系统中安装了Apache,那么经常查看Apache的错误日志和访问日志也值得推荐。从这两个日志里,你可以发现很多有趣信息,因特网上对WEB站点的攻击从来没有终止过(从这里也可以找到大量试图攻击IIS的信息)。

4.4用户管理

用户管理通常是指系统的用户帐户管理,不管是UNIX系统还是Windows系统,帐户安全是系统安全的关键。系统中应保持固定数量的用户帐户,作为系统管理员,应清楚每一个帐户的使用者和用途。用户新申请帐户应该有个流程,规范的管理总比不规范好。

在Unix系统上,大多数系统帐户平时是没什么用的,包括:bindaemonadmlpmailnewsuucpoperatorgamesgopherrpc等,如果你不把它们删除,那么也不要让它们拥有真正的shell,检查/etc/passwd文件,看看这些帐户的最后一个域(shell)是否被置/sbin/nologin或/bin/false。经常检查帐户的权限,普通帐户不应该在root组(gid=0),更不应拥有root权限(uid=0)。可以写一个脚本来替你检查,如下所示:

#!/bin/sh

#scriptname:checkuser

#checkifthereisanyuserwhohaverealshellorhaverootid/gid

FILE=/etc/passwd

NUM=0

whilereadLINE

do

NUM=`expr$NUM+1`

if[$NUM-lt3];then

continue

fi

USER=`echo$LINE|cut-d:-f1`

USER_SHELL=`echo$LINE|cut-d:-f7`

USER_UID=`echo$LINE|cut-d:-f3`

USER_GID=`echo$LINE|cut-d:-f4`

if["$USER_SHELL"!="/sbin/nologin"];then

echo-e"\n$USERhasonerealshell:$USER_SHELL"

fi

if[$USER_UID-eq0];then

echo"$USERhastherootuid(uid0)"

fi

if[$USER_GID-eq0];then

echo"$USERhastherootgid(gid0)"

fi

done$FILE

这个脚本运行在Freebsd下,Freebsd的/etc/passwd文件前两行是版本说明,所以在程序里把它跳过,从第三行起挨个检查用户帐号,它将每一个拥有真正shell或者拥有root用户ID或组ID的帐号在屏幕上打印出来。

同样,在Windows服务器上,如果不运行IIS服务,那么把IIS相关的帐号禁止掉,把终端服务帐号禁止掉,把guest帐号禁止掉。Windows系统的管理员组除了Administrator外不要有其他帐号,甚至应该把Administrator帐号改名。每一个帐号在帐号描述里说明它的用途。如果Windows服务器采用域的方式,那么应确保域中有尽可能少的用户。一般域中两个用户就够了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论