发布安全Web站点详细攻略:ISA2006系列之十四

本文涉及的产品
云防火墙,500元 1000GB
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:
ISA 发布安全 Web 站点
到目前为止,我们已经对ISA发布Web站点进行了很多介绍,但还没有涉及到安全Web站点。其实在很多领域,安全Web站点都由于高安全性而受到广泛应用,例如在电子商务,电子邮件,OA等应用中基本都会使用安全站点来加强对数据的保护。既然安全站点如此重要,今天我们就来讨论一下如何用ISA2006来发布安全Web站点。
ISA2006发布安全站点并不是一件困难的事,相反,ISA2006为管理员发布安全站点提供了灵活且强大的技术支持。以往防火墙在发布安全Web站点时,处理方法并不令人满意。由于安全Web站点对HTTP数据进行了加密,这使得防火墙无法对数据内容进行分析,当然也没办法判断这些数据是否不利于安全。防火墙遇到这种情况,往往就采用“隧道”模式,如下图所示,“隧道”模式让外网的访问请求直接通过防火墙抵达内网的安全站点,防火墙对访问请求直接放行,透明通过。这种方法自然无法让管理员满意,买个防火墙发布网站不就是希望利用防火墙过滤有害数据嘛,现在防火墙让加密数据透明通过,那防火墙还有什么用呢,不如直接把安全网站放到外网好了。
 
ISA2006对发布安全站点做了很好的改进,ISA2006在发布安全站点时可以采用“桥接”模式,如下图所示,这种模式可以让ISA对外网的发来的加密数据先进行解密,然后过滤检查,发来的数据被证实没问题了才会被重新加密送往内网的Web服务器。显然,桥接模式比隧道模式更能发挥防火墙的功效,对网站的安全更为有利。
 
ISA并不是随随便便就能启用桥接模式,发布安全Web站点和发布Web站点有所不同,区别就在于安全Web服务器必须提供证书用于数据加密。在桥接模式下,ISA要对外网发来的加密的数据进行解密,这就要求ISA必须拥有证书及配套私钥。例如ISA发布的安全站点是perth.contoso.com,那ISA必须拥有名为perth.contoso.com的证书以及配套的私钥,如果没有证书,ISA无法对外网的访问者证明自己就是他们要访问的perth.contoso.com,如果没有私钥,ISA则无法对加密数据进行解密。因此,ISA启用桥接模式发布安全网站的关键就在于如何让ISA拥有证书以及私钥,我们解决这个问题的方法是让安全Web服务器导出证书及私钥,然后ISA再进行导入操作。
实验拓扑如下图所示,Perth是内网要发布的安全站点,Denver是内网的域控制器兼CA服务器,BeijingISA2006服务器,我们看看如何用ISA发布安全Web站点。
 
  创建 CA 服务器
既然Perth上的Web站点是安全Web站点,那Perth的站点肯定要有证书,谁来发这个证书呢?CA!我们既可以选择去国际CA公司申请证书,也可以自己创建CA服务器来颁发证书。平时经常有朋友问这个问题:到底应该选择去国际CA申请证书还是自己创建一个CA来颁发呢?这个问题我觉得应该根据被发布安全站点的用途来决定,如果你发布的安全站点针对的群体是互联网上的用户,那我认为还是应该去国际CA申请证书,这样申请到的证书自动会被所有的用户所信任,使用起来很方便。否则你自己创建CA颁发证书,但互联网上其他用户都不信任,每个用户都要手工信任你创建的CA,这样就很麻烦了。当然,去国际CA申请是要付出代价的,一年估计要1WRMB,这银子花得很心疼的。如果发布的安全站点主要是给公司员工使用的,那就可以自己创建CA来颁发证书了,因为公司员工人数有限,即使手工信CA任也不用花太多时间。这时自己创建的CA就能体现出使用方便,节省成本的优点了。
回到本例中,我们准备在Denver上创建一个CA服务器,用以在域内为计算机颁发证书。在Denver上依次点击 开始-设置-控制面板-添加或删除程序-添加/删除Windows组件,如下图所示,勾选“证书服务”,这时会弹出对话框提示你安装证书服务后不能改变计算机名称以及身份,选择“是“按钮。
 
CA类型设置为企业根,这样可以更好地利用域的管理优势。
 
CA命名为TESTCA
 
证书数据库的存储路径取默认值即可。
 
安装程序提示需要重启IIS服务,在插入Win2003的安装光盘后,如下图所示,安装结束。
 
创建完CA服务器后,这个服务器必须得到其他计算机的认可,域内的计算机如本例中的PerthBeijing都不用担心,组策略会告诉他们TESTCA是个可以信任的CA服务器。如果你觉得组策略生效时间太长,还可以运行 Gpupdate/force来加快组策略生效时间。域外的计算机如本例中的Istanbul就需要手工信任这个CA服务器了,具体操作方法如下。我们先把Denver的网站用ISA发布出来,然后在Istanbul上访问[url]http://denver.contoso.com/certsrv[/url],如下图所示,网站要求进行身份验证,我们输入域管理员的用户名和口令。
 
通过身份验证后我们可以通过网站访问CA服务器了,如下图所示,选择“下载一个CA证书,证书链或CRL”。
 
如下图所示,选择“下载CA证书”,网站弹出文件下载的对话框,选择“保存”。
 
把下载的CA根证书保存到C:\certnew.cert
 
有了CA根证书之后,我们要把它手工导入被信任的根证书颁发机构中。在Istanbul上运行mmc,如下图所示,在mmc控制台中选择“添加删除管理单元”。
 
如下图所示,点击“添加”,选择添加“证书”管理单元。
 
证书管理单元负责对计算机账号管理证书。
 
在新添加的证书管理单元中定位到“受信任的根证书颁发机构-证书”,如下图所示,在所有任务中选择“导入”。
 
启动证书导入向导。
 
CA根证书文件导入,如下图所示。
 
选择证书的存储区域。
 
证书导入后,如下图所示,TESTCA已经成了被Istanbul信任的根证书颁发机构。
 
至此,我们完成了CA服务器的创建以及对CA服务器的信任,切记,所有访问安全 Web 站点的计算机都要信任证书颁发机构。
 
  为安全 Web 站点申请证书
创建了CA服务器之后,我们就可以为PerthWeb站点申请证书了。在PerthIIS管理器中查看默认站点的属性,如下图所示,切换到站点属性的“目录安全性”标签,点击“服务器证书”。
 
弹出服务器证书申请向导。
 
选择“新建证书”。
 
由于之前创建的CA类型是企业根,因此我们可以直接在线申请证书。
 
证书的名称和加密位数取默认值即可。
 
单位和部门参数也不重要。
 
证书的公用名称至关重要,公用名称一定要和外网用户访问此安全网站时所使用的域名完全匹配。如果不匹配,安全Web站点将发布失败。
 
填写证书的地理信息。
 
安全Web站点使用默认的443端口。
 
Active Directory中选择所使用的证书颁发机构。
 
证书申请完成,CA已经给PerthWeb站点颁发了证书,现在Perth已经是一个安全Web站点了。
 
  导出证书
接下来我们要在Perth上把申请到的证书导出给文件,然后再让ISA服务器导入。在PerthIIS管理器中切换到默认Web站点的“目录安全性”标签,如下图所示,点击“查看证书”。
 
切换到证书的“详细信息”属性,如下图所示,点击“复制到文件”。
 
出现证书导出向导。
 
一定要连同私钥一起导出。
 
导出为pfx格式文件。
 
输入私钥保护密码。
 
把证书及私钥导出为c:\perth.pfx
 
  导入证书
我们把perth导出的证书文件复制到ISA服务器上,然后ISA就可以进行证书的导入操作了。参考在Istanbul上用mmc创建证书管理单元的步骤,在ISA上也创建一个证书管理单元管理计算机账号的证书,如下图所示,右键单击“个人”容器,在所有任务中选择“导入”。
 
出现证书导入向导。
 
选择导入perth.pfx文件。
 
输入pfx文件中的私钥保护口令。
 
将导入的证书放到个人存储中。
 
如下图所示,导入成功,ISA服务器上有了perth.contoso.com的证书以及相关私钥。
 
  创建安全 Web 站点发布规则
万事俱备,只欠东风。我们现在可以在ISA服务器上发布Perth上的安全Web站点了。如下图所示,在ISA服务器管理器中选择新建“网站发布规则”。
 
为发布规则取名。
 
访问请求满足规则要求ISA则允许访问。
 
发布类型为发布单个网站。
 
使用SSL加密ISA与安全Web站点之间的数据。
 
内部站点的名称为perth.contoso.com,注意,内部站点的名称应该和安全站点证书中的公用名称完全一致,否则会导致发布失败。
 
从根目录开始发布整个网站。
 
安全站点的公共名称也应该和证书中的公用名称完全一致。
 
由于没有监听443端口的侦听器,因此我们选择“新建”。
 
出现Web侦听器创建向导,我们为新创建的Web侦听器取个名字。
 
侦听器与外网访问者之间的数据需要用SSL加密。
 
侦听器对外网进行监听。
 
由于侦听器需要对外网访问者的数据进行加密,因此侦听器需要提供证书,如下图所示,点击“选择证书”。
 
在侦听器中选择使用导入的perth.contoso.com证书,这样外网访问者才会相信ISA服务器就是他们要访问的perth.contoso.com
 
侦听器选择证书之后,继续下一步。
 
本例中发布的安全Web站点不需要用户进行身份验证,发布其他的安全Web站点就未必不需要身份验证了,例如发布Exchange就需要进行身份验证。
 
本例中不需要设置单点登录。
 
在发布规则中使用新创建的Web侦听器。
 
安全Web站点没有委派ISA对客户端进行身份验证。
 
此规则适用于所有用户。
 
完成安全Web站点发布规则,呵呵,终于结束了。
 
好了,一切都就绪了,我们在Istanbul上测试一下,如下图所示,在Istanbul上访问[url]https://perth.contoso.com[/url],系统弹出对话框提示即将通过安全连接查看网页。
 
访问结果正常,OK,发布安全Web站点成功!
 
发布安全 Web 站点时问题基本都处在证书上,要么是证书的公用名称写得不对,要么导出证书的格式有问题,要么有些计算机不信任证书颁发机构等等,如果能先理解证书原理,那发布安全 Web 站点时就可以事半功倍了。














本文转自yuelei51CTO博客,原文链接: http://blog.51cto.com/yuelei/88041,如需转载请自行联系原作者

相关文章
|
1天前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
14 6
|
2天前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
10 5
|
14天前
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
27 1
|
3天前
|
存储 安全 JavaScript
Web安全-XSS漏洞
Web安全-XSS漏洞
9 0
|
14天前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
27 0
|
14天前
|
开发者 安全 SQL
JSF安全卫士:打造铜墙铁壁,抵御Web攻击的钢铁防线!
【8月更文挑战第31天】在构建Web应用时,安全性至关重要。JavaServer Faces (JSF)作为流行的Java Web框架,需防范如XSS、CSRF及SQL注入等攻击。本文详细介绍了如何在JSF应用中实施安全措施,包括严格验证用户输入、使用安全编码实践、实施内容安全策略(CSP)及使用CSRF tokens等。通过示例代码和最佳实践,帮助开发者构建更安全的应用,保护用户数据和系统资源。
27 0
|
14天前
|
Java 开发者 关系型数据库
JSF与AWS的神秘之旅:如何在云端部署JSF应用,让你的Web应用如虎添翼?
【8月更文挑战第31天】在云计算蓬勃发展的今天,AWS已成为企业级应用的首选平台。本文探讨了在AWS上部署JSF(JavaServer Faces)应用的方法,这是一种广泛使用的Java Web框架。通过了解并利用AWS的基础设施与服务,如EC2、RDS 和 S3,开发者能够高效地部署和管理JSF应用。文章还提供了具体的部署步骤示例,并讨论了使用AWS可能遇到的挑战及应对策略,帮助开发者更好地利用AWS的强大功能,提升Web应用开发效率。
40 0
|
13天前
|
数据库 开发者 Python
web应用开发
【9月更文挑战第1天】web应用开发
33 1
|
1天前
|
数据可视化 图形学 UED
只需四步,轻松开发三维模型Web应用
为了让用户更方便地应用三维模型,阿里云DataV提供了一套完整的三维模型Web模型开发方案,包括三维模型托管、应用开发、交互开发、应用分发等完整功能。只需69.3元/年,就能体验三维模型Web应用开发功能!
17 8
只需四步,轻松开发三维模型Web应用
|
10天前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践