最佳安全实践:锁定IIS和SQL服务器

微软的IIS和SQL服务器通常是基于Windows的分布式应用环境的主要部分。这就意味着它们也是最经常受到攻击的目标。在本文中,我们将提供提高这些产品安全性的一些具体建议。

提高IIS安全性的建议

IIS中有一个称作ISAPI的编程接口,这个编程接口与那些以DLL为扩展名的文件有关。这些文件也称作ISAPI扩展。

小知识

ISAPI是(Internet Server API)的缩写,是微软IIS web服务器的一个应用程序编程接口(API),因为ISAPI与Web服务器结合的更紧密,这使程序员可以通过使用ISAPI开发出比传统CGI技术执行效率更高的基于web的应用程序。除了微软的IIS之外,还有其它一些厂商的Web服务器产品也支持ISAPI接口。

ISAPI扩展负责处理如活动服务器页(ASP)、.NET网络服务和基于网络的打印共享等功能。然而,很多这些扩展功能都是不必要的,特别是在你使用IIS 5.0以前版本的时候。这个问题是许多这种扩展(过滤器)都存在可以利用的安全漏洞。臭名昭著的“红色代码”就是利用这些扩展功能的一种恶意程序的例子。你可以仅仅启用网络服务器和应用程序需要的那些ISAPI扩展,严格限制能够与各种扩展功能一起使用的HTTP选项。

在IIS中设置ISAPI选项

大多数IIS安装都包括一些简单的应用程序和旨在展示这个网络服务器功能的脚本。它们在设计上并不是很好的考虑了安全,特别是在5.0版本之前。这样,人们利用这些程序的安全漏洞就可以覆盖服务器上的文件或者远程阅览,甚至远程访问敏感的服务器信息,如系统设置和指向可执行程序的路径。在设置任何IIS服务器投入正式使用之前,你至少应该删除“/InetPub/iissamples”目录,删除、移动“/InetPub/AdminScripts”管理员脚本目录或限制对它的访问。微软的IIS安全工具IIS Lockdown Tool对于加强IIS安全是非常有用的。

任何没有坚持不断地升级补丁和保持最新状态的Web服务器都是恶意活动的主要目标。有规律地及时地修补允许公开访问的web服务器是非常重要的。

ColdFusion和PHP等网络插件也能够在网络服务器中造成安全漏洞。对这些插件要认真进行设置,并且要查看资源网站和最新的安全公告,了解这些插件需要的最新的补丁和新的漏洞。

IIS安全检查清单

1、应用最新的操作系统服务包和IIS的安全升级以及在同一台主机上安装的任何应用程序的最新升级包。考虑使用自动升级工具来自动安装补丁。

2、安装基于主机的杀毒和入侵检测软件。保持这些软件使用最新的补丁并且经常查看记录文件。

3、关闭不必要的脚本解释器并且删除它们的二进制文件。例如 perl、perlscript、vbscript、jscript、javascript和php。
  
4、使用日志并且经常检查日志记录,最好通过归纳事件的自动化程序来查看记录并且报告异常和可疑的事件。

5、删除或者限制攻击者突破计算机常用的系统工具。例如,tftp(.exe)、ftp(.exe)、cmd.exe、bash、net.exe、remote.exe,和telnet(.exe)等。

6、在web服务器上仅运行HTTP服务以及支持这种服务所需的服务。

7、熟悉和最大限度地减少通过公共网络服务器进入内部网络的任何连接。在面向互联网的系统上关闭文件和打印机共享以及NETBIOS名称解析。

8、在隔离区使用一个单独的DNS服务器为面向互联网的Web服务器服务。把在隔离区外面的不能够解析的任何查询都引导到其它公共DNS服务器中或者你的服务提供商的服务器中,千万不要引导到你内部的DND服务器。

9、在面向公众的系统中使用与内部系统不同的帐号和密码制定规则,面向互联网的IIS服务器应该位于防火墙后面的隔离区,隔离区和内部网络之间还有第二层防火墙。面向互联网的IIS服务器不应该是内部活动目录域的一部分,或者使用属于内部活动目录域的账户。

10、如果有必要的话,封锁所有通向隔离区的端口,80端口或者443端口除外。

11、在一个硬盘上安装操作系统并且在不同的硬盘上安装网站,以防止目录遍历攻击。

12、如果你必须使用远程数据协议(或者终端服务协议和远程桌面协议)来管理服务器,把默认的3389端口改为黑客不容易发现的其它端口。

保证IIS安全的工具

对于单个服务器使用Windows升级或者自动升级程序。

在可管理的环境中或者管理员负责多个不同的系统的地方使用系统管理服务器 (SMS) 或者 Windows服务器升级服务(WSUS) 。

微软基准安全分析器(MBSA) 帮助系统管理员在本地系统和远程系统实施扫描,查找最新的补丁。这个工具在Windows NT 4、Windows 2000、 Windows XP和Windows 2003平台上运行。

使用IIS Lockdown Tool 或者安全设置向导(SCW)增强你的IIS和服务器。使用URLScan过滤HTTP请求。URLScan是IIS Lockdown Tool 的一部分,经过设置之后能够拒绝“蓝色代码”和“红色代码”等恶意的HTTP请求,甚至在服务器处理这些恶意请求之前就能够拒绝这些请求。

把这些工具下载到另一台机器上并在你的IIS服务器连接到互联网之前把这些工具复制到你的IIS服务器中。避免在彻底进行分析和使用补丁之前把你的IIS服务器连接到互联网。

SQL服务器安全措施推荐

修改默认的SQL服务器端口

最普遍的SQL的攻击甚至在安全公告也没有包含。这就是使用一个空白的口令企图简单地登录SA账户。微软的SQL服务器安装了默认采用一个口令空白的SA账户,这是你需要修改的第一件事情。

另一个产生空白口令的常见原因是产品。例如,某些版本的Visio安装微软的SQL服务器2000桌面引擎(MSDE)从来不修改SA口令。用户甚至都不知道他们在运行MSDE。你可以从eEye数字安全公司下载一个程序扫描你的网络查找拥有空白SA账户的SQL服务器。

SQL服务器安全检查清单

1、设置一个SA账户口令,并且限制这个账户的使用。你还要定期修改口令以防止口令扩散,并且被开发人员或者太多的管理员所使用。如果任何知道SA口令的人离开公司,你都需要修改SA口令。使用eEye的工具扫描你的网络查找没有SA口令的SQL服务器。

2、将你的SQL服务器设置在防火墙后面,与你的IIS服务器或者网络服务器分开。仅允许这些指定的网络服务器连接SQL服务器。你的SQL服务器永远不要向互联网开放或者允许公开访问。

3、从sysadmin角色中删除BUILTIN/Administrators ,然后将SQL管理权限赋予需要SQL管理功能的域账户。

4、如果可能的话,使用Windows身份识别或者仅使用Windows模式。采用这种方式,潜在的黑客必须首先向这个域验证身份,而不是仅向SQL服务器验证身份。

5、不要在域控制器上运行SQL服务器。

6、把SQL服务器启动账户改为非本地帐户。

7、启用失败登录选项(服务器属性/安全标签),这样你就可以查看失败的登录,看看是否有未经过允许的个人设法访问这个服务器。如果可能的话,监视SQL记录并且使用NETSEND或者电子邮件在SQL中设置报警。

8、为操作系统和SQL保持最新的补丁更新和服务包。某些选项可以参考确保IIS安全的工具。

9、保护任何扩展的存储过程。控制存储过程对数据的访问,批准访问这些数据,而不是对数据本身提供全面的db_datareader和db_datawriter许可。

10、使用设置工具修改标准的SQL服务器端口,关闭默认端口1433。让你的网络管理员打开新的端口。

11、确保everyone组无SQL服务器注册表键的写权。 

时间: 2024-11-18 20:06:21

最佳安全实践:锁定IIS和SQL服务器的相关文章

IIS与SQL服务器安全加固

个人观点:可以说按照下文的设置后应该可以防止一般的攻击了!安全设置是比较bt的拉!我想如果按照这样的设置,破坏者真的很难混拉!^_^---------------------------步骤 : 安装和配置 Windows Server 2003. 1. 将\System32\cmd.exe转移到其他目录或更名: 2. 系统帐号尽量少,更改默认帐户名(如Administrator)和描述,密码尽量复杂: 3. 拒绝通过网络访问该计算机(匿名登录:内置管理员帐户:Support_388945a0:

给WIN2003 IIS SQL服务器安全加固_网络冲浪

    1. 将<systemroot>\System32\cmd.exe转移到其他目录或更名:     2. 系统帐号尽量少,更改默认帐户名(如Administrator)和描述,密码尽量复杂:     3. 拒绝通过网络访问该计算机(匿名登录:内置管理员帐户:Support_388945a0:Guest:所有非操作系统服务帐户)     4. 建议对一般用户只给予读取权限,而只给管理员和System以完全控制权限,但这样做有可能使某些正常的脚本程序不能执行,或者某些需要写的操作不能完成,这

黑客攻破SQL服务器系统的十种方法

无论是使用手工试探还是使用安全测试工具,恶意攻击者总是使用各种诡计从你的防火墙内部和外部攻破你的SQL服务器系统.既然黑客在做这样的事情.你也需要实施同样的攻击来检验你的系统的安全实力.这是理所当然的.下面是黑客访问和攻破运行SQL服务器的系统的十种诡计. 1.通过互联网直接连接 这些连接可以用来攻击没有防火墙保护.全世界都可以看到和访问的SQL服务器.DShield公司的端口报告显示了有多少系统在那里等待遭受攻击.我不理解允许从互联网直接访问这种重要的服务器的理由是什么.但是,我在我的评估中仍

十大PHP最佳安全实践

  PHP被广泛用于各种Web开发.而当服务器端脚本配置错误时会出现各种问题.现今,大部分Web服务器是基于Linux环境下运行(比如:Ubuntu,Debian等).本文例举了十大PHP最佳安全实践方式,能够让您轻松.安全配置PHP. PHP安全性设置提示: DocumentRoot: /var/www/ Default Web server: Apache Default PHP configuration file: /etc/php.ini Default PHP extensions

使用查询分析器调整SQL服务器脚本

查询分析|服务器|脚本 我喜欢把SQL服务器所捆绑的工具看作是倒金字塔型的,诊断和检查一般问题的工具在顶端,寻找和诊断问题具体区域的工具在底部.除了提供一种编写SQL脚本的便捷方式之外,在你需要解决特定SQL脚本里明确问题的时候,查询分析器(Query Analyzer)还是所需要使用的资源.如果你需要指出哪个查询正在保持着某个特定表格的锁定状态,你也会希望使用查询分析器. 查询分析器的关键诊断特性是它能够显示某个查询的执行计划.这个执行计划会向你提供各种类型的有用信息,例如在查询的执行期间如何

SQL服务器内存有两种基本管理方法:动态分配和静态分配

动态|服务器|静态 SQL服务器内存有两种基本管理方法:动态分配和静态分配 控制程序可使用的内存数量.动态分配允许管理员声明一块内存的大小:考虑到它的实际使用,SQL服务器可以分配给其需要占用的内存的最大值,并且(理论上)在没有使用内存的情况下将其释放.静态分配则是创建一块固定的内存空间,提供给SQL Server使用--不再进行分配. 在默认情况下,SQL Server被设置成动态分配,分配给其正在运行的计算机内所有可用的物理内存.许多管理员注意到SQL Server内存随时间的流逝被逐渐消耗

《SQL Server企业级平台管理实践》读书笔记——SQL Server中数据文件空间使用与管理

原文:<SQL Server企业级平台管理实践>读书笔记--SQL Server中数据文件空间使用与管理 1.表和索引存储结构 在SQL Server2005以前,一个表格是以一个B树或者一个堆(heap)存放的.每个B树或者堆,在sysindexes里面都有一条记录相对应.SQL Server2005以后,引入了分区表的概念(Table Partition),在存储组织上,现有的分区基本上替代了原来表格的概念,原先表的概念成为了一个逻辑概念.一个分区就是一个B树或者一个堆.而一张表格则是一个

《SQL Server企业级平台管理实践》读书笔记——SQL Server数据库文件分配方式

原文:<SQL Server企业级平台管理实践>读书笔记--SQL Server数据库文件分配方式 1.文件分配方式以及文件空间检查方法 最常用的检查数据文件和表大小的命令就是:sp_spaceused 此命令有三个缺陷:1.无法直观的看出每个数据文件和日志文件的使用情况.2.这个存储过程依赖SQL Server存储在一些系统视图里的空间使用统计信息计算出的结果,如果没有更新空间统计信息,比如刚刚发生大数据插入,sp_spaceused的结果就不准确.3.这个命令主要是针对普通用户的数据库,对

《SQL Server企业级平台管理实践》读书笔记——SQL Server中收缩数据库不好用的原因

原文:<SQL Server企业级平台管理实践>读书笔记--SQL Server中收缩数据库不好用的原因 数据库管理员有时候需要控制文件的大小,可能选择收缩文件,或者把某些数据文件情况以便从数据库里删除. 这时候我们就要使用到DBCC SHRINKFILE命令,此命令的脚本为: DBCC SHRINKFILE ( { file_name | file_id } { [ , EMPTYFILE ] | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATE