当安全性至为重要时,顺理成章地使用与当今安全远程访问标准OpenSSH(Open Secure Shell)产生相同的操作系统。 OpenSSH只是OpenBSD的一部分,OpenBSD是一个从头开始关注安全性的发行版,它的目标是创建一个默认情况下安全的,类似于UNIX®的操作系统。 这种立场与当今的大多数操作系统形成鲜明对比,后者需要大量时间和精力才能使环境更坚固,然后才能上线。 实际上,OpenBSD是如此的安全,以至于曾经被禁止在DEF CON竞赛中使用,在该竞赛中, 黑客相互追逐对方的系统。

BSD概述

伯克利软件发行版(BSD)是UNIX最古老和最常见的版本之一。 如今,它已被分成多个版本,三个常见的开源发行版引领了这一潮流:

  • FreeBSD
  • OpenBSD的
  • NetBSD

虽然FreeBSD在这三个发行版中使用最广泛,但是每个版本都有很大的优势,这使得选择正确的解决方案成为重要的决定。 FreeBSD是这三者中最普遍的,并且在i386环境中非常流行。 当安全性是您优先列表中的最高项目时,OpenBSD是正确的发行版本。 NetBSD提供了一个小型且非常便携的替代方案,可在多种体系结构上运行。

OpenBSD审核流程

OpenBSD审核过程可能是此发行版中一致的安全性的最大因素。 一个由经验丰富的开发人员组成的团队致力于审核输入到源代码树中的每段代码。 分析代码中的安全漏洞和一般错误-这些漏洞可能不会影响一般功能,但可能会被广泛用作安全漏洞。 每个错误都将被认真对待并立即解决。 这种主动的方法使OpenBSD不受未知漏洞的影响,其他发行版必须在发现这些漏洞时进行争夺。

OpenBSD:何时何地

任何对安全性很重要的环境都可能导致潜在的OpenBSD安装。 在当今更加注重安全性的世界(一个计算机24x7全天候连接到互联网的世界)中,很难找到不重视安全性的用户,无论是在家庭,政府还是公司环境中。 众所周知,金融巨头依靠OpenBSD来保护公司网络和客户记录。 与其他类似UNIX的操作系统相比,OpenBSD可能没有庞大的用户群,但它已安装在许多网络中最关键的位置。

作为NetBSD的近亲,OpenBSD也可以在多种硬件上运行。 看一看:

  • Alpha:基于数字Alpha的系统
  • amd64:基于AMD64的系统
  • 目录: StrongARM 110评估板
  • hp300:惠普HP 9000系列300和400工作站
  • HP / PA:惠普精密架构(PA-RISC)系统
  • i386:基于Intel®i386架构和兼容处理器的标准计算机
  • luna88k: Omron LUNA-88K和LUNA-88K2工作站
  • mac68k:具有MMU的基于Motorola 680x0的Apple Macintosh
  • macppc:基于Apple PowerPC的计算机,来自iMac
  • mvme68k:基于Motorola 680x0的VME系统
  • mvme88k:基于Motorola 881x0的VME系统
  • SGI:基于SGI MIPS的工作站
  • SPARC: Sun sun4-,sun4c-和sun4m级的SPARC系统
  • SPARC64: Sun UltraSPARC系统
  • VAX:基于数字VAX的系统
  • Zaurus: Sharp Zaurus C3x00 PDA

OpenBSD核心软件包和功能

现在您已经确定了OpenBSD是否是您的硬件平台的一个选项,让我们仔细看一下OpenBSD的一些亮点。

OpenSSH的

第一个注释包是OpenSSH,每个UNIX和Linux®用户都熟悉它。 但是,许多人可能不知道它来自OpenBSD开发人员。 OpenSSH最初是为OpenBSD开发的,此后成为标准的Secure Shell(SSH)软件包,几乎可以移植到UNIX,Linux和Microsoft®Windows®操作系统的每个版本。 OpenSSH包括用于安全登录的ssh ,用于安全副本的scp和用于ftp的安全替代品sftp 。 所有源代码都属于OpenBSD开源许可证,这遵循OpenBSD的指示,即不得将所有专有代码和限制性许可方案排除在发行版之外(这是创建新版本SSH的最初动力)。 OpenBSD中包含的每个软件都是完全免费的,没有使用限制。

密码学

因为OpenBSD项目位于加拿大,所以没有美国对密码术的出口限制,这使得发行版可以充分利用现代加密算法。 从文件传输到文件系统再到网络,几乎可以在操作系统的任何地方找到加密。 伪随机数生成器还包含在OpenBSD中,可确保无法根据系统状态预测随机数。 其他功能包括加密哈希函数,加密转换库和加密硬件支持。

OpenBSD的另一项大量导出的内容是IP安全协议(IPSec),操作系统使用它而不是依赖于本质上不安全的TCP / IP版本4(IPV4)。 (IPV4选择信任几乎所有人和所有事物。)IPSec加密并验证数据包以保护数据的私密性,并确保在传递过程中不对数据包进行任何更改。 IPSec通过引入TCP / IP版本6(IPV6)成为标准Internet协议的组成部分, 默认情况下使Internet的未来更加安全。

OpenBSD作为防火墙

因为OpenBSD既薄又安全,所以最常见的OpenBSD实现目的之一就是作为防火墙。 防火墙在大多数安全位置的底层运行,并且OpenBSD的数据包过滤实现是一流的。 数据包过滤器(PF)是由OpenBSD开发社区设计的开源解决方案,是OpenBSD的选择方法。 像许多其他OpenBSD软件一样,它的成功促使其他BSD变体将其移植到自己的发行版中。

默认情况下 ,OpenBSD设置为安全的 ,因此您无需关闭太多服务即可设置坚如磐石的防火墙。 您将必须启用第二个以太网接口,并根据需要配置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的密码学的更多信息。

安装OpenBSD

如果不完全了解OpenBSD的好处,新用户可能会倾向于熟悉的Linux发行版,因为他们对BSD安装过程感到恐惧,因为BSD安装过程非常困难。 虽然安装可能不是大多数用户所习惯的,但本文提供了该过程的快速概述,以演示如何轻松进行安装。 花一些时间来了解OpenBSD的安装过程,以节省锁定默认情况下不安全的Linux发行版的时间,这通常是务实的决定。

有几种安装方法,步骤因平台而异。 我通过创建自己的CD集来重点介绍在i386服务器(例如,运行IBM服务器的计算机)上的基本CD-ROM安装。 官方常见问题解答中未记录此过程。

步骤1.获取发行版

首先,访问OpenBSD.org下载页面(请参阅相关信息 ),选择列表中的任何一面镜子,然后去/3.9/i386/ 。 如果您习惯于安装Linux发行版,那么这是第一个您会发现与众不同的地方。 唯一的.iso文件是一个名为cd39.iso的5MB文件。 这样可以吗 不用担心:安装OpenBSD时,启动CD是一个准系统内核。 其余的则从文件中提取,您可以将其下载并刻录到其他CD(或从OpenBSD.org购买CD集来帮助支持该项目)。 确保下载cd39.iso,所有.tgz文件,bsd,bsd.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.将以下文件放在磁盘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
xserv39.tgz             10-Mar-2006 12:04  19.0M
xshare39.tgz            10-Mar-2006 12:04   2.0M

步骤3.开始安装

创建安装CD后,从磁盘1引导新服务器。命令提示符将指导您完成安装过程。 您可以在OpenBSD FAQ的第4节中找到详细说明(请参阅参考资料 )。

最复杂的部分是“ 设置磁盘”部分,但是您可以通过选择将所有磁盘用于OpenBSD来跳过很多此类信息(如果您没有要保留的其他任何分区)。 无论您做出何种分区决定,请务必按照“ 创建磁盘标签”一节的步骤进行操作,唯一的偏差是可以根据需要创建更大的/ usr和/ home分区。 请注意OpenBSD中的两层分区系统。 第一步设置传统的fdisk可查看分区,而第二disklabel步骤设置OpenBSD子分区。

除此之外,唯一的调整(要使用两张CD的安装套件)是在这一步交换CD:

Let's install the sets!
Location of sets? (cd disk ftp http or 'done') [cd]

从磁盘1切换到磁盘2(包含/3.9/i386/中所有文件的CD)。

步骤4.开始计算!

完成所有设置后,您就可以开始计算了。

听起来不错,现在该如何使用?

与学习如何保护系统(已经具有合理的默认设置)的安全性相反,在开始以新的OpenBSD用户身份管理系统之前,可能需要了解一些步骤。

首先,默认情况下,wheel组中没有用户,这意味着使用su命令的尝试将失败。 使用adduser命令从命令行创建新用户,该命令将引导您完成一个简单的问答会话,以设置默认值(一次性过程)并创建您的第一个用户。

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

其次,检查/ etc /目录中的系统默认设置。 由于大多数服务默认是由于某种原因而关闭的,因此请在此处谨慎行事。 OpenBSD使用rc.conf启动大多数启动守护程序。 您会看到默认情况下关闭了服务(例如httpd和nfs)-即使PF也已关闭。 例如,您可以通过在/etc/rc.conf中添加行httpd=YES来打开Apache(httpd)。

尽管OpenBSD可能没有基于图形的工具来帮助系统管理,但OpenBSD开发人员已经特别注意为操作系统的每个组件提供广泛,准确的手册页。 我建议您在感到困惑或只是想了解新工具时,自由使用严格的man命令。

我还能做什么?

OpenBSD预包装了少量的第三方组件,它们再次关注安全性和稳定性,而不是尝试为每个人做所有事情。 以下是OpenBSD版本3.9中包含的软件包的默认列表:

  • OpenSSH版本4.3
  • X.org版本6.9.0(具有i386发行版中包含的V3.3 XFree86服务器)
  • GCC 2.95.3和3.3.5版(默认情况下启用了Propolice堆栈保护技术)
  • Perl 5.8.6版(带有OpenBSD团队的补丁和改进)
  • Apache版本1.3.29 Web服务器(包括mod_ssl版本2.8.16和动态共享对象(DSO)支持)
  • OpenSSL版本0.9.7g(带有OpenBSD团队的补丁和改进)
  • Groff版本1.15
  • Sendmail版本8.13.4(带有libmilter)
  • BIND版本9.3.1(改进了chroot操作和其他与安全相关的问题)
  • Lynx版本2.8.5rel.4(添加了基于安全套接字层(HTTPS)的HTTP支持以及来自OpenBSD团队的补丁)
  • Sudo版本1.6.8p9
  • Ncurses 5.2版
  • KAME IPv6
  • Heimdal版本0.7(带有补丁)
  • Arla版本0.35.7
  • gdb 6.3版

还可以使用其他第三方软件包,您可以使用OpenBSD的pkg_add应用程序轻松安装它们。 您可以在OpenBSD镜像的/3.9/packages/i386/目录中找到完整列表。 pkg_add应用程序将软件包名称作为输入,自动确定依赖关系,并安装所有必需的软件包。

尽管上面列出的软件包是专门为OpenBSD移植的,但该平台的另一个宗旨是二进制兼容性。 OpenBSD支持为Linux,Solaris,HP-UX和其他形式的BSD编译的大多数软件的二进制仿真。 默认情况下,此功能是关闭的。 要打开它,只需在以下行从/etc/sysctl.conf中删除开头的注释( # )字符,然后重新启动系统:

#kern.emul.linux=1      # enable running Linux binaries

这样,您可以运行简单的静态链接的Linux应用程序。 要运行各种各样的软件,还需要使用pkg_add安装Redhat / base软件包,如上所述。

Wrapping up

OpenBSD致力于成为地球上最安全的UNIX派生产品,并且没有太多希望。 设计原则(例如代码审核,广泛使用加密以及谨慎的配置选择)相结合,以确保默认情况下 OpenBSD的安全原理正确。 虽然在安全的服务器和防火墙中找到OpenBSD安装是最常见的,但OpenBSD广泛的硬件和软件支持使该操作系统适用于多种用途。 UNIX和Linux专家都对OpenBSD的许多部分都很熟悉,他们可能会喜欢有意将其从软件包中剔除的领域。


翻译自: https://www.ibm.com/developerworks/aix/library/au-openbsd.html

openbsd_仔细看一下OpenBSD相关推荐

  1. rufus启动盘制作+linux18.04安装(一定仔细看文字)

    rufus启动盘制作+linux18.04安装,一定仔细看文字 启动盘的制作 磁盘分区 bios设置 linux18.04分区设置 启动盘的制作 磁盘分区 bios设置 linux18.04分区设置 ...

  2. 答辩老师会仔细看论文内容吗?

    全文阅读:知乎热议:答辩老师会仔细看论文内容吗?| 连享会主页 目录 1. 答辩老师是否会仔细看论文 1.1 会仔细看 1.2 不会仔细看 2. 答辩老师评阅论文的标准 2.1 本科论文 2.2 硕士 ...

  3. 博弈问题及SG函数(怒赞,耐心地仔细看一定能看懂)

    博弈问题 若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需 ...

  4. 开发之路[仔细看完定有不少收获]

    恭喜,你选择开发工程师做为自已的职业 悲哀,你选择开发工程师做为自已的职业 本文所指的开发工程师,仅指程序开发人员和以数字电路开发为主的电子工程师. 当你选择计算机或者电子.自控等专业进入大学时,你本 ...

  5. 仔细看这几段代码,看看你是Python新鸟还是老鸟

    在 Python Shell 里输入 import this 这段话被称作"Python 之禅"(The Zen of Python),它列举了一些 Python 所推崇的理念,比 ...

  6. 今天仔细看了看struts方面的英文文档

    今天工作不忙 上apache网站上翻了翻struts方面的英文文档 觉得他们的文档,结构清晰,分类详细,真的是软件开发时,不可多得的开发手册.以前碰到问题,像没头苍蝇,首先找中文资料,在google, ...

  7. 高楼翻译:并发用户数的估算方法(请仔细看译者注)

    原文名:<Method for Estimating the Number of Concurrent Users> 2004年 原作者: Eric Man Wong 翻译:高楼 作者注: ...

  8. min里所有的参数都不存在_高中生物所有的考点难点,其实都在你不仔细看的课本里,必修1-3超强记忆手册!...

    对很多理科生来说,高中生物就是一门不是文科胜似文科的学科. 很多数学.物理成绩非常突出的学生却不能在这样一门"理科"课程当中取得优势.生物老师在这门学科的提高上反复强调" ...

  9. mfc控件随框变化(EasySize的用法,仔细看绝对有用)

    假设创建的对话框的类名是CMyDlg,具体过程如下: 步骤一:把easysize.h拷贝到CMyDlg项目文件夹中,同时在CMyDlg的.h文件和.cpp文件中加入#include "eas ...

  10. 关于equls和endsWith的悲哀(以后有equals的位置要仔细看一下了)!

    今天leader检证代码,发现在最开始if判断的时候,把.equals写成了.endsWith . 自己先做的UT也没有测出来(比较的flag是1位的),悲哀啊!哎...  总结: 这个错误出现在程序 ...

最新文章

  1. 用过美德乐吸奶器的宝妈们感觉比国产吸奶器怎么样啊?
  2. laravel中Crypt加密方法
  3. MySQL如何从开源中获利
  4. php7实践指南图书手册
  5. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十二║Vue实战:个人博客第一版(axios+router)...
  6. kotlin-unresolved reference daclaredFunctions
  7. memcache的使用入门C++代码
  8. jzxx1107字符图形6-星号倒三角
  9. 线性代数之矩阵逆的求法
  10. 教你们如何快速建立一个完美的python项目
  11. 浅谈Md5+Salt加密
  12. pyecharts主题theme风格推荐
  13. mysql explain参数_MySQL命令 Explain参数说明
  14. 向上(向下)转型的理解与应用
  15. Linux内存 匿名页,学点linux之四:内存
  16. 解决win7win10系统安装金蝶k3老版本客户端问题
  17. poj1275 「一本通 3.4 例 2」出纳员问题
  18. 医院里的CR、DR、CT、磁共振、B超都是什么?
  19. bem什么意思_bem
  20. 推荐一款开源工作流引擎,改善你的开发流程

热门文章

  1. 【冬镜网】什么是搜索引擎优化?
  2. filebox管理php,filebox.php
  3. 网上大多数原理总结,UDP打洞原理
  4. IDEA配置文件保存位置修改
  5. VMware通过vmdk安装Kali linux
  6. python 百度ai json解析_百度AI接口调用
  7. js判断浏览器是pc端还是手机端
  8. 【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)
  9. 基于北斗观测值的智能手机GNSS定位研究
  10. 工单系统(源代码)PHP语言开发 开发者版