Win2003虚拟主机设置

 05.10写的

要求

    支持ASP、ASP.NET、PHP、PERL、能收发邮件、能通过FTP上传下载;
   
环境及所需软件:
Windows 2003 Enterprise Edition + SP1、IIS6.0、.NET Framework v1.1.4322、Microsoft SQL Server 2000 + sp4、php4.4.0解压版、Mysql4.0.26解压版、phpMyAdmin2.6.4 from windows、ActivePerl 5.8.6、Mdaemon Pro 8.1.3、WebAdmin3.1.6、Gene6 FTP Server 3.6.0、w3 JMail 4.3 Personal、密码产生器V1.6、HashCalc2.01(以上软件请自行准备,尊重他人劳动成果,有钱地ppl请买正版*_^)
 
适用人群:
跟我一样的新手,高手看到错误敬请更正,谢谢!
 
前言:
    文章内容部分参考前辈们的经验,向他们致敬~!有时间来我这里,我请你们去腐败~~至于费用问题,自然是我的地盘我做主,我要你干啥你就干啥~~ ^_*
    首先说明我安装软件的目录名及很多目录的名称建立方法:密码产生器生成随机字符串,复制后粘贴到hashcalc中计算,得到的32位MD5字符串加上原来目录名称即成为现有目录名。如生成的“npU5BhdUb^W(E\zQ'”的MD5值为“4cb691f3acabdb3ea428199e141a3da3”,则原来的"c:\program files\winrar"变成了"f:\5cd7c29b154074add98a443937bcea6b_soft\4cb691f3acabdb3ea428199e141a3da3_winrar",下面为了方便,就不这么麻烦了,如果有,简称为前缀
 
配置步骤:
    1、基本系统安装:
    -磁盘格式NTFS、4个分区(系统区、WEB区、MAIL区、其他区);
    -安装win2003+sp1到C盘;安装IIS6.0(Internet信息服务管理器、公用文件、WWW服务)、ASP.NET;
    -安装ms sql 2000 及 SP4补丁到F;
    -安装w3 JMail到F;
    -开启磁盘配额;
    -去比尔大叔家升级;
    -安全权限设置:
        -祭出windows优化大师,进行一些系统的优化和安全设置。在打开本地安全策略,本地策略,审核策略,打开以下内容:
            -审核策略更改    成功,失败
            -审核系统事件    成功,失败
            -审核登陆事件        成功,失败
            -审核帐户登陆事件    成功,失败
            -审核帐户管理    成功,失败
            -审核其他为失败
         打开帐户策略,按个人喜好设置
        -C、D、E、F权限为administrators和system完全控制,其他全部删除
        -C:\Documents and Settings\Administrator目录添加administrator完全控制
        -C:\Documents and Settings\All Users目录添加everyone读取和运行、列出文件夹目录
        -C:\Documents and Settings\Default User目录添加everyone读取和运行、列出文件夹目录
        -C:\Documents and Settings\LocalService目录添加local service组完全控制
        -C:\Documents and Settings\NetworkService目录添加network service组完全控制
        -C:\Program Files\Common Files目录添加everyone读取和运行、列出文件夹目录、读取
        -C:\WINDOWS目录添加everyone读取和运行、列出文件夹目录
        -C:\WINDOWS\TEMP添加everyone的完全控制权限
        -C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files目录添加IIS_WPG和NETWORK SERVICE完全控制
        - C:\WINDOWS\IIS Temporary Compressed Files添加IIS_WPG完全控制
        -C:\WINDOWS\system32\LogFiles目录删除everyone的权限
        -C:\WINDOWS\system32\dllcache目录删除everyone的权限
        -C:\WINDOWS\system32\config目录删除everyone的权限
        -C:\WINDOWS\system32\inetsrv\History目录删除everyone的权限
        -C:\WINDOWS\system32\inetsrv\iisadmpwd目录删除everyone的权限
        -C:\WINDOWS\system32\inetsrv\MetaBack目录删除everyone的权限
        -C:\WINDOWS\system32\inetsrv\ASP Compiled Templates目录添加IIS_WPG和NETWORK SERVICE完全控制
        -C:\WINDOWS\system32\下的exe文件和vbs等文件的权限中去掉everyone的访问权限
        -打开服务管理器,按“登陆为”排序,记下本地服务(local service)和网络服务(network service)启动的服务对应的程序名,然后找到这些个程序,为这些程序加上local service或network service读取和运行、读取的权限。
        -D盘建立目录website,目录建立 前缀_xxxx.com 目录,目录下建立error(放错误页面)、logs(放日志文件)、www(放网站文件)三个文件夹,如果有需要还可建立如data(放mssql数据库)
        -打开IIS管理器,修改各网站对应的主目录,如d:\website\前缀_xxxx.com\www;修改该站点对应的日志文件存放目录如d:\website\前缀_xxxx.com\logs,如果需要自定义错误,请修改自定义错误页面地址到对应地址如d:\website\前缀_xxxx.com\error
        -建立帐户 xxxx,再产生20位密码,所属组为guests,选中web目录d:\website\前缀_xxxx.com\www,添加该帐户的完全控制权限。多个站点建立多个对应用户,各自在对应根目录的www目录添加对应用户的控制权限
 
    2ASP支持
    -打开IIS管理器,web服务扩展,允许ASP,允许Internet数据连接器。选中“网站”,属性,主目录,配置,选项,勾选启用父路径
    3、ASP.NET支持:
    -打开IIS管理器,web服务扩展,允许ASP.NET,在需要启用.NET的站点添加network service组的完全控制权限,这样,所有开通了.NET权限的站点都可以互相访问。还好我的目录名是你猜我不到,不然还真有点信不过的安全性。
    4、PHP+Mysql支持:
    -php解压到F:\php,并为该目录添加everyone的读取和运行、列出文件夹目录、读取的权限(也可只将可以启动的站点的用户加入,而不用everyone);
    -mysql解压到F:\mysql;
    -运行f:\mysql\bin\winmysqladmin.exe,自动将mysql添加为系统服务。
    -复制f:\php\php.ini-dist到c:\windows\目录下,修改文件名为php.ini,打开php.ini,找到extension_dir,修改为extension_dir="f:\php\extensions";
    -复制f:\php\php4ts.dll到c:\windows\system32\目录下,注意看看权限;
    -打开IIS管理器,web服务扩展,添加一个新的web服务扩展,扩展名写个“php”,要求的文件选择"f:\php\sapi\php4isapi.dll",勾选设置扩展状态为允许;
    -选中网站,属性,ISAPI筛选器,添加,名称“PHP”,可执行文件选择"f:\php\sapi\php4isapi.dll";
    -主目录,配置,添加映射,可执行文件选择"f:\php\sapi\php4isapi.dll",扩展名“.php”;
    -文档,添加index.php到默认内容文档;
    -iisreset,看看刚添加的ISAPI筛选器中的PHP是否绿色,绿色则正常,出错请自行寻找答案;
    -web目录中建立1.php,内容如下,访问http://localhost/1.php,看能否返回数据;出错请自行寻找答案
        <?php
        phpinfo();
        ?>
    -解压phpMyAdmin到web目录,网上有将phpmyadmin改做多用户版的,可以参考;访问phpMyAdmin,管理mysql;
    5、PERL支持:
    -安装activeperl到f:\usr,完成后会自动添加web服务扩展和映射(.pl、.plx),为该目录添加everyone的读取和运行、列出文件夹目录、读取的权限,web服务扩展设置为允许,根据.plx映射添加.cgi的映射
    -web目录建立1.pl内容如下,访问,看能否返回数据,出错请自行寻找答案
        #!/usr/bin/perl
        print "Content-type: text/html\n\n";
        print "<p><table cellspacing=1 bgcolor=#000000>\n";
        for($i=0; $i<=$#ARGV; $i++){
         print "<tr bgcolor=#FFFFF0><td><FONT COLOR=#FF0000>\$ARGV[$i]</FONT></td><td><FONT>        \n";
        }
        print "<tr bgcolor=#FFFFF0><td bgcolor=#00A0D0 align=center><FONT COLOR=#FFFF90>主机环境变数名称</FONT></td><td bgcolor=#00A0D0       align=center><FONT COLOR=#FFFF90>变数内含值</FONT></td></tr>\n";
        foreach $env (sort keys %ENV){
         print "<tr bgcolor=#FFFFF0><td><FONT COLOR=#FF0000>$env</FONT></td><td><FONT>
         if($ENV{$env}){
            print "$ENV{$env}";
         }else{
            print "&nbsp;";
         }
         print "</FONT></td></tr>\n";
        }
        print "</table>\n";
        print "</BODY></HTML>";
        exit;
    6.FTP Server的安装
    -默认安装到F即可,至于设置,找个汉化版的看一遍就知道大概了。如建立用户前缀_xxxx.com,生成密码,主目录设置为d:\website\前缀_xxxx.com
    -如果你熟悉使用serv-u,也可以使用
    7.Mail Server安装
    -默认安装Mdaemon到E;
    -安装WebAdmin;
    -个人觉得让WebAdmin和WorldClient独立运行比较好。因为不需要设置额外的权限下面仍将介绍如何在IIS6下运行;
    -配置WorldClient运行在IIS6下:
        打开Mdaemon,ctrl+w,选择WorldClient is running under iis(alt+w);打开IIS管理器,新建应用程序池Mdaemon,打开其属性,性能,去掉“在空闲此段时间后关闭工作进程”和“核心请求队列限制为”前面的勾;标识,预定义帐户改为本地服务;在默认站点下建立虚拟目录mail,指向 E:\MDaemon\WorldClient\HTML ,勾选读取、脚本资源访问;打开mail属性,文档,添加WorldClient.dll,删除其他;主目录,执行权限为脚本和可执行文件,应用程序池为Mdaemon;添加web服务扩展,扩展名填Mdaemon_WorldClient,要求的文件为 C:\MDaemon\WorldClient\HTML\WorldClient.dll;选中E:\Mdaemon,添加local service组的完全控制权限;
    -配置WebAdmin运行于IIS6下:
        打开Mdaemon,ctrl+I,勾选"webadmin is running under iis"(alt+w);建立名为webadmin的虚拟目录,指向E:\MDaemon\WebAdmin\Templates;打开webadmin的属性,主目录,应用程序池选择Mdaemon,这里执行权限填纯脚本即可;配置,添加映射,扩展名".wdm",可执行文件选择E:\MDaemon\WebAdmin\Templates\WebAdmin.dll,勾选“检查文件是否存在”;文档,添加默认文档“login.wdm”,删除其他默认文档;添加web服务扩展,要求的文件为E:\MDaemon\WebAdmin\Templates\WebAdmin.dll扩展名填Mdaemon_WebAdmin;设置目录权限,同上,
    -不能在多个站点下设置以上步骤,请注意
    -邮件服务器建好之后,将域名MX记录指向该服务器IP,如xxxx.com,ip:x.x.x.x,添加mx记录xxxx.comàx.x.x.x,即可正常收发邮件
    -通过webadmin或界面建立次域时,同时建立别名postermaster@xxxx.com和aubse@xxxx.com指向xxxx.com的一个信箱地址,以免Mdaemon在事件查看器中留下警告信息
    8.ms sql server 2000
    -安装ms sql server到F;
    -下面是抄来的:
        使用系统帐户登陆查询分析器,运行以下脚本,删除所有危险的扩展.
        use master
        exec sp_dropextendedproc 'xp_cmdshell'
        exec sp_dropextendedproc 'xp_dirtree'
        exec sp_dropextendedproc 'xp_enumgroups'
        exec sp_dropextendedproc 'xp_fixeddrives'
        exec sp_dropextendedproc 'xp_loginconfig'
        exec sp_dropextendedproc 'xp_enumerrorlogs'
        exec sp_dropextendedproc 'xp_getfiledetails'
        exec sp_dropextendedproc 'Sp_OACreate'
        exec sp_dropextendedproc 'Sp_OADestroy'
        exec sp_dropextendedproc 'Sp_OAGetErrorInfo'
        exec sp_dropextendedproc 'Sp_OAGetProperty'
        exec sp_dropextendedproc 'Sp_OAMethod'
        exec sp_dropextendedproc 'Sp_OASetProperty'
        exec sp_dropextendedproc 'Sp_OAStop'
        exec sp_dropextendedproc 'Xp_regaddmultistring'
        exec sp_dropextendedproc 'Xp_regdeletekey'
        exec sp_dropextendedproc 'Xp_regdeletevalue'
        exec sp_dropextendedproc 'Xp_regenumvalues'
        exec sp_dropextendedproc 'Xp_regread'
        exec sp_dropextendedproc 'Xp_regremovemultistring'
        exec sp_dropextendedproc 'Xp_regwrite'
        drop procedure sp_makewebtask
        go
 
    9.其他:
    -一个站点需要什么服务就提供什么服务,其他服务全部删除或停用。需要和不需要的服务,自己看着办。
    -防火墙、杀毒软件见仁见智,你喜欢什么就用什么。
    -注册表权限
    -ZendOptimizer最新版2.5.7不支持php4.4.0,不知道哪位有好方法让他支持,希望能告诉我,谢谢。
    -防盗链wbal
    -终端服务的端口转向连接设置
 
 
参考资料和其他安全设置文章:
-           
 
 
后语:

    更好的补充或修改,请email我,谢谢.我的email:admin#xw81#com

XeonWell Studio