<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[Windows 2003服务器安全配置终极技巧]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Thu, 31 Aug 2006 09:43:55 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	网上流传的很多关于windows server 2003系统的安全配置，但是仔细分析下发现很多都不全面，并且很多仍然配置的不够合理，并且有很大的安全隐患，今天我决定仔细做下极端BT的2003服务器的安全配置，让更多的网管朋友高枕无忧。 <br/><br/>我们配置的服务器需要提供支持的组件如下：（ASP、ASPX、CGI、PHP、FSO、JMAIL、MySql、SMTP、POP3、FTP、3389终端服务、远程桌面Web连接管理服务等），这里前提是已经安装好了系统，IIS，包括FTP服务器，邮件服务器等，这些具体配置方法的就不再重复了，现在我们着重主要阐述下关于安全方面的配置。 <br/><br/>关于常规的如安全的安装系统，设置和管理帐户，关闭多余的服务，审核策略，修改终端管理端口， 以及配置MS-SQL，删除危险的存储过程，用最低权限的public帐户连接等等，都不说了 <br/><br/>先说关于系统的NTFS磁盘权限设置，大家可能看得都多了，但是2003服务器有些细节地方需要注意的，我看很多文章都没写完全。 <br/><br/>C盘只给administrators 和system权限，其他的权限不给，其他的盘也可以这样设置，这里给的system权限也不一定需要给，只是由于某些第三方应用程序是以服务形式启动的，需要加上这个用户，否则造成启动不了。<br/><br/> <br/><br/><br/>Windows目录要加上给users的默认权限，否则ASP和ASPX等应用程序就无法运行。以前有朋友单独设置Instsrv和temp等目录权限，其实没有这个必要的。 <br/><br/><br/> <br/><br/><br/>另外在c:/Documents and Settings/这里相当重要，后面的目录里的权限根本不会继承从前的设置，如果仅仅只是设置了C盘给administrators权限，而在All Users/Application Data目录下会 出现everyone用户有完全控制权限，这样入侵这可以跳转到这个目录，写入脚本或只文件，再结合其他漏洞来提升权限；譬如利用serv-u的本地溢出提升权限，或系统遗漏有补丁，数据库的弱点，甚至社会工程学等等N多方法，从前不是有牛人发飑说："只要给我一个webshell，我就能拿到system"，这也的确是有可能的。在用做web/ftp服务器的系统里，建议是将这些目录都设置的锁死。其他每个盘的目录都按照这样设置，没个盘都只给adinistrators权限。 <br/><br/> <br/><br/><br/>另外，还将：net.exe，cmd.exe，tftp.exe，netstat.exe，regedit.exe，at.exe，attrib.exe，cacls.exe，这些文件都设置只允许administrators访问。 <br/><br/>把不必要的服务都禁止掉，尽管这些不一定能被攻击者利用得上，但是按照安全规则和标准上来说，多余的东西就没必要开启，减少一份隐患。 <br/><br/>在"网络连接"里，把不需要的协议和服务都删掉，这里只安装了基本的Internet协议（TCP/IP），由于要控制带宽流量服务，额外安装了Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS（S）"。在高级选项里，使用"Internet连接防火墙"，这是windows 2003 自带的防火墙，在2000系统里没有的功能，虽然没什么功能，但可以屏蔽端口，这样已经基本达到了一个IPSec的功能。 <br/><br/> <br/> <br/> <br/><br/><br/>这里我们按照所需要的服务开放响应的端口。在2003系统里，不推荐用TCP/IP筛选里的端口过滤功能，譬如在使用FTP服务器的时候，如果仅仅只开放21端口，由于FTP协议的特殊性，在进行FTP传输的时候，由于FTP 特有的Port模式和Passive模式，在进行数据传输的时候，需要动态的打开高端口，所以在使用TCP/IP过滤的情况下，经常会出现连接上后无法列出目录和数据传输的问题。所以在2003系统上增加的windows连接防火墙能很好的解决这个问题，所以都不推荐使用网卡的TCP/IP过滤功能。 &nbsp;<br/>SERV-U FTP 服务器的设置： <br/>一般来说，不推荐使用srev-u做ftp服务器，主要是漏洞出现的太频繁了，但是也正是因为其操作简单，功能强大，过于流行，关注的人也多，才被发掘出bug来，换做其他的ftp服务器软件也一样不见得安全到哪儿去。 <br/>当然，这里也有款功能跟serv-u同样强大，比较安全的ftp软件：Ability FTP Server <br/>设置也很简单，不过我们这里还是要迎合大众胃口，说说关于serv-u的安全设置。 <br/>首先，6.0比从前5.x版本的多了个修改本地LocalAdministrtaor的密码功能，其实在5.x版本里可以用ultraedit-32等编辑器修改serv-u程序体进行修改密码端口，6.0修补了这个隐患，单独拿出来方便了大家。不过修改了管理密码的serv-u是一样有安全隐患的，两个月前臭要饭的就写了新的采用本地sniff方法获取serv-u的管理密码的exploit，正在网上火卖着，不过这种sniff的方法，同样是在获得webshell的条件后还得有个能在目录里有"执行"的权限，并且需要管理员再次登陆运行serv-u administrator的时候才能成功。所以我们的管理员要尽量避上以上几点因素，也是可以防护的。 &nbsp;<br/> &nbsp;<br/>另外serv-u的几点常规安全需要设置下： <br/>选中"Block "FTP_bounce"attack and FXP"。什么是FXP呢？通常，当使用FTP协议进行文件传输时，客户端首先向FTP服务器发出一个"PORT"命令，该命令中包含此用户的IP地址和将被用来进行数据传输的端口号，服务器收到后，利用命令所提供的用户地址信息建立与用户的连接。大多数情况下，上述过程不会出现任何问题，但当客户端是一名恶意用户时，可能会通过在PORT命令中加入特定的地址信息，使FTP服务器与其它非客户端的机器建立连接。虽然这名恶意用户可能本身无权直接访问某一特定机器，但是如果FTP服务器有权访问该机器的话，那么恶意用户就可以通过FTP服务器作为中介，仍然能够最终实现与目标服务器的连接。这就是FXP，也称跨服务器攻击。选中后就可以防止发生此种情况。 <br/><br/> <br/><br/><br/>另外在"Block anti time-out schemes"也可以选中。其次，在"Advanced"选项卡中，检查 "Enable security"是否被选中，如果没有，选择它们。 <br/><br/><br/><br/>IIS的安全： <br/><br/>删掉c:/inetpub目录，删除iis不必要的映射 <br/><br/>首先是每一个web站点使用单独的IIS用户，譬如这里，新建立了一个名为<a href="http://www.315safe.com" target="_blank">www.315safe.com</a> ，权限为guest的。<br/><br/> <br/> <br/><br/><br/>在IIS里的站点属性里"目录安全性"---"身份验证和访问控制"里设置匿名访问使用下列Windows 用户帐户"的用户名密码都使用<a href="http://www.315safe.com" target="_blank">www.315safe.com</a> 这个用户的信息.在这个站点相对应的web目录文件，默认的只给IIS用户的读取和写入权限（后面有更BT的设置要介绍）。 &nbsp;<br/><br/><br/><br/>在"应用程序配置"里，我们给必要的几种脚本执行权限：ASP.ASPX,PHP， <br/><br/>ASP，ASPX默认都提供映射支持了的，对于PHP，需要新添加响应的映射脚本，然后在web服务扩展将ASP，ASPX都设置为允许，对于php以及CGI的支持，需要新建web服务扩展，在扩展名(X)：下输入 php ，再在要求的文件(E)：里添加地址 C:/php/sapi/php4isapi.dll ，并勾选设置状态为允许(S)。然后点击确定，这样IIS就支持PHP了。支持CGI同样也是如此。 <br/><br/><br/><br/>要支持ASPX，还需要给web根目录给上users用户的默认权限，才能使ASPX能执行。 <br/><br/> <br/> <br/><br/><br/>另外在应用程序配置里，设置调试为向客户端发送自定义的文本信息，这样能对于有ASP注入漏洞的站点，可以不反馈程序报错的信息，能够避免一定程度的攻击。 <br/><br/><br/><br/>在自定义HTTP错误选项里，有必要定义下譬如404,500等错误，不过有有时候为了调试程序，好知道程序出错在什么地方，建议只设置404就可以了。<br/><br/> <br/> <br/><br/><br/>IIS6.0由于运行机制的不同，出现了应用程序池的概念。一般建议10个左右的站点共用一个应用程序池，应用程序池对于一般站点可以采用默认设置， <br/><br/><br/><br/>可以在每天凌晨的时候回收一下工作进程。<br/><br/><br/><br/>新建立一个站，采用默认向导，在设置中注意以下在应用程序设置里：执行权限为默认的纯脚本，应用程序池使用独立的名为：315safe的程序池。 <br/><br/> <br/> <br/><br/><br/>名为315safe的应用程序池可以适当设置下"内存回收"：这里的最大虚拟内存为：1000M，最大使用的物理内存为256M，这样的设置几乎是没限制这个站点的性能的。 <br/><br/><br/><br/>在应用程序池里有个"标识"选项，可以选择应用程序池的安全性帐户，默认才用网络服务这个帐户，大家就不要动它，能尽量以最低权限去运行大，隐患也就更小些。在一个站点的某些目录里，譬如这个"uploadfile"目录，不需要在里面运行asp程序或其他脚本的，就去掉这个目录的执行脚本程序权限，在"应用程序设置"的"执行权限"这里，默认的是"纯脚本"，我们改成"无"，这样就只能使用静态页面了。依次类推，大凡是不需要asp运行的目录，譬如数据库目录，图片目录等等里都可以这样做，这样主要是能避免在站点应用程序脚本出现bug的时候，譬如出现从前流行的upfile漏洞，而能够在一定程度上对漏洞有扼制的作用。 <br/><br/><br/><br/>在默认情况下，我们一般给每个站点的web目录的权限为IIS用户的读取和写入，如图： <br/><br/><br/><br/>但是我们现在为了将SQL注入，上传漏洞全部都赶走，我们可以采取手动的方式进行细节性的策略设置。 <br/>1． 给web根目录的IIS用户只给读权限。如图： <br/><br/><br/><br/>然后我们对响应的uploadfiles/或其他需要存在上传文件的目录额外给写的权限，并且在IIS里给这个目录无脚本运行权限，这样即使网站程序出现漏洞，入侵者也无法将asp木马写进目录里去，呵呵， 不过没这么简单就防止住了攻击，还有很多工作要完成。如果是MS-SQL数据库的，就这样也就OK了，但是Access的数据库的话，其数据库所在的目录，或数据库文件也得给写权限，然后数据库文件没必要改成.asp的。这样的后果大家也都知道了把，一旦你的数据库路径被暴露了，这个数据库就是一个大木马，够可怕的。其实完全还是规矩点只用mdb后缀，这个目录在IIS里不给执行脚本权限。然后在IIS里加设置一个映射规律，如图： <br/><br/><br/><br/><br/>这里用任意一个dll文件来解析.mdb后缀名的映射，只要不用asp.dll来解析就可以了，这样别人即使获得了数据库路径也无法下载。这个方法可以说是防止数据库被下载的终极解决办法了。<br/><br/>Tags - <a href="http://www.dzhope.com/tags/windows/" rel="tag">windows</a> , <a href="http://www.dzhope.com/tags/2003/" rel="tag">2003</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] Windows 2003服务器安全配置终极技巧]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>