WinK下配置asp+cgi+php+mysql全攻略
安装winK安装IIS
Indexing Service
FrontPage Server Extensions
Internet Service Manager (HTML)
这几个别装还有其它的一些总之不用的都别装(根据安全原则最少的服务+最小的权限=最大的安全)
首先打开internet管理器(开始>程序>管理>Internet服务管理)如果照上面所安装的里面有一个默认站点和一个smtp的服务项选默认站点删除其下面的所有目录(按你键盘上的delete键)停掉iis最简单的方法开始>运行>打入net stop iisadmin 选择Y回车 (启动的命令是net start wsvc)把C盘的Inetpub目录彻底删掉(停掉iis后才能删)在其它盘新建一个目录在IIS管理器中将默认站点的主目录指向刚才新建的目录如果你需要什么权限的目录可以自己慢慢建需要什么权限开什么
(特别注意写权限和执行程序的权限没有绝对的必要千万不要给默认是没给的所以你不用研究呵呵)
应用程序配置在IIS管理器中删除必须之外的任何无用映射留下ASP ASA和其他你确实需要用到的文件类型(除了cgiphp其它的我想你都没用删除htw htr idq ida……)不知道在哪删吗??方法打开Internet服务管理>选择站点>属性>WWW服务>编辑>主目录>配置>应用程序映射然后就开始一个个删吧(没有全选的真麻烦)接着在刚刚那个窗口的应用程序调试书签内将脚本错误消息改为发送文本(除非你想ASP出错的时候用户知道你的程序/网络/数据库结构)错误文本写什么?随便你喜欢自己看着办点击确定退出时别忘了让虚拟目录继承你设定的属性
为了对付日益增多的cgi漏洞扫描器还有一个小技巧可以参考在IIS中将HTTP Object Not Found出错页面通过URL重定向到一个定制HTM文件可以让目前绝大多数CGI漏洞扫描器失灵其实原因很简单大多数CGI扫描器在编写时为了方便都是通过查看返回页面的HTTP代码来判断漏洞是否存在的例如着名的IDQ漏洞一般都是通过取idq来检验如果返回HTTP就认为是有这个漏洞反之如果返回HTTP就认为没有如果你通过URL将HTTP出错信息重定向到文件那么所有的扫描无论存不存在漏洞都会返回HTTP%的CGI扫描器会认为你什么漏洞都有结果反而掩盖了你真正的漏洞让入侵者茫然无处下手不过从个人角度来说我还是认为扎扎实实做好安全设置比这样的小技巧重要的多
Win的账号安全是另一个重点首先Win的默认安装允许任何用户通过空用户得到系统所有账号/共享列表这个本来是为了方便局域网用户共享文件的但是一个远程用户也可以得到你的用户列表并使用暴力法破解用户密码很多朋友都知道可以通过更改注册表Local_Machine\System\CurrentControlSet\Control\LSARestrictAnonymous = 来禁止空连接实际上win的本地安全策略(如果是域服务器就是在域服务器安全和域安全策略中)就有这样的选项RestrictAnonymous(匿名连接的额外限制)这个选项有三个值
None Rely on default permissions(无取决于默认的权限)
Do not allow enumeration of SAM accounts and shares(不允许枚举SAM帐号和共享)
No access without explicit anonymous permissions(没有显式匿名权限就不允许访问)
这个值是系统默认的什么限制都没有远程用户可以知道你机器上所有的账号组信息共享目录网络传输列表(NetServerTransportEnum等等对服务器来说这样的设置非常危险
这个值是只允许非NULL用户存取SAM账号信息和共享信息
这个值是在win中才支持的需要注意的是如果你一旦使用了这个值你的共享估计就全部完蛋了所以我推荐你还是设为比较好
好了入侵者现在没有办法拿到我们的用户列表我们的账户安全了……慢着至少还有一个账户是可以跑密码的这就是系统内建的administrator怎么办?我改改改在计算机管理>用户账号中右击administrator然后改名改成什么随便你只要能记得就行了改了超管理用户名后在Terminal Service的登录界面还是可以看到的(你登录过就自已记住啦)修改方法运行regedit找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\winlogon项中的Dont Display Last User Name串数据改成这样系统不会自动显示上次的登录用户名
为了安全你还可以打开TCP/IP筛选桌面上右击网上邻居>属性>右击你要配置的网卡>属性>TCP/IP>高级>选项>TCP/IP过滤这里有三个过滤器分别为TCP端口UDP端口和IP协议TCP端口点击只允许然后在下面加上你需要开的端口一般来说WEB服务器只需要开(www)FTP服务器需要开(FTP Data)(FTP Control)(Mysql)(远程终端控制如果你的主机托管在别人机房里不能直接*作就需要这个)邮件服务器可能需要打开(SMTP)(POP)我对端口没研究但如果照本文所提供的服务你只要开以上几个就行了()
cgi支持
下载activeperl (可到下载最新版)
解压运行installexe默认是安装在 C:\PERL 下不过为了方便请最好安装到 C:\USR 目录下(这样写 Perl 解释器的路径就可以直接用 #!/usr/bin/perl 了可以保持单机环境和网络环境路径一致 安装时一路按Y即可)
安装好后按照下面三步来修改注册表 运行 RegEdit搜寻: HKEY_LOCAL_MACHINE\System\Currentcontrlset\Services\Wsvc\Parameters\scriptMap\ 键名
然后增加键名cgi键值C:\USR\BIN\perlexe %s %s 和键名pl键值C:\USR\BIN\perlexe %s %s
(不懂得建?那么在右边的框内>点右键>新建>字符串值名称改为cgi双击该键即可输入数值数据也就是上面说的键值)
因为要让这台主机支持php所以顺便在这里添加上php和php的支持(以后新建站点时可省事)
增加键名php键值C:\php\phpexe %s %s
增加键名php键值C:\php\phpexe %s %s
OK重启后即生效!cgi支持搞定!以后新建站点后在应用程序配置里面默认就会加上php和cgi的支持(不给这个权限的话删掉就是了)
cgi支持搞定!
mysql支持
下载mysql (可到下载最新版本)
解压运行setupexe完全安装默认安装路径为:c:\mysql
安装完成后打开开始按钮中的运行输入命令C:\mysql\bin\mysqldntexe install并执行
开始>程序>管理工具>服务>找到mysql>启动它
mysql安装完成重启win
重启后打开C:\mysql\bin\winmysqladminexe在第一次用它时需要建立管理员名及密码分别设置用户名和密码设定后系统托盘会出现一个红绿灯的小图标(以后系统启动时均会自动加载)
OKmysql支持搞定!
php支持
下载PHP (可到下载最新版本)
将 php 解压到 c:\php
将PHP目录内的 phpinidist 文件拷贝到WinNT目录内改名为 phpini (这是php的配置文件无需更改即可运行我没仔细研究)
根据需要修改 phpini 文件内容如要使用 session 功能请建立 c:\tmp 目录并将 phpini 文档内 sessionsave_path 的值设置成为绝对路径c:/tmp
将PHP目录内的 Phptsdll 文件复制到 WinNt\System 目录内
在控制面板中的管理工具里启动Internet 服务管理器(IIS)
打开站点属性在 ISAPI 筛选器选项中 增加新的筛选器用 PHP 作为筛选器名称在可执行文件栏中填入phpisapidll及其路径 (c:\php\sapi\phpisapidll)
在属性的文档选项中启用默认文档加入indexphp