IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management | Open source  >

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

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

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Sandeep Patil (rsandeep@in.ibm.com), 软件工程师, IBM 
Manish Katiyar (manish.katiyar@in.ibm.com), 软件工程师, IBM 

2007 年 10 月 08 日

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

简介

随着 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 Patil 拥有印度浦那大学的计算机科学与工程学士学位。他已在 IBM 工作了五年,着重研究分布式技术,包括 DCE、SARPC,以及安全产品如 IBM Network Authentication Services (IBM Kerberos)。他参与过开发以及将 IBM NAS1.4 移植到 Windows 上。目前,他正在开发新的特性,并在为 IBM Network Authentication Services 实现与安全有关的 RFC。您可以通过 rsandeep@in.ibm.com 与他联系


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




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?







回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款