博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2052|回复: 2

OpenBSD

[复制链接]
发表于 2010-12-21 10:12:34 | 显示全部楼层 |阅读模式

OpenBSD 是一个可以自由取得的,从 NetBSD 衍生出来的 BSD操作系统。专案领导人 Theo de Raadt在1995年发起了OpenBSD 专案,希望创造一个注重安全的操作系统。



目录简介 开发历史 开放源代码 系统安全 运行平台 开发者 版本历史
编辑本段简介  OpenBSD是一个从NetBSD衍生出来的类Unix操作系统。专案领导人希欧·德若特(Theo De Raadt)在1995年发起了OpenBSD专案,希望创造一个注重安全的操作系统,此外OpenBSD也以高品

质的文件、坚持开放程式码以及严格的软体授权著名。OpenBSD的吉祥物是刺豚。
  OpenBSD包含了一些在其他操作系统缺少或是选择性的安全功能,此外OpenBSD极度重视程式码的品质,任何对核心的修改都需要经过严格的审查。OpenBSD可以在17种不同的硬体环境下运作,包含DEC Alpha、Intel i386、Hewlett-Packard PA-RISC、AMD64、Motorola 68000、PowerPC、Sun SPARC等。
编辑本段开发历史  1994年12月,NetBSD的共同发起人Theo de Raadt被要求辞去NetBSD的开发工作,而他存取NetBSD程式码的权利也被取消。Theo de Raadt辞职的实际的原因不明,虽然他声称是因为和NetBSD的开发团队发生冲突而辞去开发工作。许多人认为Theo de Raadt的离开是因为个性上难以相处,但也有许多人认为他是个直率的人,而离开的原因是因为有些人不认同他极度注重操作系统安全的理念。
  1995年10月,Theo de Raadt从NetBSD 1.0衍生出了OpenBSD计划,在1996年7月释出了最初的发行版OpenBSD 1.2,同年10月释出了OpenBSD 2.0。之后每隔6个月OpenBSD便会释出一个新版本,每个释出版本会维护1年。
  2007年7月25日,OpenBSD决定成立一个OpenBSD基金会。这个非营利性质的基金会将提供OpenBSD使用者或是组织对OpenBSD法律上的支援服务,组织的地点设在加拿大。
编辑本段开放源代码  当创立OpenBSD的时候,Theo de Raadt就决定任何人都可以在任何时间取得原始码,在Chuck Cranor的协助下他建立了一个公开且匿名的CVS伺服器,是第一个以开放式CVS作为开发方式的软体。因为在当时CVS的应用上大多只让少数的开发者有存取权,外部的开发者没有办法知道目前的工作进度,贡献的修正档也常常是已经完成过的修正。这种开发方式让OpenBSD成为开放原始码的代表软体。
编辑本段系统安全  直到2002年6月前,OpenBSD的网站上都是如此声明:
  “ 在预设安装下,过去六年没有任何远端漏洞被发现 ”
  2002年6月,Mark Dowd发现预设安装下 OpenSSH 中的一个远端漏洞,因此网站上的声明改成:
  “ 在预设安装下,超过八年的时间只有一个远端漏洞被发现" ”
  2007年3月13日,OpenBSD又被找到一个远端漏洞 ,因此网站上的声明又改成:
  “ 在预设安装下,超过十年的时间只有两个远端漏洞被发现 ”
  但这个声明也被批评,因为在OpenBSD预设安装下,运行的系统服务很少,而通常安装的服务越多,发生漏洞的机会也越多。OpenBSD的这个声明有点不符合实际状况,不过OpenBSD仍然是相当安全的操作系统。
编辑本段运行平台  OpenBSD 3.4可运行于以下平台
  ● alpha - 仅FTP
  ● amd64 - 可直接从CD启动 3.5新增
  ● cats - 仅FTP 3.5新增
  ● hp300 - 仅FTP
  ● hppa - 仅FTP
  ● i386 - 可直接从CD启动
  ● mac68k - 仅FTP
  ● macppc - 可直接从CD启动
  ● sparc - 可直接从CD启动
  ● sparc64 - 可直接从CD启动
  ● mvme88k - 仅FTP 3.5新增
  ● alpha - 仅FTP
  ● vax
  只有一些平台支持从CD启动。查看本FAQ第三章来了解如何获得关于获得OpenBSD CD的更多信息。
  OpenBSD以前的版本同样可运行于:
  ● amiga - 3.2 release后开始移除
  ● sun3 - 2.9 release后开始移除
  ● arc - 2.3 release后开始移除
  ● pmax - 2.7 release后开始移除
  OpenBSD目前还不支持多处理器。查看Chapter 8,SMP来获得更多信息。
  OpenBSD是完全免费的。二进制文件(binaries)是免费的。源代码是免费的。OpenBSD的任何部分都允许在合理的版权限制下自由分发。这包括可以重新使用大部分OpenBSD源代码树,无论是私用还是商用。除了原始的BSD许可外,OpenBSD没有任何其他的限制。一些按照严格许可而写的软件不能包含进OpenBSD的正规发行版中。这样有利于保护OpenBSD的安全免费使用。例如,OpenBSD可以自由免费的用于个人使用、学术研究、政府机构、非赢利性组织或者商业组织。
  OpenBSD的维护者主要通过自身来支持OpenBSD Project.这包括为此工程写程序所花费的时间,用于维护众多ports的设备、以及回答问题和研究用户错误报告所花的时间。OpenBSD的开发者们并非都十分富有,并且甚至是贡献一点点时间、设备、或者资源都会使事情大不一样。
编辑本段开发者  IT界从来不缺个性张扬的开发高手。希欧·德若特(Theo De Raadt),这位名字古怪的主儿不仅负气出走NetBSD而重新打造出OpenBSD,更因为“嘴臭”而闻名:因为痛斥美国对伊战争,引来美国国防部高级研究计划总署(DARPA)撤销了对OpenBSD项目的支持补助金;同时还因为抨击Linux,在开源社区掀起旷日持久的口水大战。
  10年前,希欧·德若特(Theo De Raadt)陷入了人生的最低谷(至少在别人看来是这样)。他当时没有一份正式的工作,并且刚刚从一个开源软件开发团队NetBSD被踢了出来。而编写开源软件代码是他唯一想做的事情。
  德若特9岁时随父母一起从南非搬到了加拿大,後来在卡尔加里大学获得了计算机科学学位。在上大学之前他就想编写开源软件了。那个时代的程序员们会编写一些东西然後把他们贴到BBS上面。然後这些东西就会传播出去,这是很时髦的事情。德若特最初编写了一些小的图形程序和小游戏,後来在Unix风光的日子里他成为comp.sources.unix新闻组的一员。尽管随後互联网开始变得流行起来,但德若特和朋友们仍旧做着同样的事情。
  “这里面的大多数人,比如我,编写开源软件因为这是一种协同工作、迸发好点子的文化。”德若特回忆道,“我们不愿把编写程序当成一份工作。”毕业後暂时作了几天程序开发员後,1993年他和3个朋友一起开发出一套叫做NetBSD的系统。但自从他和另外一名开发人员发生了矛盾後,事情就一发不可收拾了。
  “那家伙是个彻头彻尾的衰人!我当时让他少聊天踏踏实实做些工作。”至今德若特仍不依不饶。後来这名程序员通过Email向德若特道歉。但他甚至没有删除这封邮件,反而用恶毒的、过分的语言回复对方,同时将这封邮件抄送给成百上千的开发高手取乐。于是在合作一年後因为自己的莽撞和不厚 道,德若特被踢出了这个团队。
  但德若特毫不在乎,他立即着手开发一套NetBSD的竞争产品,并且在几个月後他就发布了这套名为OpenBSD的操作系统的第一个版本。而那封不厚道的邮件甚至被视为是OpenBSD的立项文件。如今用Google搜索“theo de raadt”时,这封邮件的内容链接仍会位于结果列表中的前几位。
  OpenBSD曾赢得过“安装四年也找不到一个漏洞”的美名,这套操作系统源于古老的Berkeley Unix,这个星球上另外两大十分出色的操作系统——Sun微系统公司的Solaris和苹果电脑公司的OS X——也同源于此。10年之後,德若特高兴地看到相比NetBSD他的软件更受人们关注。由于采用了先进的密码系统和数据通讯过滤,英特尔、甲骨文、 Adobe的公司系统中都运行着OpenBSD。而且它不收一分钱。
  为什么在安全问题成为整个行业最头疼的问题时,德若特却能够让OpenBSD在这个敏感话题上声名显赫呢?很简单,那就是认真。
  他们采取最基础的办法:一行行检索源代码,找出问题。整个团队中有10到15个人,大概用了4年的时间彻底检查了OpenBSD那300兆的源码。一旦发现错误,开发人员不是立即修改,然後继续寻找其它的错误。OpenBSD成员则是停下来分析这个错误的根源是什么,尽可能一举将整个系统里的所有同类错误修正。
  与此同时,改善程序的系统构造,让每个功能都有序运行。另外,德若特认为如今许多软件过于复杂化,过于庞大的程序就很难兼顾安全。当程序开发人员编写出一个功能复杂的软件的时候,其安全性却很低。于是OpenBSD有80个程序员竭力精简自己的作品。要知道,300兆源码只是相当微软 Windows、Office源码体积的1/4,而这两款软件称得上是世界上最赚钱的软件产品。
  但德若特并没有就此寻找投资、转而商业化的打算。接受《环球企业家》专访时,他用“深恶痛绝”表示了自己对资本的感受:“金钱不会提高程序代码的质量,只有技巧和时间才能够做到。”
  他每年靠3万加元度日,这笔钱来自销售45美元/张的OpenBSD光盘、印着吉祥物和宣传口号的T恤衫的收入,以及软件用户的捐赠。 销售收入和捐赠收入的金额大致相当,除了支付一些生活费用,如宽带、冷气、电灯等,剩下的钱将会用在他们每年一次的黑客马拉松(hackathon)活动上。在那里60个开发人员齐聚一堂,用整整一周的时间面对面地讨论、疯狂编写代码。尽管德若特不反对开源社区中的其他人寻求风险投资的帮助,但他认为这对软件质量的提高不会有太大帮助。因为风险投资商们为了获得更多的回报,将会把大笔的投资用在市场营销方面。而且如果金钱能够做到这一切,那些商业软件早就做的足够好了,德若特自己将会无事可做。
  无所顾忌
  看一看37岁的德若特的生活,就知道他是什么样的人了。在其网站上,他对自己的描述是:一个铁杆黑客、老式UNIX电脑收藏者、狂热的山地自行车手、洞穴探索者、登山迷、初级的酿酒师。而他养的两只猫分别叫“伽利略”和“开普勒”。
  在这种充满冒险气质的生活背後,德若特一直是一名言辞犀利到令人难以接受的人,他在加拿大卡尔加里一间地下室里工作,并发表各种异见。
  2001年,德若特从美国高级研究项目局获得了一笔2年230万美元的研究基金,得以继续研发OpenBSD。美国高级研究项目局非常重视这套系统刀枪不入的安全性能。但这名黑客又一次张开了他的大嘴。他在一份加拿大报纸上批评伊拉克战争是一场贪婪的石油争夺游戏。没多久美国高级研究项目局就撤销了提供的资助。
  尽管德若特作为一名开源软件运动的倡导者和领军人物,但在今年6月接受采访时他对Linux却没有什么好话,只是强调他自己的软件采用了高级严谨的代码。“我认为我们的代码质量更高,因为我们在这上面花了大心思。凑近Linux仔细看看吧,它正在朝着另一个微软发展。这是一套质量低劣的软件,他们的人已经不行了。”
  而谈到开源世界的天皇巨星李纳斯·托沃兹(Linus Torvalds)时德若特也毫不客气:“我不知道他的工作重点在什么地方,但肯定不是质量。”当托华兹了解了德若特对自己的评价後,只表示了这是一个很难缠的家伙便什么都不说了。
  对《环球企业家》,德若特说:“我被曲解了,我批评Linux是因为它的确在质量上有问题。它可能会变得更流行、更庞大,但不是质量的提高。事实上,一件事情变得越庞大,保持高质量的难度就越大。我说过Linux质量很差的话,并且这是真的。”这也是德若特为什么坚持控制OpenBSD 的体积和复杂程度,他坚信小即是美。
  即使充满争议性,OpenBSD的研发从未停止。每六个月,就会有一款新的OpenBSD诞生,谈到之所以固定生产周期,德若特的解释是:“这个时间长度刚刚好,以至于我不会因忙碌而自杀。”
  德若特得到了开源世界中许多志愿者的帮助。他们每年都会从全世界各个地方聚到卡尔加里一次,为OpenBSD开发新的功能。其中一些人就住在德若特的家里,平时这里只有他和女友。德若特甚至认为有时候这些家伙住的时间太长了。这项年度活动被他们称为黑客马拉松。今年5月份60名包括从澳大利亚、巴西、日本飞来的技术天才们参加了黑客马拉松。他们在凯悦酒店里连续一周几乎没有睡觉,疯狂地编写程序代码。任何人都可以提出自己的意见,但德若特拥有最终决定权。
  一家叫做InternetSecure的公司高高兴兴地为今年的黑客马拉松支付了3万美元的账单,这是一家提供线上信用卡交易系统的加拿大公司。去年这家公司在3台英特尔服务器上运行了OpenBSD系统,有效防止了黑客的攻击。在这之前黑客们曾经把他们的服务器打开了花。“目前OpenBSD是这个星球上最安全的操作系统。” Lok Technology公司的创始人西蒙·洛克(Simon Lok)说道,“我们不会再用其它任何东西了。”
  拥有计算机专业博士学位的洛克是德若特或者说是OpenBSD的死忠。他表示Lok Technology公司最初使用的是Linux系统,但4年前当他仔细检查了这套风头正劲的操作系统的源代码後,便决定转换到OpenBSD系统。“你猜我看到了什么?在Linux系统的心脏——系统内核程序里面我看到了开发人员的一行注解‘这行代码属于这里吗?’”洛克说,“这对我的信任是一种打击, 那时我就知道是时候更换系统了。”
  早期的德若特更多是一个程序员的角色,并且沉醉于被他称为一种“美学”的代码编写过程之中。他和整个团队的工作都是在几乎没有任何管理的情况下完成的。但现在随着越来越多的人加入到OpenBSD工作,德若特不得不花费很多时间去和他们沟通、协调。沟通的工作让整个团队的进度都慢了下来。因为当新人希望为OpenBSD贡献他们的技能和时间时,需要一些时间帮助他们启动并加速。只有这样他们才能够很好的融入OpenBSD的开源社区。
  在团队内部,德若特以“慈善的独裁者”而出名:“只要是能够确保安全的,任何事情我都会去做,甚至是来自于我们源代码的进步。我们坚信软件的发展,而非革命;因此,在安全的前提下,变化的脚步却很缓慢,我们一点错误都不想犯。”
  这种思路正在得到更为广泛的认可,最近一次他与本刊记者通信时,正在意大利威尼斯和许多开发高手碰面,在那里几乎所有的时间他都在编写代码。
  这些高手们,丝毫不能理解为什么人们会花费5万美元去购买思科(Cisco Systems)或者Check Point的黑客防火墙,他们能够不花一分钱得到OpenBSD并且获得更好的安全保护。OpenBSD甚至守护着库尔德斯坦(Kurdistan)一条输气管线!
  现在还没有人能够从OpenBSD上面赚到钱,最好的情况也只是企业为他们自己节省了开销。“使用的人没有去宣传,所以它才这样默默无闻,”德若特表示。他不知道或者说不在乎有多少人在使用OpenBSD,尽管它已经被下载了数百万次。“我唯一在乎的是编写高质量的代码。如果强迫我做循规蹈矩的工作,我会疯掉。”德若特甚至并不在乎是否存在一个OpenBSD的市场空间。他坚持认为自己只不过是一个专注于开源代码项目的领导者,而不是关心它是被如何使用的。
  其真正的痛苦在于同10几年前相比,他们仍然在一个硬件环境很封闭的世界里编写源代码。很多硬件厂商,从苹果SUNIBMNvidia英特尔戴尔,都在谈论支持和购买开源软件,但另一方面他们又拒绝提供相关文档。因此开源软件工程师很难为这些大公司的硬件产品编写源代码。但据德若特透露,有些时候这些大公司会私下将一些文档流出给像RedHat这样的Linux软件公司的开发程序员,还要签署NDA协议(Non-Disclosure Agreements)。这样就把许多有能力为某些硬件编写驱动程序的程序师限制在外,只有那个拥有文档的人才可以。
  对OpenBSD团队来说,当这些大型硬件厂商并不向他们提供说明文档的时候,编写支持这些硬件产品的代码是非常困难的。德若特认为他们受到了不公平待遇:当像Redhat这样比较强壮的Linux软件厂商继续允许他们的程序员私下从硬件厂商那里得到说明文档,这将会很大程度的限制了更大范围的开源代码社区中的程序员的工作。“我们越来越多的看到驱动程序中充满了魔术般的数字,这让我们无法对其调试或者改进。”德若特说道,“这的确是一个挑战。但即使那些较大规模的开源软件公司越来越多地采用私下交易方式,他们也无法阻止我们的成长。因为15年前我们本来就没有什么说明文档。”
  是的,态度强硬的德若特和这些大型硬件公司的关系并不够好。他根本不相信他们中的任何一个:“这样的公司并不是开源世界的朋友。不要被他们的花言巧语欺骗了。他们作出开放的姿态,像我们一样,但这却是一个大谎言。对他们来说开源软件只是一个值得利用的东西,但他们却不会帮助它成长。” OpenBSD和任何一家大公司都没有关系,在他们的研发机房里面有IBM的机器,但却不是IBM送给他们的。而据说IBM却特别告诉它旗下的RAID公司Mylex不要把他们产品的说明文档交给OpenBSD团队。
  事实上,OpenBSD仍是一套非常艰涩难用的操作系统,这并不便于让它更加流行。但德若特并不打算自己来解决这个问题。“我们会花费更多时间来保证它足够棒,而不是把时间用在让大众觉得它更美味可口上。”
编辑本段版本历史  * 1.2:1996年7月1日
  * 2.0:1996年10月1日
  * 2.1:1997年6月1日
  * 2.2:1997年12月1日
  * 2.3:1998年5月19日
  * 2.4:1998年12月1日
  * 2.5:1999年5月19日
  * 2.6:1999年12月1日
  * 2.7:2000年6月15日
  * 2.8:2000年12月1日
  * 2.9:2001年6月1日
  * 3.0:2001年12月1日
  * 3.1:2002年5月19日
  * 3.2:2002年11月1日
  * 3.3:2003年5月1日
  * 3.4:2003年11月1日
  * 3.5:2004年5月1日
  * 3.6:2004年11月1日
  * 3.7:2005年5月19日
  * 3.8:2005年11月1日
  * 3.9:2006年5月1日
  * 4.0:2006年11月1日
  * 4.1:2007年5月1日
  * 4.2:2007年11月1日
  * 4.3:2008年5月1日
  * 4.4:2008年11月1日
  * 4.5:2009年5月1日
  * 4.6:2009年10月18日
词条图册更多图册






扩展阅读:
 楼主| 发表于 2010-12-21 10:14:42 | 显示全部楼层
 楼主| 发表于 2010-12-21 10:17:35 | 显示全部楼层
.developerWorks 中国AIX and UNIX文档库深度探索 OpenBSD安全的重要意义

Tim McIntire (tm@timmcintire.net), 咨询师, 自由撰稿人
Tim McIntire 是 Cluster Corporation 的咨询师和创始人之一,该公司是 HPCC 软件、支持和咨询的市场领跑者。他还定期向 IBM developerWorks 和 Apple Developer Connection 投稿。Tim 领导 Oceanography 的 Digital Image Analysis Lab 的 Scripps Institution 进行了计算机科学方面的研究工作,在各种期刊上发表了相关研究成果,包括 Concurrency and Computation 和 IEEE Transactions on Geoscience and Remote Sensing。您可以访问 TimMcIntire.net 以了解更多关于 Tim 的信息。

简介: OpenBSD 很可能是世界上最安全的操作系统。在其之上的每一步开发过程都重点关注于构建一个安全、开放和免费的平台。UNIX® 和 Linux® 管理员请注意:您可能在日常工作中已经使用了从 OpenBSD 中移植的工具,只是您并不知道而已。或许,现在我们应该对整个操作系统进行更深入的研究。


标记本文!
发布日期: 2006 年 9 月 05 日
级别: 中级
访问情况 793 次浏览
建议: 0 (添加评论)

  平均分 (共 0 个评分 )
.当安全性作为最重要的考虑因素时,有必要研究产生现在安全远程访问方面的标准 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 中加密方面的更多信息,请参见参考资料部分。


--------------------------------------------------------------------------------
回页首
安装 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 文件、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. 将下列文件放入到 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  
xserv39.tgz             10-Mar-2006 12:04  19.0M  
xshare39.tgz            10-Mar-2006 12:04   2.0M  



第 3 步. 开始进行安装

在创建了这些安装 CD 之后,从 Disk 1 启动新服务器。命令提示符将指导您完成相应的安装过程。您可以在 OpenBSD FAQ(请参见参考资料部分)的第 4 部分中找到详细的说明。

其中最复杂的部分是设置磁盘 部分,但通过选择将所有的磁盘用于 OpenBSD(如果您不需要保留任何其他的分区),您可以跳过其中大量的信息。无论您的分区决定如何,请确保按照创建磁盘标签 部分中的说明一步一步地进行安装,如果需要,您只需单独创建更大的 /usr 和 /home 分区。请注意 OpenBSD 中的两层 分区系统。第 1 步设置了传统的 fdisk 可视分区,而第 2 步磁盘标签设置了 OpenBSD 的子分区。

除此之外,唯一需要进行调整的地方(对于使用两张 CD 安装套件的方法)是在下面的步骤中切换 CD:

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



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

第 4 步. 开始使用该系统!

在对所有的内容进行了设置之后,您就可以开始使用该系统了。


--------------------------------------------------------------------------------
回页首
听起来很不错,现在我应该如何使用它呢?

与了解如何确保系统安全相比(它已经具有了许多合理的缺省设置),在您作为一个新的 OpenBSD 用户开始管理您的系统之前,可能希望弄清楚一些相关的步骤。

第一点,在缺省情况下,wheel 组中不包含任何用户,这意味着尝试使用 su 命令将会失败。使用 adduser 命令从命令行创建新的用户,该命令将引导您通过简单的提问和回答过程来设置缺省值(一次性的过程),并创建您的第一个用户。

比方说,您创建了一个名为 bsdadmin 的用户。如果将 bsdadmin 作为主要的管理帐户,那么您需要能够使用 su 命令快速地访问 root 帐户。要完成该任务,以 root 帐户登录,然后编辑 /etc/group 文件,以便在 wheel 组中包含 bsdadmin。只需将 bsdadmin 追加到第一行(这一行的内容为 wheel:*:0:root)。

第二点,检查 /etc/ 目录中系统的缺省设置。在这里进行小心地处理,因为出于某种原因,在缺省情况下关闭了大多数服务。OpenBSD 使用 rc.conf 来启动大多数的启动守护进程。您将看到在缺省情况下关闭了一些服务,如 httpd 和 nfs,甚至关闭了 PF。作为示例,您可以通过在 /etc/rc.conf 中添加 httpd=YES 这行代码,以便打开 Apache (httpd)。

尽管 OpenBSD 没有提供基于图形的工具以帮助用户进行系统管理,但 OpenBSD 开发人员非常关注于为该操作系统中的每个组成部分提供大量精确的 man 页面。当您遇到疑问或需要了解某个新工具时,我建议您随时使用可靠的 man 命令。


--------------------------------------------------------------------------------
回页首
我还能用它完成其他哪些任务呢?

OpenBSD 预先打包了一组第三方组件,其目的同样是关注于安全性和稳定性,而不是用来完成各种各样的日常工作。下面是 OpenBSD Version 3.9 中包含的包的缺省列表:

•OpenSSH Version 4.3
•X.org Version 6.9.0(i386 分发版中包含了 V3.3 XFree86 服务器)
•GCC Versions 2.95.3 和 3.3.5(缺省情况下启用了 Propolice 栈保护技术)
&#8226erl Version 5.8.6(包含来自 OpenBSD 团队的修补程序和改进程序)
•Apache Version 1.3.29 Web 服务器(包括 mod_ssl Version 2.8.16 和动态共享对象 (DSO) 支持)
•OpenSSL Version 0.9.7g(包含来自 OpenBSD 团队的修补程序和改进程序)
•Groff Version 1.15
•Sendmail Version 8.13.4(包含 libmilter)
•BIND Version 9.3.1(包含对 chroot 操作和其他安全相关问题的改进)
•Lynx Version 2.8.5rel.4(添加了对安全套接字层 (HTTPS) 的 HTTP 支持,并包含来自 OpenBSD 团队的修补程序)
•Sudo Version 1.6.8p9
•Ncurses Version 5.2
•KAME IPv6
•Heimdal Version 0.7(包含修补程序)
•Arla Version 0.35.7
•gdb Version 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 包。


--------------------------------------------------------------------------------
回页首
总结

OpenBSD 已经成为世界上最安全的 UNIX 派生系统,并且几乎实现了所有相关的内容。其中的一些设计原则,如代码审核、加密处理的广泛使用以及仔细的配置选择,它们组合在一起可以确保实现 OpenBSD 的缺省安全 的思想。尽管 OpenBSD 安装一般用于安全服务器和防火墙,但 OpenBSD 广泛的硬件和软件支持使得该操作系统适用于各种各样的目的。UNIX 和 Linux 专家都会发现对 OpenBSD 中的许多部分非常熟悉,并且他们很可能会重视其中一些有意偏离的领域。



参考资料

学习

•您可以参阅本文在 developerWorks 全球站点上的 英文原文 。


•OpenBSD 主页:了解关于 OpenBSD 的所有内容。


•文档和常见问题:这个页面提供了常见和不那么常见的 OpenBSD 问题的解答。


•Cryptography in OpenBSD: An Overview:有关该系统中密码系统工作原理的详细信息,请阅读由 Theo de Raadt 等撰写的文章。


•OpenBSD firewall using pf:有关将 OpenBSD 作为防火墙使用的详细信息,请阅读由 Hoang Q. Tran 提供的这个页面上的相关信息。


•OpenBSD's network stack:获得关于 OpenBSD 网络安全功能的更多信息。


•A Cryptographic File System for UNIX:有关 CFS 的详细信息,请阅读这篇文章。


•AIX and UNIX:想了解更多内容吗?developerWorks 的 AIX and UNIX 专区提供数百篇关于 AIX 和 UNIX 的文章以及入门级、中级和高级教程,将让您打开眼界。


•developerWorks 技术事件与网络广播:跟踪最新的 developerWorks 技术事件与网络广播。


•播客:收听播客并与 IBM 技术专家保持同步。


获得产品和技术

•OpenBSD 镜像:现在就下载 OpenBSD。


•在线订购 OpenBSD :购买 OpenBSD CD 和其他商品,或者直接为这项事业作出贡献。


•IBM 试用软件:使用 IBM 软件开发您的下一个项目,可直接从 developerWorks 下载这些试用软件。


讨论

•参与 “AIX and UNIX”论坛、developerWorks 博客,并加入 developerWorks 社区。


关于作者

Tim McIntire 是 Cluster Corporation 的咨询师和创始人之一,该公司是 HPCC 软件、支持和咨询的市场领跑者。他还定期向 IBM developerWorks 和 Apple Developer Connection 投稿。Tim 领导 Oceanography 的 Digital Image Analysis Lab 的 Scripps Institution 进行了计算机科学方面的研究工作,在各种期刊上发表了相关研究成果,包括 Concurrency and Computation 和 IEEE Transactions on Geoscience and Remote Sensing。您可以访问 TimMcIntire.net 以了解更多关于 Tim 的信息。
.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-4-29 19:30 , Processed in 0.089938 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表