其实,在服务器的安全设置方面,我虽然有一些经验,但是还谈不上有研究,所以我写这篇文章的时候心里很不踏实,总害怕说错了会误了别人的事。
本文更侧重于防止ASP漏洞攻击,所以服务器防黑等方面的讲解可能略嫌少了点。 基本的服务器安全设置 安装补丁 安装好操作系统之后,最好能在托管之前就完成补丁的安装,配置好网络后,如果是2000则确定安装上了SP4,如果是2003,则最好安装上SP1,然后点击开始→Windows Update,安装所有的关键更新。 安装杀毒软件 虽然杀毒软件有时候不能解决问题,但是杀毒软件避免了很多问题。我一直在用诺顿2004,据说2005可以杀木马,不过我没试过。还有人用瑞星,瑞星是确定可以杀木马的。更多的人说卡巴司机好,不过我没用过。 不要指望杀毒软件杀掉所有的木马,因为ASP木马的特征是可以通过一定手段来避开杀毒软件的查杀。 设置端口保护和防火墙、删除默认共享 都是服务器防黑的措施,即使你的服务器上没有IIS,这些安全措施都最好做上。这是阿江的盲区,大概知道屏蔽端口用本地安全策略,不过这方面的东西网上攻略很多,大家可以擞出来看看,晚些时候我或者会复制一些到我的网站上。 权限设置 阿江感觉这是防止ASP漏洞攻击的关键所在,优秀的权限设置可以将危害减少在一个IIS站点甚至一个虚拟目录里。我这里讲一下原理和设置思路,聪明的朋友应该看完这个就能解决问题了。 权限设置的原理 WINDOWS用户,在WINNT系统中大多数时候把权限按用户(組)来划分。在【开始→程序→管理工具→计算机管理→本地用户和组】管理系统用户和用户组。 NTFS权限设置,请记住分区的时候把所有的硬盘都分为NTFS分区,然后我们可以确定每个分区对每个用户开放的权限。【文件(夹)上右键→属性→安全】在这里管理NTFS文件(夹)权限。 IIS匿名用户,每个IIS站点或者虚拟目录,都可以设置一个匿名访问用户(现在暂且把它叫“IIS匿名用户”),当用户访问你的网站的.ASP文件的时候,这个.ASP文件所具有的权限,就是这个“IIS匿名用户”所具有的权限。 权限设置的思路 要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。 在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。 设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。 这样设置了之后,这个站点里的ASP程序就只有当前这个文件夹的权限了,从探针上看,所有的硬盘都是红叉叉。 我的设置方法 我是先创建一个用户组,以后所有的站点的用户都建在这个組里,然后设置这个组在各个分区没有权限或者完全拒绝。然后再设置各个IIS用户在各在的文件夹里的权限。 因为比较多,所以我很不想写,其实知道了上面的原理,大多数人都应该懂了,除非不知道怎么添加系统用户和組,不知道怎么设置文件夹权限,不知道IIS站点属性在那里。真的有那样的人,你也不要着急,要沉住气慢慢来,具体的方法其实自己也能摸索出来的,我就是这样。当然,如果我有空,我会写我的具体设置方法,很傲能还会配上图片。 改名或卸载不安全组件 不安全组件不惊人 我的在阿江探针1.9里加入了不安全组件检测功能(其实这是参考7i24的代码写的,只是把界面改的友好了一点,检测方法和他是基本一样的),这个功能让很多站长吃惊不小,因为他发现他的服务器支持很多不安全组件。 其实,只要做好了上面的权限设置,那么FSO、XML、strem都不再是不安全组件了,因为他们都没有跨出自己的文件夹或者站点的权限。那个欢乐时光更不用怕,有杀毒软件在还怕什么时光啊。 最危险的组件是WSH和Shell,因为它可以运行你硬盘里的EXE等程序,比如它可以运行提升程序来提升SERV-U权限甚至用SERVU来运行更高权限的系统程序。 谨慎决定是否卸载一个组件 组件是为了应用而出现的,而不是为了不安全而出现的,所有的组件都有它的用处,所以在卸载一个组件之前,你必须确认这个组件是你的网站程序不需要的,或者即使去掉也不关大体的。否则,你只能留着这个组件并在你的ASP程序本身上下工夫,防止别人进来,而不是防止别人进来后SHELL。 比如,FSO和XML是非常常用的组件之一,很多程序会用到他们。WSH组件会被一部分主机管理程序用到,也有的打包程序也会用到。 一、操作系统配置 1.安装操作系统(NTFS分区)后,装杀毒软件,我选用的是卡巴。 2.安装系统补丁。扫描漏洞全面杀毒 3.删除Windows Server 2003默认共享 首先编写如下内容的批处理文件:
@echo off net share C$ /del net share D$ /del net share E$ /del net share F$ /del net share admin$ /del
文件名为delshare.bat,放到启动项中,每次开机时会自动删除共享。 4.禁用IPC连接 打开CMD后输入如下命令即可进行连接:net use\\ip\ipc$ "password" /user:"usernqme"。我们可以通过修改注册表来禁用IPC连接。打开注册表编辑器。找到如下组建HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa中的restrictanonymous子键,将其值改为1即可禁用IPC连接。 5.删除"网络连接"里的协议和服务 在"网络连接"里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),同时在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS(S)"。 6.启用windows连接防火墙,只开放web服务(80端口)。 注:在2003系统里,不推荐用TCP/IP筛选里的端口过滤功能,譬如在使用FTP服务器的时候,如果仅仅只开放21端口,由于FTP协议的特殊性,在进行FTP传输的时候,由于FTP 特有的Port模式和Passive模式,在进行数据传输的时候,需要动态的打开高端口,所以在使用TCP/IP过滤的情况下,经常会出现连接上后无法列出目录和数据传输的问题。所以在2003系统上增加的windows连接防火墙能很好的解决这个问题,所以都不推荐使用网卡的TCP/IP过滤功能。 7.磁盘权限 系统盘只给 Administrators 和 SYSTEM 权限 系统盘\Documents and Settings 目录只给 Administrators 和 SYSTEM 权限; 系统盘\Documents and Settings\All Users 目录只给 Administrators 和 SYSTEM 权限; 系统盘\Documents and Settings\All Users\Application Data目录只给 Administrators 和 SYSTEM 权限; 系统盘\Windows 目录只给 Administrators 、 SYSTEM 和 users 权限; 系统盘\Windows\System32\net.exe;net1.exe;cmd.exe;command.exeftp.exe;netstat.exe;regedit.exe;at.exe;attrib.exe;cacls.exe 文件只给 Administrators 权限(如果觉得没用就删了它,比如我删了cmd.exe,command.exe,嘿嘿。); 其它盘,有安装程序运行的(我的sql server 2000 在D盘)给 Administrators 和 SYSTEM 权限,无只给 Administrators 权限。 8.本地安全策略设置 开始菜单—>管理工具—>本地安全策略 A、本地策略——>审核策略 (可选用) 审核策略更改 成功 失败 审核登录事件 成功 失败 审核对象访问 失败 审核过程跟踪 无审核 审核目录服务访问 失败 审核特权使用 失败 审核系统事件 成功 失败 审核账户登录事件 成功 失败 审核账户管理 成功 失败 B、本地策略——>用户权限分配 关闭系统:只有Administrators组、其它全部删除。 通过终端服务拒绝登陆:加入Guests、Users组 通过终端服务允许登陆:只加入Administrators组,其他全部删除 C、本地策略——>安全选项 交互式登陆:不显示上次的用户名 启用 网络访问:可匿名访问的共享 全部删除 网络访问:可匿名访问的命名管道 全部删除 **网络访问:可远程访问的注册表路径 全部删除 **网络访问:可远程访问的注册表路径和子路径 全部删除 帐户:重命名来宾帐户 重命名一个帐户 (下面一项更改可能导致sqlserver不能使用) 帐户:重命名系统管理员帐户 重命名一个帐户 二、iis配置(包括网站所在目录) 1.新建自己的网站(*注意:在应用程序设置中执行权限设为无,在需要的目录里再更改),目录不在系统盘 注:为支持asp.net,将系统盘\Inetpub\wwwroot中的aspnet_client文件夹复制到web根目录下,并给web根目录加上users权限。 2.删掉系统盘\inetpub目录 3.删除不用的映射 在"应用程序配置"里,只给必要的脚本执行权限:ASP、ASPX。 4.为网站创建系统用户 A.例如:网站为yushan43436.net,新建用户yushan43436.net权限为guests。然后在web站点属性里"目录安全性"---"身份验证和访问控制"里设置匿名访问使用下列Windows 用户帐户"的用户名和密码都使用yushan43436.net这个用户的信息。(用户名:主机名\yushan43436.net) B.给网站所在的磁盘目录添加用户yushan43436.net,只给读取和写入的权限。 5.设置应用程及子目录的执行权限 A.主应用程序目录中的"属性--应用程序设置--执行权限"设为纯脚本 B.在不需要执行asp、asp.net的子目录中,例如上传文件目录,执行权限设为无 6.应用程序池设置 我的网站使用的是默认应用程序池。设置"内存回收":这里的最大虚拟内存为:1000M,最大使用的物理内存为256M,这样的设置几乎是没限制这个站点的性能的。 回收工作进程(分钟):1440 在下列时间回收工作进程:06:00
(责任编辑:admin)
|