首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

深度探索 OpenBSD

深度探索 OpenBSD

当安全性作为最重要的考虑因素时,有必要研究产生现在安全远程访问方面的标准 OpenSSH (Open Secure Shell) 的操作系统。OpenSSH 只是 OpenBSD 中的一部分,而该分发版从底层开始着重强调了安全性,它实现了创建一个缺省安全 的类 UNIX® 操作系统的目标。这种立场与现在大多数的操作系统有所不同,对于这些操作系统,在实际使用之前需要耗费大量的时间和精力对其环境进行加强。事实上,OpenBSD 是如此的安全,以至于在 DEF CON 竞赛中曾一度禁止使用它,在这个竞赛中,破解高手们 对所有其他的系统进行攻击。
BSD 概述Berkeley Software Distribution (BSD) 是历史最悠久和最流行的 UNIX 版本之一。现在,它被分为许多不同的版本,其中有三种比较常见的开放源代码分发版:
  • FreeBSD
  • OpenBSD
  • NetBSD
尽管 FreeBSD 在这三种发布版中使用得最广泛,但每个版本都有其显著的优势,这使得选择正确的解决方案成为一项重要的决策。FreeBSD 是三者中最常见的系统,广泛应用于 i386 环境。当安全性成为最重要的考虑因素时,OpenBSD 则是合适的分发版。NetBSD 提供了一种小规模的、高度可移植的选择,它可以运行于各种各样的体系结构中。
OpenBSD 审核处理OpenBSD 审核处理可能是该分发版中一致安全性的最大因素。一组有经验的开发人员重点对进入源代码树的每段代码进行了审核。分析代码中的安全缺陷和一般性错误(它们可能并不会影响到整体功能,但可能会作为安全缺陷而被利用)。对每个错误进行认真和及时的处理。这种积极主动的处理方法使得 OpenBSD 免受各种未知攻击的影响,而其他的分发版则在发现攻击后紧急对系统进行保护。
OpenBSD:使用地点与时间在任何强调安全性的环境中,都可以安装 OpenBSD。现在,大家的安全意识越来越强,计算机需要全天候连接到 Internet 上,无论是在家庭、政府或企业环境中,很少有人把安全性问题不当回事。金融巨头依赖 OpenBSD 以确保企业网络和客户记录的安全。与其他的类 UNIX 操作系统相比,OpenBSD 可能并不拥有广泛的用户基础,但是在许多网络中的最关键的地方通常都安装了该操作系统。
作为 NetBSD 的近亲,OpenBSD 也可以运行于各种各样的硬件之上。下面具体来了解一下:
  • Alpha:基于 Digital Alpha 的系统
  • amd64:基于 AMD64 的系统
  • Cat:StrongARM 110 评估板 (Evaluation Board)
  • hp300:Hewlett-Packard HP 9000 系列的 300 和 400 工作站
  • HP/PA:Hewlett-Packard Precision Architecture (PA-RISC) 系统
  • i386:基于 Intel® i386 体系结构和兼容处理器的标准计算机
  • luna88k:Omron LUNA-88K 和 LUNA-88K2 工作站
  • mac68k:基于 Motorola 680x0 的带 MMU 的 Apple Macintosh
  • macppc:从 iMac 开始,基于 Apple PowerPC 的计算机
  • 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 PDA
OpenBSD 核心包和特性既然已经确定了 OpenBSD 是否适合于您的硬件平台,下面让我们更仔细地了解一下 OpenBSD 中一些重要的部分。
OpenSSH第一个值得关注的包是 OpenSSH,所有的 UNIX 和 Linux® 用户对它都很熟悉。然而,许多人可能并不知道它来自于 OpenBSD 开发人员。OpenSSH 最初用于 OpenBSD,后来成为标准的安全 Shell (SSH) 包,并移植到几乎所有版本的 UNIX、Linux 和 Microsoft® Windows® 操作系统。OpenSSH 包括用于安全登录的 ssh、用于安全复制的 scp 和 sftp,后者是 ftp 的安全替代方法。所有的源代码都符合开放源代码 BSD 许可,必须遵守 OpenBSD 的规程以杜绝在该分发版中出现任何专用代码和限制性许可计划(这是创建新版本的 SSH 的原动力)。OpenBSD 中所包含的每个软件部分都是完全免费的,并且在使用上没有任何限制。
加密因为 OpenBSD 项目是在加拿大进行的,所以其中应用的加密技术不受美国的出口限制,这使得该分发版可以充分利用各种现代的加密算法。几乎可以在该操作系统的任何地方找到加密处理,从文件传输到文件系统,乃至网络。OpenBSD 中还包含伪随机数生成器,它可以确保无法根据系统状态预测随机数。其他的特性还包括加密哈希函数、加密转换库和加密硬件支持。
OpenBSD 中另一个主要的部分是 IP 安全协议 (IPSec),该操作系统中没有依赖先天不安全的 TCP/IP Version 4 (IPV4),而使用了这个协议。(IPV4 选择信任所有的人和所有的事物。)IPSec 对数据包进行加密和验证以保护数据的保密性,并确保在传输过程中不会对数据包进行任何更改。随着 TCP/IP Version 6 (IPV6) 的引入,IPSec 成为标准的 Internet 协议中不可或缺的部分,这使得未来的 Internet 在缺省情况下 更加安全。
OpenBSD 可以作为防火墙因为 OpenBSD 很小并且很安全,所以 OpenBSD 实现的最常见目标之一是用作防火墙。防火墙从底层对大多数安全单元进行操作,并且 OpenBSD 的包过滤实现是非常优秀的。Packet Filter (PF),OpenBSD 开发社区设计的开放源代码解决方案,它是 OpenBSD 所选择的方法。与 OpenBSD 软件的其他许多部分一样,这种方法非常成功,以至于其他的 BSD 变种纷纷将其移植到自己的分发版中。
OpenBSD 配置为缺省安全,所以在设置坚如磐石的防火墙时,您无需关闭过多的服务。您需要启用第二个 Ethernet 接口,并根据需要配置 PF。有关介绍如何将 OpenBSD 服务器设置为防火墙的文章链接,请参见参考资料部分。
加密和随机数大多数操作系统很少在其关键组成部分中包含加密处理,这使得它们先天就缺乏安全性。导致这种缺陷的一个重要原因是,大多数的操作系统来自美国,不允许开发人员出口健壮的加密软件。OpenBSD 中的加密哈希库包括 MD5、SHA1 和 RIPEMD160。OpenBSD 中的加密转换库包括 Blowfish、数据加密标准 (DES)、3DES 和 Cast。
大部分加密处理都在底层进行,这样一来,用户就不用为了保护系统安全而必须成为加密方面的专家。OpenBSD 开发团队很清楚,大多数管理员并不是安全方面的专家,并且不应该指望他们煞费周折地加强他们的环境。那些认为 OpenBSD 不是用户友好的操作系统的人,大部分是受到了误导。如果大多数管理员愿意花时间使用 OpenBSD 的缺省安全措施来替代任何其他的分发版,那么他们很可能会改变其思维方式。
随机数是确保安全性的重要组成部分。OpenBSD 内核使用中断信息创建不断变化的熵池,它可以为加密函数提供种子数据,并为事务 ID 提供数值。例如,伪随机数可用于进程 ID 和包 ID,这使得那些想要进行攻击的人很难进行欺骗。OpenBSD 甚至在 bind(2) 系统调用中使用了随机端口分配。大多数源于 UNIX 的操作系统要么创建顺序的 ID,要么使用可预测其结果的简单算法。
OpenBSD 团队仍在进一步广泛地研究文件系统的加密,并且在系统中所有可能的地方都对数据进行了加密。将交换分区分为一些小的区域,每个部分使用单独的密钥进行加密,以便确保不会将敏感数据泄漏到系统中不安全的部分,这是传统的基于 UNIX 或 Linux 的系统中常见的问题。如果希望对用户数据进行加密,那么您可以使用 OpenBSD 中的加密文件系统 (CFS)。CFS 工作于用户级,通过网络文件系统 (NFS) 与内核进行通信。该系统允许用户透明地访问经过加密的目录,所以他们可以选择要对哪些数据进行加密,而不用受加密/解密过程的困扰。
注意:有关 OpenBSD 中加密方面的更多信息,请参见部分。
返回列表