随着Microsoft Visual Studio 开发环境的普及,基于Asp .Net坏境的网站越来越多。因此Asp .net服务器的安全问题自然而然的成为了人们关心的问题。本文以Windows2003为例,架设一台安全的Asp .Net的服务器。

实验坏境:
操作系统:Microsoft Windows Server 2003 Enterprise Edition Service Pack 2
iis版本:6.0
架设Asp .Net的基本平台:
1. 安装Windows Server 2003:
 Windows Server 2003的具体安装方法这么不再讲述,但需要注意三点:
  ①.一定要在断开网络的前提下安装Windows Server 2003。
  ②.安装Windows Server 2003系统至少要有两个分区,而且分区的格式均必须为NTFS文件格式(C盘为系统盘,D盘为网站数据盘)。
  ③.安装好Windows Server 2003后必须及时打上安全补丁。

2. 安装IIS和Asp .Net:
 按下面步骤操作,安装IIS和IIS的Asp .Net支持:
   ①.将Windows2003 sp2原版安装盘放入光驱。
   ②."开始"->"程序"->"管理工具"->"管理您的服务器"。
   ③."添加删除角色"->"配置您的服务器向导"->"下一步"->"应用服务器(IIS、ASP.Net)"->勾选"启用 ASP .NET "->"下一步"->"下一步"直到安装完成。

3. 安装Microsoft .Net Framework。
 安装Microsoft .Net Framework,版本根据网站开发时基于的.Net版本而定,一般为2.0或者3.0。
设置系统账号
1. 更改默认系统管理员账号:
  更改账户名:右击"我的电脑"->"管理"->"本地用户和组"->"用户"->右击"administrator"->"重命名"->重命名为一个新的名字,如"WebSVRAdmin"。
  更改密码:右击"WebSVRAdmin"->"设置密码"->"继续"->输入一个复杂的密码,最好为长度大于14个字符的"数字+大小写字母+特殊字符"。
2. 新建一个权限极小的administrator的陷阱账号:
 新建账户:右击"我的电脑"->"管理"->"本地用户和组"->右击"用户"->"新用户"->用户名中输
"administrator",密码输入跟WebSVRAdmin同样复杂但不相同的密码->"确定"。

3. 禁用"guest"账号。
4. 设置本地安全策略:
 "开始"->"运行"->输入"gpedit.msc"->"计算机配置"->"安全设置"->"本地策略"->"用户权利指派"->双击"从网络访问此计算机"->只保留"internet 来宾账号"、"启动iis进程账号"、"Asp .Net账号"。
磁盘权限设置:
1.右击"C盘"->"属性"->"安全"->删除"administrator"、"Creator Owner"、"EveryOne",添加"WebSVRAdmin",并设置成完全控制- >"确定"。
2.用同样的方法设置"c:\windows"、"c:\windows\system32"。
3.右击"d盘"->"属性"->"安全"->删除"administrator"、"Creator Owner"、"EveryOne"、"Users",添加"WebSVR Admin" ,并设置成完全控制- >"确定"。

禁用不需要的服务:
1. 禁用C$、D$等默认共享:
 在"开始"菜单的"运行"中键入"regedit",打开注册表编辑器。依次展开 "HKEY_LOCAL_MATCHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" 键,在右边的窗口中新建一个Dword值,名称设置为AutoShareServer,值为0。
2. 解除NetBIOS与TCP/IP的绑定:
 右击"本地连接"->"属性"->双击"Internet 协议"->"高级"->"WINS"->禁用"TCP/IP上的NetBIOS"。
3. 关闭不要的服务:
 ComputerBrowser: 维护网络计算机更新,禁用;
 DistributedFileSystem: 局域网管理共享文件,禁用;
 Distributedlinktrackingclient: 用于局域网共享连接信息,禁用;
 Errorreportingservice: 禁止发送错误报告,禁用;
 MicrosoftSerch: 提供文本搜索,不需要时禁用;
 NTLMSecuritysupportovide: Telnet服务和MicrosoftSerch用的,不需要时禁用。
 PrintSpooler: 如果没有打印机,则禁用;
 RemoteRegistry: 用于远程修改注册表,禁用;
 RemoteDesktopHelpSessionManager: 用于远程协助,禁用;
4. 关闭不需要的端口:
 右击"本地连接"->"属性"->"Internet协议(TCP/IP)"->"高级"->"选项"->"TCP/IP筛选"->"属性"->选择TCP端口的"只允许"选项,添加"80"端口->确定。

配置IIS
 1. 删除默认Web站点。
 2. 删除安装IIS创建的"C:\Inetpub"目录。

建立ASP.NET站点:
1. 建立站点用户:
 建立两个站点专用用户webshell与webshell_wpg,其中webshell隶属于Guests组,webshell_wpg隶属于iis_wpg组(asp.net专用用户)。
 ①.新建webshell账户:"本地用户和组"->右击"用户"->"新用户"->用户名中输
"webshell",输入一个复杂的密码->"确定"。
 ②.设置webshell所属的组:"本地用户和组"->右击"webshell"->"属性"->"隶属于"->删除"users"组,添加"guest"组->"确定"。
 ③.新建webshell_wpg账户:"本地用户和组"->右击"用户"->"新用户"->用户名中输
"webshell_wpg",输入一个复杂的密码->"确定"。
 ④.设置webshell_wpg所属的组:"本地用户和组"->右击"webshell"->"属性"->"隶属于"->删除"users"组,添加"iis_wpg"组->"确定"。
2. 建立站点根目录:
 ①.建立站点根目录文件夹d:\wwwroot\webshell.cc
 ②.右击"webshell.cc"文件夹->"属性"->"安全"->添加"webshell"、"webshell_wpg"用户,并给予"修改、读取和运行、读取、写入"权限->应用。
3. 建立站点应用程序池:
 "Internet信息服务(iis)管理器"->右击"应用程序池"->"新建"->"应用程序池"->在"ID"中输入"webshell.cc"->"确定"。
 右击"webshell.cc"应用程序集->"属性"->"标识"-选中"配置",输入用户名"webshell_wpg"和密码->"确定"->"确定"。
4. 建立Web站点:
 "Internet信息服务(iis)管理器"->右击"网站"->"新建"->"网站"->"下一步"->描叙中输入"webshell.cc"->"下一步"->输入网站"IP地址"和"端口",主机头为"www.webshell.cc"->"下一步"->选中网站目录"d:\wwwroot\webshell.cc"->"下一步"->勾选"读取、运行脚本 如(asp)"->"下一步"->"完成"。
5. 设置站点账号:
 右击"webshell.cc"站点->"属性"->"目录安全性"->"编辑"->输入用户名"webshell"和密码->"确定"。
6. 配置"webshell.cc"站点的应用程序池:
 右击"webshell.cc"站点->"属性"->"主目录"->应用程序池中选"webshell.cc"->"确定"。
7.保存配置:
 "Internet信息服务(iis)管理器"->右击"本地计算机"->"所有任务"->"将配置保存到磁盘"。

转载请注明来自WebShell'S Blog,本文地址:https://www.webshell.cc/1609.html