深度探索 OpenBSD1

当安全性作为最重要的考虑因素时,有必要研究产生现在安全远程访问方面的标准 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 的系统

    CatStrongARM 110 评估板 (Evaluation Board)

    hp300Hewlett-Packard HP 9000 系列的 300 400 工作站

    HP/PAHewlett-Packard Precision Architecture (PA-RISC) 系统

    i386:基于 Intel® i386 体系结构和兼容处理器的标准计算机

    luna88kOmron LUNA-88K LUNA-88K2 工作站

    mac68k:基于 Motorola 680×0 的带 MMU Apple Macintosh

    macppc:从 iMac 开始,基于 Apple PowerPC 的计算机

    mvme68k:基于 Motorola 680×0 VME 系统

    mvme88k:基于 Motorola 881×0 VME 系统

    SGI:基于 SGI MIPS 的工作站

    SPARCSun sun4-sun4c- sun4m 级的 SPARC 系统

    SPARC64Sun UltraSPARC 系统

    VAX:基于 Digital VAX 的系统

    ZaurusSharp Zaurus C3x00 PDA

 

OpenBSD 核心包和特性

既然已经确定了 OpenBSD 是否适合于您的硬件平台,下面让我们更仔细地了解一下 OpenBSD 中一些重要的部分。

OpenSSH

第一个值得关注的包是 OpenSSH,所有的 UNIX Linux® 用户对它都很熟悉。然而,许多人可能并不知道它来自于 OpenBSD 开发人员。OpenSSH 最初用于 OpenBSD,后来成为标准的安全 Shell (SSH) 包,并移植到几乎所有版本的 UNIXLinux 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 中的加密哈希库包括 MD5SHA1 RIPEMD160OpenBSD 中的加密转换库包括 Blowfish、数据加密标准 (DES)3DES Cast

大部分加密处理都在底层进行,这样一来,用户就不用为了保护系统安全而必须成为加密方面的专家。OpenBSD 开发团队很清楚,大多数管理员并不是安全方面的专家,并且不应该指望他们煞费周折地加强他们的环境。那些认为 OpenBSD 不是用户友好的操作系统的人,大部分是受到了误导。如果大多数管理员愿意花时间使用 OpenBSD 的缺省安全措施来替代任何其他的分发版,那么他们很可能会改变其思维方式。

随机数是确保安全性的重要组成部分。OpenBSD 内核使用中断信息创建不断变化的熵池,它可以为加密函数提供种子数据,并为事务 ID 提供数值。例如,伪随机数可用于进程 ID 和包 ID,这使得那些想要进行攻击的人很难进行欺骗。OpenBSD 甚至在 bind(2) 系统调用中使用了随机端口分配。大多数源于 UNIX 的操作系统要么创建顺序的 ID,要么使用可预测其结果的简单算法。

OpenBSD 团队仍在进一步广泛地研究文件系统的加密,并且在系统中所有可能的地方都对数据进行了加密。将交换分区分为一些小的区域,每个部分使用单独的密钥进行加密,以便确保不会将敏感数据泄漏到系统中不安全的部分,这是传统的基于 UNIX Linux 的系统中常见的问题。如果希望对用户数据进行加密,那么您可以使用 OpenBSD 中的加密文件系统 (CFS)CFS 工作于用户级,通过网络文件系统 (NFS) 与内核进行通信。该系统允许用户透明地访问经过加密的目录,所以他们可以选择要对哪些数据进行加密,而不用受加密/解密过程的困扰。

注意:有关 OpenBSD 中加密方面的更多信息,请参见参考资料部分。

 

安装 OpenBSD

如果不能全面了解 OpenBSD 的优点,新用户可能会倾向于使用熟悉的 Linux 分发版,因为他们对 BSD 复杂的安装过程感到害怕。大多数用户可能对这个安装过程并不熟悉,本文将对其进行简要的概述,以说明这个安装过程是非常简单的。花一点时间了解 OpenBSD 的安装过程可以节省锁定 Linux 分发版所花费的大量时间,因为 Linux 分发版不是缺省安全的,这样做通常是很实际的选择。

有几种不同的安装方法,根据平台的不同,其具体步骤也有所区别。我主要介绍通过创建您自己的一套 CD i386 服务器(例如,一台运行 IBM 服务器的计算机)上基于 CD-ROM 进行安装。在官方的 FAQ 中并没有介绍这个过程。

1 . 获得该分发版

首先,请访问 OpenBSD.org 下载页面(请参见参考资料部分),选择列表中的任何镜像,然后转到 /3.9/i386/。如果您习惯于安装 Linux 分发版,那么从这里开始您将发现一些不同之处。唯一的 .iso 文件是一个 5MB 的、名为 cd39.iso 的文件。是这个文件吗?不用担心:在 OpenBSD 的安装过程中,这个启动 CD 只是基本核心,您可以下载相关文件并将其刻录到附加 CD(或从 OpenBSD.org 购买一套 CD 以帮助支持该项目)中,其余的内容将从这些文件中提取。请确保您下载了 cd39.iso 以及所有的 .tgz 文件、bsdbsd.rd bsd.mp。(或者,要简化这个过程,只需下载该目录中的所有内容。)

2 . 创建安装媒体

cd39.iso 创建启动 CD,并将其标注为 Disk 1,如清单 1 所示。使用 /3.9/i386/ 目录中所有其他的文件创建一张常规的 CD,并将其标注为 Disk 2,如清单 2 所示。其他的可选方法包括购买一套 CD、执行网络安装或构建自定义 .iso 文件,但我发现这种两张 CD 的方法最简单。

清单 1. 使用 cd39.iso 创建启动 CD

cd39.iso 02-Mar-2006 03:10 4.6M

清单 2. 将下列文件放入到 Disk 2 上名为 /3.9/i386/ 的目录中

base39.tgz 02-Mar-2006 03:10 38.6M

bsd 02-Mar-2006 03:10 5.2M

bsd.mp 02-Mar-2006 03:10 5.2M

bsd.rd 02-Mar-2006 03:10 4.5M

comp39.tgz 02-Mar-2006 03:10 71.8M

etc39.tgz 02-Mar-2006 03:10 1.1M

game39.tgz 02-Mar-2006 03:10 2.5M

man39.tgz 02-Mar-2006 03:10 7.1M

misc39.tgz 02-Mar-2006 03:10 2.2M

xbase39.tgz 10-Mar-2006 12:04 10.1M

xetc39.tgz 10-Mar-2006 12:04 88k

xfont39.tgz 10-Mar-2006 12:04 31.7M

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注