Windows虚拟主机安全配置与优化_操作系统
前言:最近刚到网络公司担当系统管理员,下面就依照自己的经验和环境做一下Windows2000服务器的安全配置和优化。
以下是虚拟主机的操作系统和服务器软
前言:最近刚到网络公司担当系统管理员,下面就依照自己的经验和环境做一下Windows2000服务器的安全配置和优化。
以下是虚拟主机的操作系统和服务器软件:
OS:Win2k Advancd Server
ftp server:Serv-u 6.0.2
www server: IIS
mail 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服务我会在下面说到。
4.端口的配置
下面我来说一下怎样关闭常见的危险端口和一些无用的共享,如:默认共享。
在本地连接-属性中,把"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筛选来设置相应打开和关闭的端口。
5.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 guests
cacls C:\WINNT\system32\shell32.dll /e /d guests
前面在服务设置的时候我把Workstation服务禁用了,因为ASP木马运行候可以通过它来列出系统的用户和进程。所以为了安全考虑我们禁用它。
6.修改注册表提高系统安全和性能
下面我使用注册表和组策略一起来设置系统。
开始-运行-gpeidt.msc打开组策略,计算机配置-Windows配置-安全设置-帐户策略-密码策略.
下面是我的策略设置:
密码策略
密码必须符合复杂性要求:启用
密码长度最小值:8个字符
密码最长存留期:30天
密码最短存留期:3天
强制密码历史:5个记住的密码
帐户锁定策略设置
复位帐户锁定计数器:20分钟之后
帐户销定时间:20分钟
帐户锁定阀值:5次无效登录
计算机配置-Windows配置-安全设置-本地策略,审核策略设置:
审核策略更改:成功、失败
审核登录事件:成功、失败
审核对象访问:失败
审核过程追踪:无审核
审核目录服务访问:无审核
审核特权使用:失败
审核系统事件:失败
审核帐户登录事件:成功、失败
审核帐户管理:成功、失败
计算机配置-Windows配置-安全设置-本地策略-用户权限指派
更改系统时间:administrators
关闭系统:administrators
管理审核和安全日志:administrators
计算机配置-Windows配置-安全设置-本地策略-安全选项
登录屏幕上不要显示上次登录的用户名:已启用
对匿名连接的额个限制:不允许枚举 SAM 帐号和共享
故障恢复控制台:允许对所以驱动器和文件夹进行软盘复制和访问:已启用
在关机时清理虚拟内存页面交换文件:已启用
重命名来宾帐户:命名成administrator。
重命名系统管理员帐户:redblood
在本地用户和组中把来宾用户和系统管理员的描述互换一下,这样可以起一个迷惑的作用。算是一个很无聊的小把戏吧。我们再添加一个系统管理员帐户,这样可以防止如果忘记了口令可以及时的恢复系统,如果骇客进入系统改了密码,我们可以很快的取得系统的控制权。大家一定要给系统管理员设置一个强壮的密码,最少也得8位以上,由大小字母+数字组成。
通过修改系统注册表的自启动项目把一些无用的启动项删除掉,以下是常见的各启动项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce
以上这几个启动项是木马出现很频繁的地方,大家以后维护的时候多注意一些。
7.FTP服务器配置
FTP服务器除了对所在的文件夹设置权限之外,还可以修改一下Banner,这种方法可以迷惑一些骇客,让他在表面上认为我们的FTP的服务器不是Serv-u,下面我说一下设置的方法:
右键单击托盘区的Serv-u图标,启动管理员-本地服务器-域-设置-常规-消息选项卡的服务器响应消息下,将服务器ID文本设为:"Welcome Wu-Ftpd V2.6.2 for SCO Unix." 在HELP命令回复下设置成:"Direct comments or bugs to admin@xxx.com. 我们在给FTP服务器启动的时候设上密码。这样启动Serv-u的时候就会让我们输入密码。
8.远程控制配置
这里我选用Win系统自带的远程控制软件终端服务,选择远程管理模式。为远程登录启动日志记录:
开始-程序-管理工具-终端服务配置-连接-rdp/tcp-右键-属性-权限-添加administrators组-高级-审核-添加everyone组,选择审核的项目为登录和注销。
9.防火墙、杀毒软件和补丁
天网防火墙和McAfee都有设置启动密码的功能,我们都设成相应的密码。这个可以保证别人不会更改我们的密码。最后就是打补丁,我们一定要及时的升级自己的系统,以防那些恶意的骇客利用系统的漏洞攻击我们。接着我们把防火墙和杀毒软件都升级到最新的版本,以减少那些恶意的网络攻击和病毒攻击。
总结:网络服务器的维护工作看着简单,但是每一个步骤都关系着整个系统的安危,整个服务器的安装、配置和维护都是一个系统工程,我们必须用心去对待它,及时的查看日志,常给系统打补丁,升级防火墙和杀毒软件的病毒库,每个动作都是一些基本的工作,但是我们必须重视它,因为他直接关系到我们系统的安全和稳定性。我们要做一个勤快的管理员,做一个用心的管理员。