设置sqlserver2000运行安全在最小权限普通用户下的方法
朋友的服务器,今天出了点问题,让我帮看一下,看是不是安全方面的问题?远程登陆上去以后,大概看了下,觉得不错,用的是星外的虚拟主机管理系统,这个虚拟主机管理系统以前接触过,帮客户实施项目时,详细研究过,如果按照官方的设置,安全还是相当严密的,朋友所说的有问题,是他的客户反映,说有上传的杂文件,因此,就此,做一下详细检查。
很快,就发现了一个很明显的东东ahcmd,比较熟悉木马的都知道,这个东西在“一句话”木马里面比较流行,通常都是通过语句或者数据库的差异备份来写入到数据库中去,这种行为和这种结果,我实在有些难以理解,这些不知道是不是高手的高手,乐此不疲,为的是什么?难道,技术的前途就是这?
删除这个东东,后来又查了一下关键目录,没有再发现什么异常;然后再查一下服务器的监控防护监控日志,发现了一个虚拟主机用户的目录里面曾经频繁出现木马类程序,考虑是不是这个虚拟主机用户在捣乱服务器,后来查了下又发现不是,因为很明显这个asp网站是业余手写的,很多防注点都没有做防护,asp程序写得乱七八糟,语句也不够优化,这样的站运行起来,绝对会影响服务器的运行效率,另外,漏洞百出,明显让人来注马的,但更要命的是,这个asp调用了sqlserver的数据库,被获得sql的权限后,朋友的服务器也没有特别设置sqlserver2000的安全运行权限,默认的sql运行的还是system的权限,要命!这下,让注入者得了空子,王八蛋,在这里利用呢。
后来又查了一下其他的虚拟主机用户,只发现有稍大的站被挂了马,好在不是太复杂的马,清理起来也比较快。
既然这样,就不多说,加强权限设置。“SQL2000数据库”运行在普通用户下所需的权限,从安全的角度考虑,最好将“SQL2000数据库”安装在独立的分区里面,而且,“SQL2000数据库”必须运行在“普通用户”的状态下。所谓“普通用户”就是指没有任何权限的用户。
为什么要将“SQL2000数据库”必须运行在“普通用户”的状态下呢?因为如果使用了“超级管理员”或者“本地系统用户”来运行“SQL2000数据库”,就会造成服务器被入侵。因此,为了您的服务器安全,您务必将“SQL2000数据库”运行在“普通用户”的状态下。同时,要对硬盘的权限做好对应的权限设置“SQL2000数据库”才能正常运行。对于硬盘的权限设置请参考如下:
--------------------------------------------------------------------------------------------------------------
(假设您的数据安装在E:\Program Files\Microsoft SQL Server\)
1. E盘的根目录(E:\)需要以下权限:
“administrators ”的全部权限
“System ”的全部权限
“SQL2000的运行用户(只应用在当前文件夹)列出文件夹/读数据”的权限
“读属性”的权限
“读扩展属性”的权限
“读取”的权限
2. 数据库的安装目录(E:\Program Files\Microsoft SQL Server\)需要以下权限:
“administrators ”的全部权限
“System ”的全部权限
“SQL2000的运行用户 ”的全部权限
--------------------------------------------------------------------------------------------------------------
(假设您的数据备份目录安装在F:\SQLBACK)
1. F盘的根目录(F:\)需要以下权限:
“administrators ”的全部权限
“System ”的全部权限
“SQL2000的运行用户(只应用在当前文件夹)列出文件夹/读数据”的权限
“读属性”的权限
“读扩展属性”的权限
“读取”的权限
2. 数据库的安装目录(F:\SQLBACK)需要以下权限:
“administrators ”的全部权限
“System ”的全部权限
“SQL2000的运行用户 ”的全部权限
--------------------------------------------------------------------------------------------------------------
特别提醒:无论是安装在E盘还是安装在F盘根目录下的权限,都必须的按照以上的操作来设置,否则都会导致数据库启动失败。很多用户往往是忽视了“根目录权限”的设置,在设置完“SQL2000的运行用户”以后,就发现再也启动不了SQL2000的数据库。如果您已经发生这种情况,请您按照以上的说明,重新设置好“根目录的权限”,SQL2000的数据库就可以正常启动。
补充说明:这儿说的“SQL2000的运行用户”,就是在SQL 2000企业管理器---- 属性中的安全中设置的用户(默认是System用户)。如果您看过了“星外安全包视频说明”,应该在已将“默认的System用户”改成别的“没有任何权限”的用户,这个“没有任何权限”的用户就是这儿说的“SQL2000的运行用户”。
这是重要的一环,因此,着重讲述这些,事实上,其他相关的也很重要,比如mysql运行在特殊用户下等,安全防护是个综合方案,因此,各个方面都要考虑到,不然,固若金汤,毁于蚁穴可就前功尽弃了。