前言:最近刚到网络公司担当系统管理员,下面就依照自己的经验和环境做一下Win2000服务器的安全配置和优化。
以下是我虚拟主机的操作系统和服务器软件:OS:Win2k Advancd ServerFTP server:Serv-u 6.0.2www server: IISmail server: WebEasyMail 3.5.3.1 企业版防火墙:天网防火墙个人破解版杀毒软件:McAfee VirusScan Enterprise 8.0.i版远程管理软件:Terminal Services终端服务
下面我来说一下从安装系统、安装服务器应用程序、安全设置和优化的过程。
1.硬盘分区和安装系统
关于分区我强烈建议大家选择NTFS文件格式,不仅NTFS文件系统可以给我们带来很高的安全性,而且对于做WEB服务的虚拟主机来说磁盘配额很最要.还有文件和文件夹的压缩都给我们这些系统管理员提供了很高便利性。在分区之前和大家说一下,一定要合理的设置分区。合理的分区不仅可以给我们带来工作的方便,还可以提高系统的安全和稳定性。我的硬盘一共分了5个区(120G)。C盘用来装操作系统的文件。D盘用来存储各个WEB站点的文件。E盘用来保存IIS日志文件、Internet临时文件夹和页面文件。F盘用来装应用程序。就是说所有的应用程序都安装在F盘里。G盘用来保存备份文件和一些常用的工具。大家可以根据自己的情况合理的设置分区,而不必一一对应。下面就是安装系统了,在安装系统的时候组件的选择一定要仅仅安装自己需要的组件,而一些用不到的组件我们不要安装。那些用不到的组件会给我们带来一些意想不到的“惊喜”。在安装IIS的时候把FrontPage2000服务器扩展、Ineternet服务管理器(Html)、NNTP Server、SMTP Server、文件传输协议(FTP)服务器的复选框去掉。以保证这些用不到的服务不会给我们带来安全隐患。把Internet临时文件夹移动到非系统分区中,如我的设置是E盘: Internet EXPlorer-右击- 属性-Ineternet临时文件-设置-移动文件夹,选择相应的分区。把虚拟内存页面文件移动到到非系统分区中,,如我的设置是E盘:我的电脑-右击-属性-高级选项卡-性能选项-更改,设置初始大小和最大值,重启计算机。注意:以上两项操作都必需重启后生效。
2.为用户提供正常的服务。
在D盘里面为各个WEB站点建立相应的文件夹,以保证各个站点的文件存储在相应的文件夹中。在IIS里面建立相应的WEB站点、设置和相应的主机头、主目录、端口、IP地址。对应的在Serv-u里面建立相应的用户,以指向各自的WEB文件夹中,以便日后维护上传、下载的需要。在WebEasyMail里面设置相应的各个域的邮件用户、和容量等。关于服务器软件的安装问题,请您自己参考相应的文章。
3.服务的配置
在Windows里面有很多服务,这些服务都是为了不同的需求而提供的。在这里我们要根据自己的环境来配置服务,禁用那些不要的服务.老生常谈的一句话:"最少的服务+最小权限=最大的安全".禁用那些用不到的服务:Alerter、ClipBook、Computer Browser、 Distributed File System、Indexing Service、Internet Connection Sharing、Messenger、NetMeeting Remote Desktop Sharing、Print Spooler、Remote Registry Service、Smart Card、Task Scheduler、TCP/IP NetBIOS Helper Service、Telnet、Windows Time、Workstation.关于为什么禁用Workstation服务我会在下面说到。
[1] [2] [3]
3.端口的配置
下面我来说一下怎样关闭常见的危险端口和一些无用的共享,如:默认共享。在本地连接-属性中,把"Microsoft网络的文件和打印机共享"卸载掉。在选定的组件中之留下TCP/IP协议和Microsoft网络客户端.大家可能会说为什么要留Microsoft网络客户端,根据前几天的调试,如果不装它的话,重新启动IIS的时候会提示“服务不能启动,无法验证的服务”。选中TCP/IP协议-属性-高级-WINS-禁用TCP/IP上的Netbios选项。把HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI,Timeout双字节值改为0。建议大家设为0.这个键值对玩游戏有用,做虚拟主机我们用不到。把HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa项下的数值restrictanonymous,由0改为1。在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters项下新建双字节值AutoShareServer值为0。在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters项下新建双字节值SMBDeviceEnabled值为0。在防火墙中添加IP规则,允许21、25、80、110。禁止135端口。最后启动禁止所有别的端口的通过。我们也可以通过系统自带的本地安全策略和TCP/IP筛选来设置相应打开和关闭的端口。
4.IIS和权限设置
为了使IIS运行的更稳定和安全我们需要修改它,如:删除一些不用的映射、日志的设置等。下面是我的IIS的设置情况:Internet信息服务-计算机名称-属性-WWW服务(编辑)-主目录-配置-应用程序映射,删除下面的应用程序映射:.htr、.idc、.printer、.cer、.shtm、.stm 、.cdx 。只保留.ASP和.asa映射。对一般的应用比如运行ASP,已经够用了。多出那些无用的安全映射会给系统带来不必要的麻烦。在进程选项卡的脚本文件高速缓存中把放入高速缓存的最多ASP文件数设成300,以改善ASP文件的执行效率。在应用程序调试选项卡中选中"发送文本错误消息给客户"以防止通过错误消息来取得系统、网络、数据库的信息。在Internet信息服务-计算机名称-属性-WWW服务(编辑)-服务选项卡选中HTTP压缩的压缩静态文件,提高执行效率。在一个非系统分区中建立日志文件夹,来保存各个站点的日志。如我设置的分区是E,在分区中建立IISlog目录,用它来保存各个站点的日志文件,而不用系统默认的路径。把各个站点的日志指向IISlog文件夹中。设置如下:Internet服务管理器-Web站点-属性-Web站点选项卡-活动日志格式-属性-日志文件目录,把日志指向IISlog文件夹中。以便于以后我们查看日志的方便。为了保证系统的安全和各个站点FSO,在本地用户和组中为各个站点用户创建相应的用户,设置相应的密码,并把所属的默认组User删去,加入到guests组中。在各个Web站点的属性-目录安全性-匿名访问和验证控制-编辑-匿名访问使用帐号的对话框中选中自己站点相对应的用户帐户.我们在D盘各个站点文件夹的属性-安全选项卡去掉父系继承来的权限,把这个文件夹的访问权限设成redblood(这个用户是我改名后的管理员,我会在后面提到的)完全控制(FC)、SYSTEM(FC)、和Web站点对应用户的修改、读取及运行、列出文件夹目录、读取、写入权限。这样当其中的一个WEB站点被上传ASP木马,就不会危害其它的站点,因为他只有这个Web站点的权限而没有其它站点权限。把各个分区的权限设成只有redblood和system完全控制.但是要注意一点,如果你的页面文件通过设置而放到其它的分区中,比如我放到了E盘中,你除了给这个分区redblood、system的完全控制权限外还必须给这个分区everyone的读权限,否则重启的时候会报错!在C:\Program Files\Common Files文件夹属性对话框安全选项卡中,取消"允许将来自父系的可继承权限传播给该对象",访问权限设成redblood、system完全控制,everyone读取及运行、列出文件夹目录、读取。因为ASP连接数据库的时候会用到这个目录。然后把WINNT目录也按照同样的方法来设置成和Common Files文件夹同样的权限。我们还要特殊设置一个目录那就是C:\WINNT\Temp,这个目录的访问权限是everyone修改、读取及运行、列出文件夹目录、读取、写入。把如下文件设置成只有redblood完全控制权限,取消父系继承来的权限。这些文件有:C:\winnt\sytem32文件夹和C:\winnt\sytem32\dllcache文件夹的net.exe、net1.exe、netstat、netsh、cacls、cmd.exe、ftp.exe、tftp.exe、at.exe、format.com、xcopy.exe.把装应用程序的目录我这里是f:\soft目录的访问权限设成redblood、system完全控制和everyone读取、读取和运行、列出文件夹目录的权限。禁用一些不安全的组件,如:Scripting.FileSystemObject、WScript.Shell、Shell.Application组件。Scripting.FileSystemObject组件:我们可以修改对应项在注册表里面的名称和值:HKEY_CLASSES_ROOT\Scripting.FileSystemObject\HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值WScript.Shell组件:HKEY_CLASSES_ROOT\WScript.Shell\HKEY_CLASSES_ROOT\WScript.Shell.1\HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值Shell.Application组件:HKEY_CLASSES_ROOT\Shell.Application\HKEY_CLASSES_ROOT\Shell.Application.1\HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值HKEY_CLASSES_ROOT\Shell.Application.1\CLSID\项目的值因为在前里我们已经单独的设置相应的Web站点,所以不必修改Scripting.FileSystemObject(fso)组件。在这里我直接注销下面两个组件:regsvr32 /u C:\WINNT\System32\wshom.ocx对应于WScript.Shell组件。regsvr32/u C:\WINNT\System32\shell32.dll对应于Shell.Application组件。禁止guests组的用户调用它:cacls C:\WINNT\system32\scrrun.dll /e /d guestscacls C:\WINNT\system32\shell32.dll /e /d guests前面在服务设置的时候我把Workstation服务禁用了,因为ASP木马运行候可以通过它来列出系统的用户和进程。所以为了安全考虑我们禁用它。
[1] [2] [3]
5.修改注册表提高系统安全和性能
下面我使用注册表和组策略一起来设
(出处:http://www.sheup.com)