虚拟主机设置手记

| |
19:27,29,Aug,2007 | (4573/1/0) | XeonWell Studio
要求:
   支持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目录添加对应用户的控制权限

   2、ASP支持:
   -打开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,看能否返回数据;出错请自行寻找答案
               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
   -终端服务的端口转向连接设置


参考资料和其他安全设置文章:
-          http://www.altn.com/support/knowledge_base_article.asp/cboProduct/WebAdmin/txtNumber//txtKeywords/iis/chkTitle/True/chkContent/True/chkKeywords/True/iPageNumber/1/Number/KBA-01465
-          http://www.altn.com/support/knowledge_base_article.asp/Number/KBA%2D01558
-          http://www.ajiang.net/products/aspcheck/safe.asp
-          


后语:
   更好的补充或修改,请email我,谢谢.我的email:XeonWell_A_Gmail.com

Tags: ,
2007/08/29 21:56 #{louceng}青蛙
没事的~一切都会过去的哈~也许后面还会有更好的~
chen 回复于 2007/08/29 22:25
乱回复,拉出去弹JJ 100下 sm21
分页: 1/1 第一页 1 最后页
发表评论
  • 昵称 [注册]
  • 密码 游客无需密码
  • 网址
  • 电邮
打开HTML 打开UBB 打开表情 设置密码加密 记住我