SQL SERVER2000
安全解决方案
--BLUE ZHAO
翻译为了保护你服务器上的信息并抵抗蠕虫病毒,请看Finding and Fixing Slammer Vulnerabilities页面。
现在你可以通过10种方法去提高你的SQL SERVER的安全性:
1、安装最新版本的SERVICE PACK。
一种既简单又高效的方法是把SQL SERVER升级到SQL SERVER2000 SERVICE PACK3(SP3)。要下载SP3,可以点击以下连接:
你也可以安装所有他们发布的安全补丁,如果想通过E-MAIL得到他们最新补丁的发布资料,可以点击以下连接:Product Security Notification page
2、用
微软的安全基准分析器(MBSA)来评估你的服务器的安全性。
MBSA是一个用来
扫描微软产品中包含的不安全设置的
工具,包括了SQL SERVER和SQL SERVER2000
桌面引擎(MSDE 2000)。它可以在本地机上运行或者通过网络运行。它能够测试出SQL SERVER中的问题,就如:
*太多的SYSADMIN成员被确定成服务角色
*除了SYSADMIN还创建和赋予可执行
作业的权限给其他角色
*空或弱口令
*过多的权限赋给了管理员组
*在SQL SERVER 的数据
字典中存在不正确的访问控制列表(ACLs)
*在安装文件中SA口令是明文
*过多的权限赋给了客人帐号(GUEST)
*SQL SERVER运行在一个域控制服务器上
*如果访问某些注册键时,对每一组人的配置不正确
*不恰当的SQL SERVER服务帐号配置
*缺少服务包和安全升级
微软发布MBSA提供免费下载。
3、使用WINDOWS
系统认证模式
无论如何,你应该需要使用WINDOWS系统认证模式来连接到SQL SERVER。他们会保护你的SQL SERVER防止一些受限的WIDOWS用户或域用户基于互联网的攻击。你的服务器也会受益于WINDOWS强制安全机制,如更加强壮的证明协议和强制性的口令复杂性。而且,信任委托(有跨越多个服务器的信任能力)只是在WIDOWS认证模式下可用。在客户端,WINDOWS认证模式
消除了口令保存,在使用标准的SQL SERVER登录时口令保存是一个非常大的弱点。
对于在SQL SERVER安装带有
企业管理模块WINDOWS认证模式安全:
1) 展开一个服务组
2) 右键这个服务,然后点击属性
3) 在“Security”标签上,在“Authentication”下,点击“WINDOWS ONLY”
对于更多的信息,参看帮助。
4、有计划的隔离你的服务器进行
备份逻辑和
物理上的隔离来虚构一个根本安全的SQL SERVER。有
数据库的主机将防止在一个物被理保护的地方,理想的环境是有各种
监控系统的机房。数据库应该
放置在你们公司内部网并不和互联网直接相连安全的区域。有计划的备份所有的数据并保存备份在本地以外的安全区域。更详细的产品备份指南请参考SQL SERVER 2000操作指南。
5、分配一个强壮的SA口令
即使是把服务器配成WIDOWS认证模式,这SA帐号也必须有一个强壮的口令。这将不会把一个空或弱口令暴露在将来,当服务器配置成了混合认证模式。
对于分配SA的口令:
1) 展开一个服务器组,然后展开一个服务器。
2) 展开“Security”,然后点击“Logins”。
3) 在详细框中,右键SA,然后点击“Properties”。
4) 在“Password”栏中,键入新的口令。
更多的信息,参看“System Administrator (sa) Login”主题的帮助。
6、限制SQL SERVER特权级别服务
SQL SERVER 2000 和SQL SERVER代理像WINDOWS 系统的服务一样运行。每个服务必须被授予一个得到了安全内容的WINDOWS系统帐号。SQL SERVER 允许SA用户登录,和一些案例的其他可以访问操作系统特征的用户。这些操作系统调用被用来处理服务进程自己的安全访问。如果服务器被“黑”,操作系统调用可能被用于延伸到自己拥有的过程等其他资源被访问的攻击。基于这个问题,SQL SERVER 服务主要赋予他必要的特权就可以了。
推荐以下的设置:
*SQL SERVER 引擎/MSSQL 服务
如果有被命名的实例,它们被命名成MSSQL$实例名。作为一个WINDOWS域用户帐号所带有的常规用户权限运行。不能作为一个本地的系统管理员,或域管理员帐号运行。
*SQL SERVER 代理服务/SQL SERVER 代理
如果在你的环境中不许要就关掉以上服务;或者作为一个WINDOWS域用户帐号所带有的常规用户权限运行以上服务。不能作为一个本地的系统管理员,或域管理员帐号运行。
重要:如果是以下的有一个条件为真,SQL SERVER 代理回需要本地WINDOWS 管理员权限:
SQL SERVER 代理连接到正在使用标准的SQL SERVER认证的SQL SERVER(不推荐)。
SQL SERVER 代理使用了一个多服务器中连接使用标准SQL SERVER认证的主服务器帐号。
SQL SERVER 代理运行微软的ACTIVEX 脚本或通过没有SYSADMIN服务角色绑定的用户运行批处理工作。
如果你需要改变关联了一个SQL SERVER 服务的帐号,使用 SQL SERVER 企业管理工具。企业管理工具可以允许适当设置SQL SERVER使用的文件和注册表。没有使用过这微软管理控制台服务JAVA 程序去改变这些帐号,是因为这需要许多的注册
手工校对、NTFS 文件系统许可和微软WINDOWS 用户的权限。
更多的信息请参看SQL SERVER 参考书。
改变帐号信息将会在下一次启动后生效。如果你需要改变关联了SQL SERVER 和SQL SERVER 代理的帐号,你必须两种服务分别的使用企业管理工具来修改。
7、在
防火墙上禁止SQL SERVER端口
默认安装SQL SERVER
监控TCP端口 1433 和UDP端口1434。配置你的防火墙去过滤针对这些端口的外来
数据包。关联被命名实例的额外端口也将被防火墙隔离。
8、使用更安全的文件系统
在安装SQL SERVER时NTFS是首选的文件系统。这比FAT文件系统更稳定和易于恢复,使之有文件和目录访问控制和文件
加密的安全选项。在安装的过程中,如果检测到是NTFS文件系统SQL SERVER将在注册主键和文件中适当的设置访问控制列表,这中设置是不能改变的。
通过
文件加密,在同一个帐号下运行的SQL SERVER数据库文件被加密,只有这个帐号才能解开文件。如果你需要改变运行SQL SERVER 的帐号,你必须在旧的帐号下
解密那些数据文件,然后在新的帐号下再加密。
9、删除或保护旧的安装文件
SQL SERVER 安装文件可能包含明文或弱加密信任状、在安装时的日志等其他敏感的配置信息。这些日志文件位置的变更显示了已安装的SQL SERVER版本。在 SQL SERVER 2000,以下的文件可能受到攻击:sqlstp.log,sqlsp.log,和setup.iss 在:\Program Files\Microsoft SQL Server\MSSQL\Install目录中的默认安装信息,和:\Program Files\Microsoft SQL Server\ MSSQL$\Install 目录中被命名的实例。
如果当前系统是一个从SQL SERVER 7.0版本升级的安装,以下文件你要好好检查:setup.iss 在 %Windir% 目录,和sqlsp.log 在WINDOWS 系统的临时目录。
微软发布一些免费的工具,查找和删除你系统中的口令文件。更多的信息请参考微软网站。
10、审计SQL SERVER 的连接
SQL SERVER 能以日志的形式记录事件信息并可以给系统管理员查看。在最小化时,你可以把尝试连接到SQL SERVER的失败连接记录下来和时常的查看日志。当有可能,保存这些日志到一个不同与数据文件存放的硬盘。
在SQL SERVER中使用企业管理工具错误连接的审计:
1)展开一个服务组。
2)右键点击一个服务器,然后点击“Properties”。
3)在“Security”选框上,在“Audit Level”下点击“Failure”。
你必须停止和从新启动服务这个设置才会生效。
更多的信息请查看SQL SERVER 帮助。
原文在: http://www.microsoft.com/sql/techinfo/administration/2000/security/securingsqlserver.asp