一切福田,不離方寸,從心而覓,感無不通。

SQLHelper.cs(SQLServer版)

 

龙生   12 Dec 2010
View Details

SQL Server 2000的安全配置

    数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。大多数企业、组织以及政府部门的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,比如员工薪水、个人资料等等。数据库服务器还掌握着敏感的金融数据。包括交易记录、商业事务和帐号数据,战略上的或者专业的信息,比如专利和工程数据,甚至市场计划等等应该保护起来防止竞争者和其他非法者获取的资料。数据完整性和合法存取会受到很多方面的安全威胁,包括密码策略、系统后门、数据库操作以及本身的安全方案。但是数据库通常没有象操作系统和网络这样在安全性上受到重视。     微软的SQL Server是一种广泛使用的数据库,很多电子商务网站、企业内部信息化平台等都是基于SQL Server上的,但是数据库的安全性还没有被人们更系统的安全性等同起来,多数管理员认为只要把网络和操作系统的安全搞好了,那么所有的应用程序也就安全了。大多数系统管理员对数据库不熟悉而数据库管理员有对安全问题关心太少,而且一些安全公司也忽略数据库安全,这就使数据库的安全问题更加严峻了。数据库系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且都难以发现。数据库应用程序通常同操作系统的最高管理员密切相关。广泛SQL Server数据库又是属于“端口”型的数据库,这就表示任何人都能够用分析工具试图连接到数据库上,从而绕过操作系统的安全机制,进而闯入系统、破坏和窃取数据资料,甚至破坏整个系统。     这里,我们主要谈论有关SQL Server2000数据库的安全配置以及一些相关的安全和使用上的问题。     在进行SQL Server 2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似 , ‘ ; @ / 等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上补丁sp1以及最新的sp2。     在做完上面三步基础之后,我们再来讨论SQL Server的安全配置。     1、使用安全的密码策略     我们把密码策略摆在所有安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步! SQL Server2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。     同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。比如使用下面的SQL语句:     Use master     Select name,Password from syslogins where password is null     2、使用安全的帐号策略。     由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到 SQL Server 实例(例如,当其它系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立一个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。 SQL Server的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统帐号“BUILTINAdministrators”删除。不过这样做的结果是一旦sa帐号忘记密码的话,就没有办法来恢复了。     很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。     3、加强数据库日志的记录。     审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。     请定期查看SQL Server日志检查是否有可疑的登录事件发生,或者使用DOS命令。     findstr /C:"登录" d:Microsoft SQL ServerMSSQLLOG*.*     4、管理扩展存储过程     对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。     如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:     use master     sp_dropextendedproc 'xp_cmdshell'     xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。     sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' […]

龙生   12 Dec 2010
View Details

加强终端服务的安全性

    Windows 2000 的终端服务由于使用简单、方便等特点,备受众多管理员喜爱,很多管理员都利用它进行远程管理服务器的一个重要工。然后就是因为它的简单、方便,不与当前用户产生一个交互式登陆,可以在后台登陆操作,它也受到了黑客关注。现在我们来通过认真的配置来加强它的安全性。 1。修改终端服务的端口   修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp        和HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp 将这两个分支下的portnumber键值改为你想要的端口。   在客户端这样连接就可以了. 2。隐藏登陆的用户名   隐藏上次登陆的用户名,这样可防止恶意攻击者获得系统的管理用户名后进行穷举破解。     HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinlogonDontDisplayLastUserName 的值改为1就可以了。 3。指定用户登陆。为了安全,我们没必要让服务器上所有用户都登陆,譬如以下,我们只允许315safe这个用户登陆到终端服务器,按照如下方法做限制:     在“管理工具”—“终端服务配置”—“连接”,再选择右边的“RDP-TCP”的属性,找到“权限”选项,删除administrators组,然后再添加我们允许的315safe这个用户,其他一律不允许登陆。 4、启动审核      “终端服务”默认没有日志记录,需要手动开启,在RDP-TCP”的属性,找到“权限”选项下“高级”里有个“审核”添加everyone,然后选择需要记录的的事件。   “事件查看器”里终端服务日志很不完善。下面我们就来完善一下终端服务器日志。     在D盘目录下,创建2个文件“ts2000.BAT”(用户登录时运行的脚本文件)和“ts2000.LOG”(日志文件)。   编写“ts2000.BAT”脚本文件:   time /t >>ts2000.log  netstat -n -p tcp | find ″:3389″>>ts2000.log  start Explorer   第一行代码用于记录用户登录的时间,“time /t”的意思是返回系统时间,使用追加符号“>>”把这个时间记入“ts2000.LOG”作为日志的时间字段;第二行代码记录终端用户的IP地址,“netstat”是用来显示当前网络连接状况的命令,“-n”用于显示IP和端口,“-p tcp”显示TCP协议,管道符号“|”会将“netstat”命令的结果输出给“find”命令,再从输出结果中查找包含“3389”的行,最后把这个结果重定向到日志文件“ts2000.LOG”;最后一行为启动Explorer的命令。   把“ts2000.BAT”设置成用户的登录脚本。在终端服务器上,进入“RDP-Tcp属性”窗口,并切换到“环境”框,勾选“替代用户配置文件和远程桌面连接或终端服务客户端的设置”,在“程序路径和文件名”栏中输入“D:\ts2000.bat”,在“开始位置”栏中输入“D:\”,点击“确定”即可完成设置。此时,我们就可通过终端服务日志了解到每个用户的行踪了。 5。限制、指定连接终端的地址   启用服务器自带的IPSEC来指定特定的IP地址连接服务器。首先禁止所有3389的连接。  1。在“本地安全策略”选择“IP安全策略,在本地机器”,在右边的空白处按右键,“创建IP安全策略”,下一步,给策略取名(如3389),不选“激活默认响应规则”,完成,这是会打开一个对话框,是新建立策略(3389)的属性。2。添加新建规则,出现“IP筛选器列表”,起名叫all_3389,不选“使用添加向导”再按“添加”。按“确定”、“关闭”回到“新规则”属性窗口,选中刚设置的规则“all_3389”,再按“筛选器操作”选项,“筛选器操作”里没有我们的“阻止”我们新建立一项阻止。还是不选“使用添加向导”,按“添加”,在弹出的对话框中,在“安全措施”处选“阻止”项。       再按“常规”,在“名称”处给他起个名字,如”阻止3389“,然后确定回到”新规则“属性的”筛选器操作”处,选中刚才建立的“阻止3389”,再按“关闭”,回到开始时的“本地安全设置”对话框,选中“3389”后指派。这样所有的机器都无法连接到我们终端服务器了。           3。同样服务器也被栏在外面了,下面我们建立一条规则,只允许服务器信任的机器进行连接,譬如219.139.240.90 .我们打开“3389”的属性,不选“使用添加向导”,按“添加”,打开“新规则”属性,再按“添加”,出现“IP筛选器列表”,给它起个名字"OK_3389",不选使用添加向导,再按”添加“,出现”筛选器“属性,”寻址“选项设置成如图。         协议处设置TCP,3389,在”筛选器操作“里选择”允许“。这样就OK了,这样除了我们自己信任的机器,其他任何机器都无法登陆到终端服务器了。也可以设置为一个网关的信任机器。这样终端服务器就安全多了。

龙生   12 Dec 2010
View Details

Windows Server 2003网络服务器安全攻略

    Win2003 Server的安全性较之Win2K确实有了很大的提高,但是用Win2003 Server作为服务器是否就真的安全了?如何才能打造一个安全的个人Web服务器?下面我们简单介绍一下……   一、Windows Server2003的安装   1、安装系统最少两需要个分区,分区格式都采用NTFS格式   2、在断开网络的情况安装好2003系统   3、安装IIS,仅安装必要的 IIS 组件(禁用不需要的如FTP 和 SMTP 服务)。默认情况下,IIS服务没有安装,在添加/删除Win组件中选择“应用程序服务器”,然后点击“详细信息”,双击Internet信息服务(iis),勾选以下选项:   Internet 信息服务管理器;   公用文件;   后台智能传输服务 (BITS) 服务器扩展;   万维网服务。   如果你使用 FrontPage 扩展的 Web 站点再勾选:FrontPage 2002 Server Extensions   4、安装MSSQL及其它所需要的软件然后进行Update。   5、使用Microsoft 提供的 MBSA(Microsoft Baseline Security Analyzer) 工具分析计算机的安全配置,并标识缺少的修补程序和更新。下载地址:见页末的链接   二、设置和管理账户   1、系统管理员账户最好少建,更改默认的管理员帐户名(Administrator)和描述,密码最好采用数字加大小写字母加数字的上档键组合,长度最好不少于14位。   2、新建一个名为Administrator的陷阱帐号,为其设置最小的权限,然后随便输入组合的最好不低于20位的密码   3、将Guest账户禁用并更改名称和描述,然后输入一个复杂的密码,当然现在也有一个DelGuest的工具,也许你也可以利用它来删除Guest账户,但我没有试过。   4、在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-账户策略-账户锁定策略,将账户设为“三次登陆无效”,“锁定时间为30分钟”,“复位锁定计数设为30分钟”。   5、在安全设置-本地策略-安全选项中将“不显示上次的用户名”设为启用   6、在安全设置-本地策略-用户权利分配中将“从网络访问此计算机”中只保留Internet来宾账户、启动IIS进程账户。如果你使用了Asp.net还要保留Aspnet账户。   7、创建一个User账户,运行系统,如果要运行特权命令使用Runas命令。   三、网络服务安全管理   1、禁止C$、D$、ADMIN$一类的缺省共享   打开注册表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters,在右边的窗口中新建Dword值,名称设为AutoShareServer值设为0   2、 解除NetBios与TCP/IP协议的绑定   右击网上邻居-属性-右击本地连接-属性-双击Internet协议-高级-Wins-禁用TCP/IP上的NETBIOS   3、关闭不需要的服务,以下为建议选项   Computer Browser:维护网络计算机更新,禁用   Distributed File System: 局域网管理共享文件,不需要禁用   Distributed linktracking client:用于局域网更新连接信息,不需要禁用   Error reporting service:禁止发送错误报告   Microsoft Serch:提供快速的单词搜索,不需要可禁用   NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要禁用   PrintSpooler:如果没有打印机可禁用   Remote Registry:禁止远程修改注册表   Remote Desktop Help Session Manager:禁止远程协助   四、打开相应的审核策略   在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-审核策略在创建审核项目时需要注意的是如果审核的项目太多,生成的事件也就越多,那么要想发现严重的事件也越难当然如果审核的太少也会影响你发现严重的事件,你需要根据情况在这二者之间做出选择。   推荐的要审核的项目是:   登录事件   成功 失败   账户登录事件 成功 失败   系统事件   成功 失败 […]

龙生   12 Dec 2010
View Details