OpenBSD 4.3 的新特性

将重点转移至高级安全性

OpenBSD 提供了一个以安全性和加密为重心的 UNIX® 发行版。如果您正在寻找部署在网络基础设施中最为关键的节点中的 UNIX 发行版,OpenBSD 是最佳选择。最新发布的 OpenBSD 4.3 版包含了一些新特性和 bug 修复,本文将简要介绍这方面的内容。

John Fronckowiak, 总裁, IDC Consulting Inc.

http://www-128.ibm.com/developerworks/i/p-jfronckowiak.jpgJohn Fronckowiak 是 IDC Consulting Inc. 的总裁兼创始人,他还是曼达尔大学成人和继续教育学院计算机信息系统的临床助理教授。他还撰写了几本关于 Web 应用程序开发、编程、数据库设计和开发以及网络方面的书籍和多篇文章。



2008 年 10 月 27 日

Berkeley 软件发行版(Berkeley Software Distribution,BSD)是最久远、最常见的一种 UNIX 形式,并且将继续扮演此角色。目前,BSD UNIX 共有三种主要形式:FreeBSD,专注于性能和 Intel 处理器架构;NetBSD,专注于可移植性和简洁的设计;OpenBSD,专注于可移植性、安全性和集成加密。

OpenBSD 的口号 —“免费、功能和安全”— 说明了全部。在它的默认配置下,OpenBSD 已经证实是当前最为安全可靠的一种操作系统。 它最新的 4.3 发行版继续了这一惯例。

OpenBSD 审计流程

OpenBSD 提供了一种高级别的、开箱即用的安全性。事实上,在过去的 10 年中,默认安装中仅发现了两个安全漏洞。虽然此话题尚存争议(原因是默认 OpenBSD 安装的支持问题), 但 OpenBSD 对安全性支持的重视是毫无疑问的。

安全一致性在很大程度上应归功于在分发版中建立的审计流程。一组经验丰富的开发人员专门负责审计进入源码树的各段代码。通常,代码需经过安全性缺陷和 bug 分析 — 这些 bug 可能不会影响一般功能,但是完全可以被当作安全性缺陷处理。每一个 bug 都得到了慎重和及时的处理。这种主动性的方法使 OpenBSD 不受未知攻击侵扰,而其他发行版则需要匆忙应对。


OpenBSD 的使用

虽然 OpenBSD 与其他众多 UNIX 版本不同(由于其安全性和对加密的重视),但它却经常出现在高度安全网络中最为关键的部分。事实上,许多负责公司网络和客户记录维护的金融机构都对自己的 OpenBSD 部署高度自信。

由于 OpenBSD 与其他 BSD UNIX 发行版的关系,它在众多硬件平台中都可用,包括:

  • alpha:基于 Digital Alpha 的系统
  • amd64:基于 AMD64 的系统
  • armish:各种基于 ARM 的设备
  • hp300:Hewlett-Packard HP 9000 系列 300 和 400 工作站
  • hppa:Hewlett-Packard Precision Architecture (PA-RISC) 系统
  • i386:基于 Intel® i386 架构和兼容处理器的标准计算机
  • landisk:IO-DATA USL-5P,使用 Hitachi/Renesas SH-4 CPU
  • luna88k:Omron LUNA-88K 和 LUNA-88K2 工作站
  • mac68k:基于 Motorola 680x0 的 Apple Macintosh(带有 MMU)
  • macppc:基于 Apple PowerPC 的机器,从 Apple iMac 开始
  • mvme68k:基于 Motorola 680x0 的 VME 系统
  • mvme88k:基于 Motorola 881x0 的 VME 系统
  • sgi:基于 SGI MIPS 的工作站
  • sparc:Sun sun4、sun4c 和 sun4m 级 SPARC 系统
  • sparc64:Sun UltraSPARC 系统
  • vax:基于 Digital VAX 的系统
  • zaurus:Sharp Zaurus C3x00 Personal Digital Assistants (PDA)

OpenBSD 核心包和特性

现在,您已经确定了 OpenBSD 是否适合自己的硬件平台。接下来,我们将详细了解 OpenBSD 的一些关键特性。

OpenSSH

第一个包是 UNIX 和 Linux® 用户广为熟知的 OpenSSH。 但是,许多人可能还不知道它出自 OpenBSD 开发人员。OpenSSH 最初是专为 OpenBSD 开发的,此后便成为了标准的 Secure Shell (SSH) 包,并移植到了每一版本的 UNIX、Linux 和 Microsoft® Windows® 操作系统中。OpenSSH 包含 ssh(用于安全登录)、scp(用于安全复制)和 sftp(File Transfer Protocol 的另一种安全选择)。所有源代码都遵循开源 BSD 许可,根据 OpenBSD 的指示保证所有专属代码和受限许可不在发行版的设计中(这是创建新版本 SSH 的最初动力)。OpenBSD 中的每一个软件部分都是完全免费的,在使用方面没有任何限制。

加密

由于 OpenBSD 项目在加拿大开发,因此不受美国对加密的出口限制,从而允许发行版全面利用现代的加密算法。从文件传输到文件系统再到网络,加密在操作系统中几乎无处不在。OpenBSD 还包含一些伪随机数生成程序,它们将确保不能根据系统状态预测随机数。其他特性还包括加密散列函数,加密转换库和加密硬件支持。

OpenBSD 中另一个需要出口的部分是 IP Security Protocol (IPSec),操作系统使用它替代自带的不可靠的 TCP/IP 版本 4 (IPv4)。(IPV4 选择信任任何人和任何事)。IPSec 对数据据执行加密和验证,从而保护数据的私密性,并确保数据包在传递过程中未受更改。随着 TCP/IP 版本 6 (IPv6) 的引入,IPSec 已成为标准 Internet 协议中不可缺少的一部分,使 Internet 的未来更加安全可靠。

OpenBSD 作为防火墙

由于 OpenBSD 同时具备轻量和安全的特性,因此 OpenBSD 最常见的一个作用就是充当防火墙。防火墙在最安全位置的底层运行,而 OpenBSD 的数据包过滤实现在顶层运行。数据包过滤(Packet Filter,PF)— OpenBSD 开发社区设计的一种开源解决方案 — 是一个相当优秀的 OpenBSD 方法。与 OpenBSD 软件的许多其他部分类似,它的成功促使其他 BSD 版本纷纷在自己的发行版中加入这一特性。  

OpenBSD 的默认设置已足够安全,因此不必关闭太多服务来建立一个坚如磐石的防火墙。您将需要启用第二个 Ethernet 接口,并根据需要配置 PF。有关如何设置 OpenBSD 作为防火墙的文章链接,请参阅 参考资料


OpenBSD 4.3:新特性

OpenBSD version 4.3 引入了一些新特性和改进。其中,最重要的部分包括:

  • 修复了 dhcpd(8) 中的缓冲区溢出问题。OpenBSD 版本 4.2 发布后不久,开发人员通过精心设计的 Dynamic Host Configuration Protocol (DHCP) 请求发现了一个造成缓冲区溢出的错误,这使 dhcpd(8) 变得更加健壮。
  • hoststated(8) 和 hoststatectl(8) 分别被重命名为 relayd(8)relayctl(8)。relayd(8) 是一个功能齐全的 TCP/IP 中继, 也称作 Application Layer Gateway (ALG);其中,主机健康检查只是完整功能的一部分。它目前支持 TCP、Hypertext Transfer Protocol (HTTP) 和 Domain Name System (DNS) 中继;Secure Sockets Layer (SSL) “加速” 或终止;和传统的第 3 层重定向。目前,当被监控主机的状态改变时,relayd(8) 还能够通过 snmpd(8) 发送 Simple Network Management Protocol (SNMP) 转移。它包括在现有 Network Monitoring Systems (NMS) 中监控负载均衡器的特性。
  • carp(4) 负载均衡器的配置已经过简化。现在,一个 carp 接口可以包含多达 32 个虚拟主机实例。您可以创建一个 carp 接口,并为它分配多个具备各自 advskew 的 carp 节点,而不必创建多个具有相同地址的接口。
  • 版本 4.3 中新增了 4 个针对 802.11 无线设备的驱动程序,包括针对 Broadcom AirForce 设备的 bwi(4) 、 针对 Conexant PrismGT USB 设备的 upgt(4)、针对 Intel Wireless WiFi Link 4965AGN 设备的 iwn(4) 和针对 Ralink Technology 设备的 ral(4) RT2860。
  • 闪存驱动器速度方面的改进。
  • 对超过 2 TB 容量的超大磁盘的支持。
  • 在 sparc64 平台上,支持对称多处理(symmetric multiprocessing,SMP)和新的 eepm(8) 更新允许查询已安装设备的固件。
  • 新的面向 malloc 的 M_ZERO 标记允许在单个操作中完成内存分配和调零。
  • OpenSSH 版本 4.8 包括修复坏策略和 X11 攻击问题的安全发行版。一个较重大的新特性是对 sshd(8) 的 chroot 支持。在 FTP (SFTP) 服务器上运行的 SSH 将 sftp-server(8) 链接到 sshd(8) 中,而不是将它作为单独的进程处理,这为 chroot 设置提供了显著的帮助,因为不再需要特殊的支持文件(如 /dev 节点)。
  • Cwm(1) 经过了重大的代码清理。其中并入了一些新特性,包括:使用键盘绑定重新调整窗口和移动光标的功能;默认键绑定现在可以被用户定义的绑定覆盖,同时还允许用户取消键绑定的映射;并且 “exec window manager” 允许您重新启动 cwm(1) 或切换到另一个窗口管理器(即另一个版本),而无需重新启动 X 服务器。
  • OpenBSD 版本 4.3 支持超过 5000 个包,并且包括一些小的 bug 修复和改进。

有关独立于机器的主要更改的列表,请访问 OpenBSD 站点


安装 OpenBSD 4.3

OpenBSD 安装流程有时会让新用户觉得恐惧和困惑,尤其是那些习惯于其他 UNIX 发行版中的简单安装流程的用户。安装的方法和步骤会根据平台而有所不同。此处给出了 i386 架构中 的基本 CD-ROM 安装步骤。(有关其他平台的信息,请参阅 OpenBSD 常见问题解答)。

步骤 1. 获取发行版

首先,访问 OpenBSD.org 下载页面,选择列表中的任意镜像,然后进入 /4.3/i386/。如果您习惯于安装 Linux 发行版,那么这是第一个不同之处。惟一的 .iso 文件是一个 5 MB 的、名为 cd43.iso. 的文件。这没有问题吧?不必担心:在 OpenBSD 安装中,启动 CD 是基本内核;其余部分提取自可以下载的文件,您可以将它烧录到另一张 CD 上(或者从 OpenBSD.org 购买一个 CD,以帮助支持项目)。确保您下载了 cd43.iso、所有 .tgz、bsd、bsd.rd 和 bsd.mp 文件。(或者采用更简单的方法,下载该目录中的所有文件)。

步骤 2. 创建安装媒介

通过 cd43.iso 创建一张启动 CD,并将它的标签设置为 Disk 1。创建一张普通 CD,在其中添加 /4.3/i386/ 目录下的所有其他文件,并将它的标签设置为 Disk 2。其他方法包括购买 CD、执行网络安装、构建自定义 .iso 文件,但我发现这种两 CD 的方法最简单。

步骤 3. 开始安装

创建安装 CD 之后,从 Disk 1 启动新服务器。命令指示将指导您完成安装过程。您可以在 OpenBSD 常见问题解答的第 4 部分中找到详细的步骤。

最复杂的部分是 “设置磁盘(Setting up disks)” 部分,但是,您可以跳过其中的许多信息,方法是选择对 OpenBSD 使用整个磁盘(如果您没有任何需要保留的其他分区)。无论您的分区决策如何,确保遵循 “创建磁盘标签(Creating a disklabel)” 部分中的步骤,惟一的例外是:您希望的话,可以创建较大的 /usr 和 /home 分区。注意 OpenBSD 中的两层分区系统:第一步是建立传统的 fdisk 可视分区,而第二个 disklabel 步骤将设置 OpenBSD 子分区。

除此之外,使用两 CD 安装的惟一调整是在此步骤中交换 CD:

Let's install the sets!
Location of sets? (cd disk ftp http or 'done') [cd] 
Switch from Disk 1 to Disk 2 (the CD with all the files in /4.3/i386/).

步骤 4. 开始使用!

一切就绪之后,您可以开始体验 OpenBSD 了。


OpenBSD 4.3 入门

在作为新 OpenBSD 用户管理您的系统之前,您可能希望了解一些基本步骤。首先,默认情况下,系统中未包括任何用户;这意味着,尝试使用 su 命令行将以失败告终。在命令行中使用 adduser 命令创建新用户,这将指引您完成一个简单的问答式会话来设置默认信息(一次性流程)并创建第一个用户。

例如,假如您创建了一个名称为 bsdadmin 的用户。如果 bsdadmin 将成为您的主要管理帐户,那么您希望能够使用 su 命令快速访问根用户。为此,使用根用户登录,然后编辑 /etc/group 文件,在用户组中包括 bsdadmin。只需将 bsdadmin 附加到第一行后面(即 wheel:*:0:root 行之后)。

其次,检查 /etc/ 目录中的系统默认设置。此处需要格外小心,因为大多数服务默认都由于某种原因而处于关闭状态。OpenBSD 使用 rc.conf 启动大多数 startup 守护进程。您将看到这些服务,如 httpd 和 nfs,默认都为关闭状态 — 甚至连 PF 都处于关闭状态。例如,要开启 Apache (httpd),您可以在 /etc/rc.conf 中添加 httpd=YES 行 。

虽然 OpenBSD 未提供基于图形的工具来帮助您管理系统,但 OpenBSD 开发人员已经格外重视为操作系统中的各组件提供广泛、准确的手册页。我建议您使用强大的 man 命令获取帮助信息,或者通过它了解新工具。


大多数常用架构都有大量包可用。您可以在 OpenBSD 包站点 找到可用包的完整列表。

要安装包,您可以使用 pkg_add(1) 实用工具。您可以通过 PKG_PATH 环境变量来简化操作。只需将它指向特定的位置,pkg_add(1) 便会自动在该位置查找包,然后获取并安装此包必需的依赖关系。您可以通过包名来调用 pkg_add(1),基本示例如下:

$ sudo pkg_add –i screen

结束语

新的 OpenBSD 4.3 UNIX 发行版传承了高度安全操作系统的传统,您可以将它部署在基础设施最关键的区域中。代码审计、加密的广泛应用和谨慎的配置选择等设计原则共同确保了 OpenBSD 的 “默认即安全” 原则仍然有效。虽然 OpenBSD 安装最常出现在安全的服务器和防火墙中,但广泛的硬件和软件支持使该操作系统适用于众多目的。UNIX 和 Linux 专家会发现 OpenBSD 的许多部分都很熟悉,并且,他们或许会赞赏它的与众不同之处。

参考资料

学习

  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文
  • OpenBSD 主页:了解 OpenBSD 的全面信息。
  • 文档和常见问题解答:此页面提供常见和罕见 OpenBSD 问题 的解答。
  • OpenBSD 中的加密:概述”:有关加密在其系统中的运行原理,请阅读这篇由 Theo de Raadt 等人撰写的论文。
  • Firewalling with OpenBSD's PF packet filter”:有关使用 OpenBSD 作为防火墙的更多信息,请阅读这篇由 Peter N. M. Hansteen 撰写的详细指南。
  • OpenBSD 的网络栈”:获取更多关于 OpenBSD 网络安全功能的信息。
  • A Cryptographic File System for UNIX”:阅读这篇由 Matt Blaze 撰写的论文,了解更多关于加密文件系统(Cryptographic File System,CFS)的信息。
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • 技术书店:浏览关于这些主题和其他技术主题的图书。

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


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


忘记密码?
更改您的密码

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

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

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

选择您的昵称



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

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

标有星(*)号的字段是必填字段。

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

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

 


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


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=347883
ArticleTitle=OpenBSD 4.3 的新特性
publish-date=10272008