跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

这是您第一次登陆到 developerWorks,已经自动为您创建了您的概要文件。 选择您概要文件中可以公开的信息的信息(如姓名、国家/地区,以及公司),这些信息同时也会与您所发布的内容相关联。 您可以随时更新您的 IBM 账号。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

技巧: 使用 OpenSSH 隧道化技术确保 DB2 通信安全

使用 ssh 隧道化技术确保 DB2 服务器与客户机之间通信的安全

Sandeep Patil, 软件工程师, EMC
Sandeep Ramesh Patil 是 IBM India Software Lab 的软件咨询工程师。他已在 IBM 工作了七年,着重研究分布式技术,包括 DCE、SARPC 以及安全产品,比如 IBM Network Authentication Services (IBM Kerberos)。目前,他正在开发新的特性,并在为 IBM Network Authentication Services 实现与安全有关的 RFC 及其产品支持。Sandeep 拥有 University of Pune,India 的计算机科学与工程学士学位。
Manish Katiyar, 软件工程师, EMC
Manish Katiyar 是 IBM India Software Labs 的软件工程师。在过去两年里,他一直为 IBM 工作,主要研究 SARPC,并具有数据仓库工具 (Ab-Initio) 的丰富使用经验。Manish 拥有印度 Indian Institute of Technology Kharagpur 大学的化学工程学士学位。您可以通过 manish.katiyar@in.ibm.com 与他联系。

简介: 如果您正在考虑远程操纵 DB2 过程中的安全性,那么您可以遵循本文中给出的步骤,使用 SSH 确保 IBM DB2 客户机与服务器之间通信的安全。

发布日期: 2007 年 10 月 08 日
级别: 初级
访问情况 : 2868 次浏览
评论: 


简介

随着 Internet 日益流行,存储巨量数据并确保数据在网络中的安全,这种需求也变得越来越强烈。这么多的数据存储在各种不同的、可用的数据库中,而这些数据库提供了适当级别的安全性和一致性,以确保数据安全,使无关的用户不能访问数据。但是,当数据在网络上流动时,就变得容易受到其他无关人员的访问。

很多公司使用 DB2 来存储那些数据。虽然 DB2 提供了足够级别的安全性来确保数据在网络上的安全,但是仍然需要管理员配置 DB2 特有的身份验证模块。(关于配置 DB2 数据库的更多信息见 参考资料)。除了配置操作外,正如 DB2 9 for Linux, UNIX, and Windows 文档中 “Authentication methods for your server” 的 “DATA_ENCRYPT” 小节(见 参考资料)描述的那样,DB2 9 中的安全模块还支持对网络上传输的特定数据集进行加密。

Secure Shell (SSH),顾名思义,是一种为网络上传输的数据提供高度安全性和可靠性的工具。 SSH 支持多种加密类型,它的大多数实现支持诸如 AES 之类的更强的加密类型。在 SSH 中,可以通过选择用户需要的适当的加密方法,来配置所需的安全级别。而且,该工具可以在大多数分布式平台上使用,包括 IBM AIX®、Microsoft® Windows®、Linux® 等。在本文中,遵循使用 SSH 确保 DB2 客户机与 DB2 服务器之间的安全通信的详细步骤,无需配置 DB2 身份验证模块。

什么是 SSH 隧道?

SSH 除了可以作为与远程计算机之间的一种通信模式之外,还提供大多数用户不常用的其它特性。其中一个特性就是借助 SSH 隧道化技术的端口转发(port forwarding)。SSH 允许将一个本地开放端口映射到远程计算机上的任何端口。映射之后,本地端口指定的所有通信量通过一个安全的 SSH 隧道转发到远程计算机上的映射端口上。隧道技术可以用于几乎任何类型服务的安全通信。

本文描述如何利用 SSH 提供的安全性创建用于 DB2 9 客户机与 DB2 9 服务器之间通信的安全隧道,从而为网络上的数据增加安全性。作为演示,本文使用与 Red Hat Enterprise Linux 和 PuTTY for Windows 一起发布的通用 OpenSSH 服务器包,这是 SSH 的一个免费实现。

演示中使用以下定义:


清单 1. 文章演示中使用的定义
                
DB2 Version 9 Server
        hostname : astrix.in.ibm.com , OS : Red Hat Enterprise Linux 4
       
SSH Server (OpenSSH 3.9)
        hostname : astrix.in.ibm.com , OS : Red Hat Enterprise Linux 4

DB2 Version 9 client
        hostname : windee.in.ibm.com , OS : Microsoft Windows XP (SP2) Professional

SSH Client (PuTTY release 0.58)
        hostname : windee.in.ibm.com , OS : Microsoft Windows XP (SP2) Professional


配置 DB2 9 客户机

本节描述配置 DB2 9 客户机以使用 SSH 端口转发机制所需的步骤。

  1. 在 Windows 客户端机器上,打开 DB2 9 Client Configuration Assistant。(也可以从命令行使用 db2ca。)
  2. 选择 Selected > Add database using wizard... > Manually configure a connection to a database > TCP/IP
  3. 填入 localhost 作为主机名,并填入所选择的端口号(本例中为 “12345”),如 图 1 所示.

    图 1. DB2 9 客户机配置
    客户机配置

  4. 指定 DB2 9 服务器的操作系统(本例中为 Linux)和 DB2 实例名称,如 图 2 所示。

    图 2. 配置服务器节点
    节点配置

  5. 添加数据库名称。

注意:本地机器上指定的端口号必须是空闲的,不能有任何服务在该端口上运行。可以从 netstat 的输出中验证这一点。

关于 DB2 9 服务器和客户机的其它配置选项,请参阅 参考资料


为进行隧道化而配置 PuTTY 客户机

本节描述配置 SSH 客户机(本例中为 PuTTY)的步骤,使之可以将本地主机的通信量转发到远程机器的目标端口。

  1. 创建一个新会话,选择 SSH 作为通信模式。
  2. 在类别树中,选择 SSH > tunnels
  3. 图 3 所示,填充条目,并添加所需的端口。

    图 3. 配置 PuTTY
    putty 配置

  4. 返回到会话,并保存配置。
  5. 打开 SSH 会话,并以用于 Linux 机器的 SSH 用户 id 和密码登录到计算机(在本例中为 astrix.in.ibm.com)。成功登录后,netstat 命令的输出将显示一个打开的、侦听指定端口的本地端口(见 图 5)。

至于偏好其它客户机(例如 OpenSSH)的用户,或者其它基于 IX 的客户机的用户,可以使用以下命令行达到与 PuTTY 配置相同的效果:

ssh -L 12345:localhost:50000 astrix.in.ibm.com


测试设置

现在可以测试设置,并在隧道化了的 SSH 上使用 DB2 9 客户机和服务器。图 4 显示了 DB2 9 客户机与服务器通信期间的数据流。


图 4. 测试设置
设置
  1. 使用之前配置的 PuTTY 会话登录到 astrix 中。
  2. 打开 DB2 9 Control Center。(应该可以看到之前添加的数据库名称。
  3. 打开数据库,在某个可用的表上运行一些 SQL 语句。

图 5 中的第一行是 netstat -an 的输出,该行显示,当打开之前保存的 PuTTY 会话以连接到机器 astrix 时,PuTTY 打开一个本地套接字,该套接字侦听端口 12345。其它行显示 DB2 客户机在与 DB2 服务器交互时所打开的套接字的数量和状态。基于上述设置,DB2 客户机尝试在 localhost:12345 端口连接到 DB2 服务器,而该端口被安全转发到 DB2 服务器。(例如,通过 PuTTY 的 SSH 隧道,转发到之前配置的 astrix:50000。)


图 5. netstat 输出
netstat

由于所有数据都经过 SSH 隧道,因此受到 SSH 使用的当前加密机制的保护。


结束语

在本文中,您学习了如何利用 OpenSSH 的隧道化功能设置 DB2 9 客户机与服务器之间的安全隧道。将 OpenSSH 用于 DB2 服务器与客户机之间的通信,便于从 SSH 支持的众多身份验证机制中为每种需求选择最适合的加密类型。


参考资料

学习

获得产品和技术

  • OpenSSH:免费下载 OpenSSH for AIX。

  • PuTTY:免费下载 PuTTY。

  • 用可从 developerWorks 直接下载的 IBM 试用软件 构建您的下一个开发项目。

讨论

作者简介

Sandeep Ramesh Patil 是 IBM India Software Lab 的软件咨询工程师。他已在 IBM 工作了七年,着重研究分布式技术,包括 DCE、SARPC 以及安全产品,比如 IBM Network Authentication Services (IBM Kerberos)。目前,他正在开发新的特性,并在为 IBM Network Authentication Services 实现与安全有关的 RFC 及其产品支持。Sandeep 拥有 University of Pune,India 的计算机科学与工程学士学位。

Manish Katiyar 是 IBM India Software Labs 的软件工程师。在过去两年里,他一直为 IBM 工作,主要研究 SARPC,并具有数据仓库工具 (Ab-Initio) 的丰富使用经验。Manish 拥有印度 Indian Institute of Technology Kharagpur 大学的化学工程学士学位。您可以通过 manish.katiyar@in.ibm.com 与他联系。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, Open source
ArticleID=260266
ArticleTitle=技巧: 使用 OpenSSH 隧道化技术确保 DB2 通信安全
publish-date=10082007
author1-email=rsandeep@in.ibm.com
author1-email-cc=
author2-email=manish.katiyar@in.ibm.com
author2-email-cc=