FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD 网络文章集锦
  • 2025 年
    • zfs 速查手册
    • FreeBSD 开发计划
    • 谁在使用 FreeBSD(基金会官方版本)
    • FreeBSD 特色开发项目
    • 如何将基于 Electron 的应用程序移植到 FreeBSD
    • FreeBSD:原始操作系统发行版的火炬传承者
    • 浏览 FreeBSD 新的季度和两年一次发布计划
    • FreeBSD 日专访 BSD 守护神 Beastie
  • 2024 年 11 月
    • 苹果的开源基石:macOS 和 iOS 背后的 BSD 传统
    • 在动荡的开源世界中保持稳定:FreeBSD 的持久稳定性
    • 为什么你应该使用 FreeBSD
    • FreeBSD 13.4: 新特性及其发展历程
    • Quantum Leap Research 和 FreeBSD 基金会将投资 75 万美元以改善笔记本电脑支持和用户体验
    • 主权科技基金将投资 68.64 万欧元用于 FreeBSD 基础设施现代化
  • 2024 年 7 月
    • BSD 老将:Michael J. Karels 逝世,享年 68 岁
    • 讣告——Michael "Mike" John Karels
    • 配置自己的 VPN——基于 OpenBSD、Wireguard、IPv6 和广告拦截
    • 如何在 FreeBSD 中指定 CPU 类型
    • 使用 BIOS 引导和 UEFI 引导的 GPT 分区的区别和制作方法
    • 通过替换 ZFS 镜像池中的磁盘来扩容
    • 通过为 ZFS 池配置镜像来消除无效数据的影响
    • FreeBSD Bhyve PCI 直通
    • ZFS 池破坏实验
    • FreeBSD ports 开发技术研究
    • FreeBSD pkg 命令概述
    • portsnap 被淘汰了,本应由 git 代替,但结果我发现自己用的是 got
    • ccache 在构建 FreeBSD 的 buildworld 时的效率
    • Hyper-V FreeBSD 13 安装感想
    • 关于对 FreeBSD 发布计划和生命周期的修订
  • 2023 年 12 月
    • FreeBSD 新手?来参与社区吧
    • 介绍来 FreeBSD 的学生
    • EuroBSDCon 2023 旅行报告——Bojan Novković
    • 什么是开发播客?FreeBSD 项目的演变
    • EuroBSDCon 2023 旅行报告——Mark Johnston
    • TalkDev:探索开源的未来
    • 为什么选择 FreeBSD?Metify 展示迁移到 FreeBSD 如何对两个新产品进行增强
    • FreeBSD 基金会宣布通过 SSDF 认证
    • 2023 年全球开放大会报告
    • FreeBSD v14:恪守类 Unix 操作系统传统,提升安全性与性能
  • 2023 年 9 月
    • 认识 2023 年参与 FreeBSD 谷歌编程之夏项目的学生:Soobin Rho
    • 认识 2023 年参与 FreeBSD 谷歌编程之夏项目的学生:Aymeric Wibo
    • FreeBSD 企业工作组首次会议总结
    • OpenBSD 路由器指南
    • 认识 2023 年 FreeBSD 谷歌编程之夏的学生:Sudhanshu Mohan Kashyap
    • 认识 2023 年夏季滑铁卢大学合作学生:Naman Sood
    • FreeBSD 基金会 2023 年暑期实习生:Jake Freeland
    • 第二次企业工作组会议回顾
    • OpenBSD 与 FreeBSD:有何不同,哪个更好?
  • 2023 年 9 月以前
    • 参与宣传:2023 年 5 月的 FreeBSD 开发者峰会和 BSDCan
    • 恭喜 FreeBSD 迎来 30 周年!为什么开源项目 FreeBSD 能够持续存在
    • 庆祝 FreeBSD 成立 30 周年:许可证
    • 聚集在开放领域工作的公益和慈善基金会
    • 在 Linode 上安装 pfSense
    • 在 FreeBSD 的 jail 中安装 NextCloud
    • 将 FreeBSD 上的 Ansible 主机和客户机都安装在 Jail 中
    • FreeBSD 简介 | BSD.pw 研讨会
    • 如何在 FreeBSD 上安装 Python
    • 升级到 FreeBSD 13.2 的十大理由
    • 采访 FreeBSD 基金会执行董事 Deb Goodkin
    • 我们使用开源的 FreeBSD 作为企业操作系统的 5 个原因
    • 关于 BSD 与 Linux 的典型讨论
    • OpenBSD 太棒了
    • systemd 背后的真正动机
    • systemd 在任何地方都不安全
    • 为什么你应该将所有东西从 Linux 迁移到 BSD
    • 如何在 FreeBSD 上设置一个简单且实际工作的 WireGuard 服务器
    • 选择 FreeBSD 而非 GNU/Linux 的技术性原因
    • GPL 之殇
    • FreeBSD 与研究社区
    • 在 OpenBSD 和 FreeBSD 之间选择的区别
    • FreeBSD 是一个令人惊叹的操作系统
    • 留意日期:2023 年 11 月的自由软件组织厂商峰会
    • JENNY 日常使用的系统:FreeBSD 13.2
    • FreeBSD Ports 中的 OPTIONS 功能介绍——使用 OPTIONS_SET/OPTIONS_UNSET/NO_DIALOG 进行操作和实践
    • FreeBSD Bhyve 上的 PCI 直通
    • 2023 年 FreebBSD 谷歌编程之夏学生介绍:Raghav Sharma
    • 2023 年 7 月软件开发项目进展报道
    • 用于研究的 FreeBSD:CHERI/Morello
    • 在 FreeBSD Jail 中使用 OpenRC 启动并运行 Devuan GNU+Linux 系统
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
在GitHub上编辑
导出为 PDF
  1. 2023 年 9 月以前

OpenBSD 太棒了

上一页关于 BSD 与 Linux 的典型讨论下一页systemd 背后的真正动机

最后更新于1年前

  • 原地址:

  • 译者:ykla & ChatGPT

  • 最后发布日期:2020-11-20

我自 2004 年左右开始专业性的和个人化的使用 OpenBSD,这是一个免费的、多平台的基于 4.4BSD 的类 Unix 操作系统。今天我将分享一些我的经验。

在准备这篇文章时,我意识到很难充分赞扬 OpenBSD 的开发者。这是因为 OpenBSD 非常独特,我认为它相当令人惊叹。它的“辉煌”大部分隐藏在开发者的设计和特定的编码风格中,对于普通用户来说并不可见。你需要理解一些在幕后发生的事情,才能真正的欣赏 OpenBSD!

OpenBSD 安装简单快速,你会惊讶地发现这个系统是多么简单而且设计非常出色。项目从一开始就付出了大量工作,严格遵循了 Unix 哲学。

OpenBSD 在基本系统中附带了许多应用程序,但除了安全功能外,在默认情况下没有启用任何功能,你必须自行启用需要的服务。每个配置文件都遵循相同的语法风格,非常易读,因此非常容易理解和设置。每个参数在手册页中都有很好的文档,并且 OpenBSD 项目认为缺乏文档是“一个 Bug”。这是每个专业程序员都应该采用的做法。

缺乏文档或错误的文档对于具有安全漏洞的运行系统同样危险。原因在于,安全问题有时源于错误的配置。如果你不知道如何设置你的系统,你怎么能确定它是否以容易受到攻击者威胁的方式运行?互联网上的很多垃圾邮件源于配置不当的邮件服务器被攻击者利用而被入侵。

OpenBSD 操作系统内核和基本系统的每一行代码都会由程序员进行安全审计和检查,并且所有代码都遵循一套严格的指导方针和原则,试图消除所有传统的编码错误,因为许多安全漏洞实际上是由程序员的编码错误造成的。

但这还不是全部。让 OpenBSD 变得惊人的另一点是在开发过程中所做的所有安全保护机制,OpenBSD 的开发者在这个领域做了一些非常棒的先进工程!

安全保护机制是一些技术手段,帮助防止攻击者在操作系统上运行恶意代码或利用软件中的安全漏洞或弱点。

如果你正在使用一款软件,比如浏览器,而该浏览器有一个可以被利用的安全漏洞,那么攻击者可能能够访问你的计算机。攻击者在你的计算机上可以造成多大的破坏取决于操作系统的基本安全性。

OpenBSD 在内核和基本系统中内置了许多保护技术,使得攻击者的操作变得非常困难。这意味着攻击者很难通过常规的攻击技术(对于许多其他操作系统如 Microsoft Windows、Linux、Mac OS 等有效的技术)首先获取对你的系统的未经授权访问。这也意味着,即使攻击者尽管这些缓解技术而成功获取对你的系统的访问,他们能够造成的损害也是非常有限的。

这是一些内置在 OpenBSD 操作系统中并默认启用的安全创新功能列表:

  • 在 i386/amd64/sparc64 架构中,内核强制执行 W^X。

  • 自 6.0 版本起,用户空间强制执行 W^X。

  • 默认启用 SROP(sigreturn(2)导向编程)保护措施。

  • 自重定位静态二进制文件的静态 PIE。

  • 堆栈保护器。

  • 大部分基本系统的特权降级和分离是一种政策,没有这些措施,新的功能不会被启用。

  • 仅支持 bcrypt 密码散列,并且根据系统性能自动选择轮次值。

  • 默认在基本系统、软件包和 Ports 上启用 PIE。

  • 在引导时对 C 共享库进行重新排序,即在引导时重新链接 libc.so,使对象随机排序。

  • 系统范围内的沙盒(pledge(2))适用于大部分用户空间,包括 X 服务器的特权部分和大多数面向网络的守护程序。

  • arc4random(3) 支持 rand(3)、random(3)和 drand48(3),并且有经过审核的基本/Ports。软件必须选择确定性破碎的 POSIX 行为。

OpenBSD 是一个强大可靠的操作系统,在设置完成后你可以最小干预地运行它。实际上,它是唯一真正让你可以安心睡眠的操作系统,特别是在运行任何系统关键软件时。

OpenBSD 维护了许多基本系统的便携版本,包括:

  • LibreSSL,一个从 OpenSSL 1.0.1g 分支中复刻出来的免费的 Secure Sockets Layer(SSL)和 Transport Layer Security(TLS)协议的实现。

  • OpenBGPD,一个免费的 Border Gateway Protocol 4(BGP-4)实现。

  • OpenOSPFD,一个免费的 Open Shortest Path First(OSPF)路由协议实现。

  • OpenNTPD,一个简单的替代 ntp.org 的网络时间协议(NTP)守护进程。

  • OpenSMTPD,一个免费的支持 IPv4/IPv6、PAM、Maildir 和虚拟域的 Simple Mail Transfer Protocol(SMTP)守护进程。

  • httpd,一个在 5.6 版本中首次包含的 HTTP 服务器。

  • OpenSSH,一个免费的 Secure Shell(SSH)协议实现。

  • OpenIKED,一个免费的 Internet Key Exchange(IKEv2)协议实现。

  • Common Address Redundancy Protocol(CARP),一个免费的替代 Cisco 专利的 HSRP/VRRP 服务器冗余协议。

  • PF,一个带有 NAT、PAT、QoS 和流量标准化支持的 IPv4/IPv6 有状态防火墙。

  • Unbound,一个 DNS 验证解析器。

  • dhcpd,一个动态主机配置协议(DHCP)服务器。

  • pfsync,一个用于 PF 防火墙的防火墙状态同步协议,使用 CARP 实现高可用性支持。

  • spamd,一个带有灰名单支持的垃圾邮件过滤器,旨在与 PF 防火墙进行互操作。

  • sndio,一个紧凑的音频和 MIDI 框架。

  • Xenocara,一个定制的 X.Org 构建基础设施。

  • cwm,一个堆叠式窗口管理器。

  • tmux,一个虚拟控制台复用器。

  • X.Org 服务器。

  • Clang 编译器。

  • GNU 编译器套件。

  • Perl 编程语言。

  • NSD DNS 服务器。

  • Ncurses 终端处理库。

  • GNU Binutils 工具集。

  • GNU Debugger 调试器。

  • Awk 文本处理工具。

所有这些都包含在操作系统的基本系统中,并且是 OpenBSD 标准安装的一部分。所有基本系统的部分都包含了 OpenBSD 特定的补丁、改进和增强措施,以提高安全性。

当在 Ports 中的应用程序中发现严重的错误或安全漏洞时,它们将在 Port 的“stable”分支中修复。与基本系统相反,“stable” Port 只会为最新发布提供安全后移。这意味着,如果你使用第三方应用程序,你需要检查正确的 Port 分支,并手动构建软件。可以使用 CVS 来保持 Port 的最新状态,并可以订阅 ports-changes 邮件列表以接收与 Port 中应用程序相关的安全公告。

另一个非常有效的解决方案是运行 OpenBSD 的“current”分支。 “current”分支是活跃开发发生的地方,但开发人员非常谨慎,不会引入可能会导致系统出现问题的新功能。 “current”分支有点类似于“滚动发布”模型。

由于 Ports 与第三方供应商提供的软件相关,因此它不会经过与 OpenBSD 基本系统执行的同样全面的安全审计。OpenBSD 项目没有足够的资源来确保与基本系统相同级别的 Port 健壮性和安全性。

这只是 OpenBSD 的一部分创新,更多的创新可以在 OpenBSD 的中找到。其中一些创新得益于 OpenBSD 开发者的工作,已被其他操作系统采用和实现。

除了上述功能之外,截至撰写本文时,OpenBSD 还通过 OpenBSD 提供了超过 9700 个可安装的应用程序。然而,需要注意的是,尽管建议使用预编译的软件包而不是手动从 Ports 构建软件,但 OpenBSD 的“release”和“stable”分支的软件包不会得到更新。这意味着软件包的安全更新只能通过 Port 在“stable”分支运行时获得。

欲了解更多信息,请访问 。

https://unixsheikh.com/articles/openbsd-is-fantastic.html
创新页面
软件包管理器
OpenBSD 项目网站