赛迪网 > IT技术 Linux > 企业应用
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

利用IP别名托管多个SSL网络服务站点 (1)

发布时间:2007.03.08 03:27     来源:赛迪网技术社区    作者:korn

在以前的 developerWorks 文章 “Secure remote data access for Domino®” 中,我们讨论了如何利用 Apache Web 服务器以节约预算的方式解决企业问题。(参见 参考资料 中的链接。)在本文中,我们继续讨论这个主题,解释在一台通过一块物理网卡连接到网络的服务器上,如何使用 Apache Web 服务器提供多个 Secure Sockets Layer(SSL)Web 站点。

为什么需要在一台服务器上安置多个 SSL 站点?确实有企业需要在一台服务器上托管多个 SSL 站点吗?我们将通过一个真实的场景来解释这些问题。有创新精神的用户肯定会为这种思想找到更新颖的用途。

案例研究:两个应用程序,一台服务器

在我们公司早期的一个项目中,人力资源(HR)部门希望为一个基于 Web 的福利应用程序提供外部互联网访问。用户大多是从公司网络内部访问这个 Web 应用程序的,但是偶尔也会通过外部互联网访问它。为了满足安全需求,我们决定将这个应用程序放在公司网络内部的一台服务器上,使用 Apache 的 HTTP 服务器构建一个反向代理服务器。反向代理服务器会终止 SSL 连接,再重新打开另外一个到托管 HR 应用程序的 Web 应用服务器的 SSL 连接。通过在 Apache Web 服务器中添加 mod_security 模块,即可将反向代理服务器改为应用网关,并为 Web 应用程序提供更高的安全性。HR 部门精心挑选了一个完全限定域名(FQDN),这个域名是用户友好的,易于记忆。随后,我们继续向前推进,获得了 SSL 证书,我们认为一切就这样圆满结束了。

一年的时间很快就过去了。另一个企业 Web 应用程序出现了,它的需求与 HR 应用程序极为相似。它也需要为外部用户提供访问能力。外部用户的数量非常少。大多数访问都是在公司网络中进行的。我们立刻想到使用反向代理服务器为这个新的 Web 应用程序提供外部访问。

但是,这个新的应用程序有点儿麻烦。首先,我们很关心数据中心的物理空间,竭力在一切应用程序的部署中寻求整合服务器的机会。其次,我们必须证明购买额外的反向代理服务器是值得的。这两个因素结合在一起,促使我们仔细研究如何使用现有的反向代理服务器满足新 Web 应用程序的需求。惟一的问题是,这个应用程序需要一个与现有 HR 应用程序不同的 FQDN。

我们研究了几种为新的 Web 应用程序使用现有反向代理服务器的方法。第一种想法是,将新旧两个应用程序的域名都改为某个通用域名,比如 rp.company.com,并用上下文路径区分这两个应用程序。但是,原来的反向代理服务器用户强烈反对改变域名。如果改变域名,他们必须将域名变更情况通知公司中的所有人,还要修改所有印刷资料,以反映新的 URL。改变域名的成本非常高,而且可能会影响客户支持部门,他们不可避免地会收到大量用户投诉。另外,两个应用程序组都希望保留自己的 FQDN,他们认为自己精心选择的 FQDN 比这种一般化的 URL 更醒目,而且也是宣传推广这些 Web 应用程序的有效手段。

另一个想法是:为什么不注册一个 DNS 入口,让它将新的域名指向现有的服务器?这个想法很快就被否决了。在 SSL 应用程序中,SSL 证书必须与用户请求的 URL 匹配,否则会弹出一个警告消息,指出所请求的 URL 与 SSL 证书的域名不匹配。由于弹出式广告和恶意软件日益猖獗,公司中每个训练有素的人都会取消产生弹出警告框的 Web 交互。根据公司架构标准的要求,生产性 Web 应用程序严禁生成弹出警告消息。

另一个建议是:使第二个 SSL 站点驻留在运行第一个站点的服务器的不同端口上。但是,我们觉得这会给用户带来过多的困扰,用户很难同时记住站点 URL 和端口号。如果用户只输入 URL 而没有输入端口号,他们就会被重定向到 HR 应用程序。这会导致很多问题。

解决方案:IP 别名

最终敲定的解决方案是 IP 别名(IP aliasing)。在寻找这个解决方案时,最需要技巧的部分就是确定正确的术语。最初引入这个概念时,我们听到了虚拟接口(virtual interface) 和虚拟 IP(virtual IP) 等术语。我们艰难地寻找着关于这些概念的信息;但我们最终意识到,我们正在寻找的东西是通常被称为 IP 别名功能的概念,这帮助我们找到了关于该主题的更多文献。IP 别名有时候也称为网络接口别名(network interface aliasing) 或逻辑接口(logical interface)。

Linux 系统上的 IP 别名

混杂模式:一个警告

配置了多个 IP 地址时,某些以太网卡会进入所谓的混杂模式(promiscuous mode)。在混杂模式下,网卡将捕捉本地网络上的所有通信流量。这可能导致服务器易受网络上其他主机转发的攻击。大多数嗅探器和网络监视软件会使以太网卡进入混杂模式,以便捕捉所有网络通信包。

IP 别名背后的概念很简单:可以在一个网络接口上配置多个 IP 地址。这样就能够在使用单一接口的同一个服务器上运行多个 Web 服务器。设置 IP 别名也非常容易。只需配置系统上的网络接口,让它监听额外的 IP 地址。在 Linux™ 系统上,可以使用标准的网络配置工具(比如 ifconfig 和 route 命令)添加 IP 别名,也可以利用图形化网络管理工具。

在一般情况下,会为每块以太网卡配置一个物理单元号。要想在已经配置的以太网卡上添加额外的 IP 别名,应该为一个接口配置同样的物理单元号,但是要用一个逻辑单元号来限定它。例如,如果在物理单元号为 eth0 的以太网卡上已经配置了一个现有的 IP 地址,那么可以通过添加一个逻辑单元号 :1 来创建 IP 别名,如清单 1 所示。可以通过递增逻辑单元号来添加更多的 IP 地址。(注意,需要作为 root 用户登录。)

清单 1. 在现有的网络接口上添加额外的 IP 地址

ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0

在您正在配置的系统上,Linux 内核必须支持 IP 别名,这样才能使用这种技术。如果内核没有提供这种支持,可能需要重新构建内核。要想了解您的内核是否支持 IP 别名,可检查 /proc/net/alias* 文件是否存在。

配置了新的 IP 地址之后,要为新的接口设置路由,如清单 2 所示。

清单 2. 为新的 IP 地址添加路由

route add -host 192.168.0.2 dev eth0:1

在创建新的 IP 地址之后,还需要在 /etc/hosts 文件中给这个新地址命名,如清单 3 所示。

清单 3. 为新的 IP 地址命名

192.168.0.1 primaryserver

192.168.0.2 secondaryserver

1 2 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 一种高效率的数据信息传输技术Relay (03-07) · Linux操作系统下利用SSH进行远程控制 (03-07)
· 铲除病毒攻击两大威胁 走近Linux防护 (03-07) · 利用FAM和IMON在Linux下实现数据复制 (03-07)
· 基于Linux操作系统实现的传真服务器 (03-07) · 运行在网络处理器上的嵌入式Linux系统 (03-07)
· 使用PHP脚本修改Linux或Unix系统口令 (03-07) · 将Unix应用程序移植到Linux系统详解 (03-07)
· Linux操作系统下播放Rmvb的问题解决 (03-06) · 输入更顺畅 Linux的中文输入法全接触 (03-06)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 移动信息化市场方兴未艾 企业呼唤标准出台
· 如何把握企业价值差异 避免CRM与SCM脱节
· 齐看四大厂商的SaaS动态 ERP案例分析
· 通方期货CRM解决方案 方正电子公文系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统