文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» Windows » 请问该如何对SQL Server 2000数据库进行安全配置?       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: 请问该如何对SQL Server 2000数据库进行安全配置?  ( 查看:211  回复:1 )   
 该主题悬赏的20无忧币已被全部领完 
 
Aceryt
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 22
积分 24
阅读权限 20
注册日期 2006-2-14
最后登录 2008-6-19 离线

[查看资料]  [发短消息]  [Blog
[个人主页]         
发表于:2008-3-18 12:55   标题:请问该如何对SQL Server 2000数据库进行安全配置?
上一帖 |
请问该如何对SQL Server 2000数据库进行安全配置?



网络工程师到底该不该去考CCIE认证?
2008-3-18 12:551楼
[ 顶部 ]
 
梦想精灵
新新人类  点击可查看详细



帖子 30
精华 0
无忧币 128
积分 89
阅读权限 20
注册日期 2006-1-7
最后登录 2008-6-19 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-18 12:59  ,被系统奖励 20 点无忧币
数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。大多数企业、组织以及政府部门的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,比如员工薪水、个人资料等等。数据库服务器还掌握着敏感的金融数据。包括交易记录、商业事务和帐号数据,战略上的或者专业的信息,比如专利和工程数据,甚至市场计划等等应该保护起来防止竞争者和其他非法者获取的资料。数据完整性和合法存取会受到很多方面的安全威胁,包括密码策略、系统后门、数据库操作以及本身的安全方案。但是数据库通常没有象操作系统和网络这样在安全性上受到重视。
'B;w }F+oO"B3K i5nxbbs.51cto.com51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水` |qe6Z*a/x
重视。 51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水-gsBx"m
  
Qs8fg;BW  微软的SQL Server是一种广泛使用的数据库,很多电子商务网站、企业内部信息化平台等都是基于SQL Server上的,但是数据库的安全性还没有被人们更系统的安全性等同起来,多数管理员认为只要把网络和操作系统的安全搞好了,那么所有的应用程序也就安全了。大多数系统管理员对数据库不熟悉而数据库管理员有对安全问题关心太少,而且一些安全公司也忽略数据库安全,这就使数据库的安全问题更加严峻了。数据库系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且都难以发现。数据库应用程序通常同操作系统的最高管理员密切相关。广泛SQL Server数据库又是属于“端口”型的数据库,这就表示任何人都能够用分析工具试图连接到数据库上,从而绕过操作系统的安全机制,进而闯入系统、破坏和窃取数据资料,甚至破坏整个系统。 bbs.51cto.com p\:]qG:`M7A&P u
  51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水_5ps&\L3G;O
  51CTO技术论坛tZ&B5}U'f7c V!x
  这里,我们主要谈论有关SQL Server2000数据库的安全配置以及一些相关的安全和使用上的问题。 !Y$l-iG7D
  
#D5f
Dh`b6iJ3SLbbs.51cto.com
  
[6c:Bb{^#B  在进行SQL Server 2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似 , ‘ ; @ / 等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上补丁sp1以及最新的sp2。
n;^R#XU9i3u5_$i  bbs.51cto.com/eKSBiP~
  下载地址是http://www.microsoft.com/sql/downloads/2000/sp1.asp 和http://www.microsoft.com/sql/downloads/2000/sp2.asp ;
$y]
X&ofF0G4uq!L51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水
  
6u7z0T4a,~"^E M51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  A.E[1w/^}!D+a
  在做完上面三步基础之后,我们再来讨论SQL Server的安全配置。 ^(NQij
  51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水
N*rpz9q t'U

  51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水"He` f-im
  1、使用安全的密码策略
FYm@uX7m.sz  51CTO技术论坛,j.Dg9a3e7_!Z
  我们把密码策略摆在所有安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步! w4_8r%h3e7wDnX,j@
  
h6g ?.aw2i51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  SQL Server2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。
*lj)T0n{!f;Y+a51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  
#h)U.X$l2Uj sr)Q!?51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。比如使用下面的SQL语句:
\8Z+Pzb/A51CTO技术论坛  
/a(V&{TZQ,obbs.51cto.com  Use master 51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水&Z;}4ZK}
  
/x
e:P ?
z&QZAIG51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水
  Select name,Password from syslogins where password is null bbs.51cto.com8d/}B5@y/y
  51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水zjeF8U s3w1?;i
  51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水O[ hsBi!f7l2Zg\
  2、使用安全的帐号策略。 U&X pG/xF.@,fV.V
  
3}5e|:{c?8{9R  由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到 SQL Server 实例(例如,当其它系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立一个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。
0G
G$s%X3LM
Xbbs.51cto.com
  #[        iQzh{Q
  SQL Server的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统帐号“BUILTIN\Administrators”删除。不过这样做的结果是一旦sa帐号忘记密码的话,就没有办法来恢复了。
y~u,O cbbs.51cto.com  
&Di;G!MDi        {U51CTO技术论坛  很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。 51CTO技术论坛8II#b4v*p3Gt
  
r9Y'W3c\!Q.TP51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  3、加强数据库日志的记录。
Y:p,mM[  
b@*k;~&XQm4t a  审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。如图: Lcv'mb;j([8G
  
%^0e{+^'T$R-X~6H  请定期查看SQL Server日志检查是否有可疑的登录事件发生,或者使用DOS命令。
LH
X#l(ek}Zbbs.51cto.com
  ;G)^I`j Zg8NF
  findstr /C:"登录" d:\Microsoft SQL Server\MSSQL\LOG\*.* 2A`        l,u;}LT'h*V
  

EL;XdH3{,i2wy51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水
  4、管理扩展存储过程
^3B|0k/aE51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  
/Uo5q0Q*e;S.VD51CTO技术论坛  对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。
Oli!I8i$x51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水   F
|4k$?Nr,q4f

  如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句: 51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水+eAF/X6UFl!l
  
;@'`Jo!J dX1l  use master 7B/fCiqx%E6S _
  
Hf+{ P/B8nu
h51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水
  sp_dropextendedproc 'xp_cmdshell' FE6pj'W_P9Z(|
  ,r6E+e3AJH
UU

  xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。
"Qv)_f;R[T51CTO技术论坛  
4{(u F
w~*~:S)x]
  sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' bbs.51cto.com9Yzj
xPr_o

  
/rg%j!wZ^X"w.` sU4A  
$n et3k3lF1[EG#z2s51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  如果你不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:
Y`-@lr0X5y3gbbs.51cto.com  
3[$wb2M5]#IQQ!o  Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
B6LuS(ssY51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  
z_$S)Yk
\F3]
  Sp_OAMethod Sp_OASetProperty Sp_OAStop
M,@o&]
s;K H F0D Abbs.51cto.com
  %v7N.WMpn
  去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下: 51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水[:i(b p2X
  dm*H:mjksX
  Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
8pj7xg/M7I51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水,];Ne x        e(Z
~@7e$N%P

  Xp_regread Xp_regremovemultistring Xp_regwrite 51CTO技术论坛p4}5XGO,y
  -ZNTgql*[
  还有一些其他的扩展存储过程,你也最好检查检查。
ab8`;J3^bbs.51cto.com  
/z
S Zyd2XmG51CTO技术论坛
  在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。
4_~+OY`I51CTO技术论坛  51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水 ]f-v J
?Q

  5、使用协议加密
,h.E&O,jB[A3[bbs.51cto.com  ~~#S!A-orL aa
  SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等等,这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库帐号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然,你需要一个证书来支持。
i9h8Kw
T
c(n-e/|6Qt51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水
  51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水8RvX+~4p%C,yK
  6、不要让人随便探测到你的TCP/IP端口
{:j+r*Mj(l Z6@O,Hbbs.51cto.com  51CTO技术论坛&\d)s|Z$a
  默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道SQL Server使用的什么TCP/IP端口了(请参考《深入探索SQL Server网络连接的安全问题》)。 51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水4e;eE T3c_z
  
%QBys gd51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。如果隐藏了 SQL Server 实例,则将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测你的TCP/IP端口了(除非用Port Scan)。 51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水RJ)K_(F
  
:rFY        N!Hg$jbbs.51cto.com  7、修改TCP/IP使用的端口
C J%\1z|v1j  $Nu$h,l^B!P(\'R
  请在上一步配置的基础上,更改原默认的1433端口。在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口。如图: 51CTO技术论坛{_zGe]|3i&U
  
'[T2q9R?6x9q51CTO技术论坛  9、拒绝来自1434端口的探测 bbs.51cto.com,xf;f4A&J
q

  9{ A/b5J        v"jl
  由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DOS攻击让数据库服务器的CPU负荷增大,所以对Windows 2000操作系统来说,在IPSec过滤拒绝掉1434端口的UDP通讯,可以尽可能地隐藏你的SQL Server。 bbs.51cto.com        ]tE.rYhU-Y
  %bK} V PI4}"F
  51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水8h-}2f
Q"m!Z$|U

10、对网络连接进行IP限制
n'jA/QH*h  bbs.51cto.comh?
V        d!ZP3B

 



网络工程师到底该不该去考CCIE认证?
2008-3-18 12:592楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号