一、IIS安装
添加角色和功能
在角色服务下,除保持默认的勾选项外,还需要勾选上应用程序开发下的“.Net Extensibility 3.5”、“ASP.Net 3.5”、“ISAPI扩展”、“ISAPI筛选器”、“WebSocket协议”。
在IIS安装成成后,打开IIS管理器,删除IIS自带的默认站点“Default Web Site”
二、网站用户配置
IIS是处理用户请求与网站程序进行交互的枢纽,其安全方面包括程序执行控制、IP和域限制、请求筛选、身份认证、HTTPS加密等,在这其中控制好网站目录的权限是重中之重,下面着重以对外发布网站的目录权限进行演示:
在IIS面版中,点选站点后,点击右侧“基本设置”按钮,按下图所示,将站点的路径凭据设置为“应用程序用户(通过身份验证)”
在IIS中选中站点,双击打开右侧的“身份验证”:
通过上面的操作将网站的匿名用户替换为应用程序池标识账户,降低被破解风险。
三、网站服务器web文件夹权限设置
在IIS中右键点击网站名称,选择“编辑权限”。
在“安全”选项卡下,点击“高级”按钮。
在高级安全设置对话框中,按下图如示,设置禁用权限继承关系,选择“将已继承的权限转换为此对象的显式权限。”,通过禁用权限继承关系后,就能进一步删除不必要的权限。
禁用权限继续关系后,即可删除Windows自带的Authenticated Users、Users、Creator Owner等用户或用户组权限,仅保留System、Administrators权限。
其中Authenticated Users是Windows系纺中所有使用用户名、密码登录并通过身份验证的账户,其在网站目录中的权限可能导致其它账户对网站目录下的文件、文件夹进行非法访问和修改,所以有必要删除网站目录里默认自带的Authenticated Users的权限。
同理,Users是Windows所有账户的默认用户组,其在网站目录中的权限同样可能导致其它账户对网站目录进行非法访问,所以也有必要删除其权限。
千万不要给“Create Owner”用户这个用户分配权限。这个问题相当迷惑人,因为Windows默认是在分区的根目录权限时就自动给这个用户完全控制权限,这是为了让用户对自己创建和所有的文件拥有完全控制权,但我们并不需要让通过WEB程序来创建的可执行文件(比如通过上传功能上传的文件)可以在服务器上执行(这是黑客通过WebShell进一步获得服务器控制权限的关键。
点击“添加”按钮,在“选择主体”界面输入“IIS Apppool\SiteFactory”其中的“SiteFactory”为应用程序池标识账户名称,和程序池名称一样。
设置完账户主体后,点击“显示高级权限”按钮,进入更详尽的权限选择界面
网站根目录授予列出文件夹/读取数据、读取属性、读取扩展属性、读取权限这四项权限,如下图所示:
App_Data、IAA、Temp、Template、UploadFiles、这七个目录授予列出文件夹/读取数据、读取属性、读取扩展属性、创建文件/写入数据、创建文件夹/附加数据、写入属性、写入扩展属性、删除子文件夹及文件、删除、读取权限这十项权限,如下图所示:
Config目录授予列出文件夹/读取数据、读取属性、读取扩展属性、创建文件/写入数据、写入属性、写入扩展属性、读取权限这七项权限。
web服务器网站目录
应用程序池标识用户权限
网站根目录(/)
列出文件夹/读取数据、读取属性、读取扩展属性、读取权限
Admin
所有其他文件夹、文件
App_Data
列出文件夹/读取数据、读取属性、读取扩展属性、创建文件/写入数据、创建文件夹/附加数据、写入属性、写入扩展属性、删除子文件夹及文件、删除、读取权限
IAA
Temp
Template
UploadFiles
Config
列出文件夹/读取数据、读取属性、读取扩展属性、创建文件夹/附加数据、创建文件/写入数据、写入属性、写入扩展属性、读取权限
注一:App_Data目录为网站程序的索引、系统日志等数据文件存放目录,需要有写入、删除等权限以使得网站的索引、日志等文件能正常更新;UploadFiles目录为上传文件存放目录,需要写入、删除等权限,以使得上传的文件能正常保存和管理;Template目录为网站模板、风格文件存放目录,需要有写入、删除等权限以使得模板、风格等文件能在后台被正常管理;IAA目录为网站广告配置文件存放目录,需要写入权限,以使得后台广告功能能正常修改。Config目录为网站配置文件存放目录,需要写入权限,以使得网站配置信息能正常修改。
注二:若网站已完成制作,相关页面的模板、风格无需经常修改,可进一步去除Template这个目录的写入、删除权限,以保证网站的风格、模板等文件不被意外修改。当需要修改或管理模板或风格文件时,可重新授予这六个目录的写入、删除权限。
四、设置日志存储位置
双击IIS下的“日志”,打开功能
在非系统盘下,建立一个存放IIS日志的文件夹,如D:\IIS_Log,在日志功能配置下,选择该文件夹作为日志存放目录,避免日志文件占用系统盘空间。