去年十月份写的,本来想等补充完再发的,结果世事难料,今天在电脑上发现了,发出来,给一些朋友作参考。
要求
:
支持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,看能否返回数据;出错请自行寻找答案
<?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 " ";
}
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:XeonWell_A_Gmail.com