FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD 中文期刊
  • 编辑日志
  • 2025-123 下游项目
    • FreeBSD 发布工程:新主管上任
    • GhostBSD:从易用到挣扎与重生
    • BSD Now 与将来
    • 字符设备驱动教程(第三部分)
    • 学会走路——连接 GPIO 系统
    • FreeBSD 中对 SYN 段的处理
    • FreeBSD 2024 年秋季峰会
  • 2024-1112 虚拟化
    • 字符设备驱动程序教程(第二部分)
    • 面向 Linux 和 Windows 用户的 bhyve
    • Xen 与 FreeBSD
    • Wifibox:一种嵌入式虚拟化无线路由器
    • 嵌入式 FreeBSD:Fabric——起步阶段
    • DGP:一种新的数据包控制方法
    • 会议报告:我在都柏林的 EuroBSDCon 体验
  • 2024-0910 内核开发
    • 字符设备驱动程序教程
    • VPP 移植到了 FreeBSD:基础用法
    • 利用 Kyua 的 Jail 功能提升 FreeBSD 测试套件的并行效率
    • FreeBSD 上的 Valgrind
    • 嵌入式 FreeBSD:探索 bhyve
    • TCP/IP 历险记:FreeBSD TCP 协议栈中的 Pacing
    • 实用软件:实现无纸化(Paperless)
  • 2024-0708 存储与文件系统
    • FreeBSD 中的 NVMe-oF
    • FreeBSD iSCSI 入门
    • 使用 ZFS 原生加密保护数据
    • 嵌入式 FreeBSD:打造自己的镜像
    • TCP LRO 简介
    • 基于 Samba 的时间机器备份
  • 2024-0506 配置管理对决
    • 基本系统中的 mfsBSD
    • rdist
    • Hashicorp Vault
    • 在 GitHub 上向 FreeBSD 提交 PR
    • 悼念 Mike Karels
    • 2024 年 5-6 月来信
    • 嵌入式 FreeBSD 面包板
    • TCP/IP 历险记:TCP BBLog
    • 实用软件:开发定制 Ansible 模块
  • 2024-0304 开发工作流与集成
    • FreeBSD 内核开发工作流程
    • FreeBSD 与 KDE 持续集成(CI)
    • 更现代的内核调试工具
    • 从零开始的 ZFS 镜像及 makefs -t zfs
    • 提升 Git 使用体验
  • 2024-0102 网络(十周年)
    • FreeBSD 中的 RACK 栈和替代 TCP 栈
    • FreeBSD 14 中有关 TCP 的更新
    • if_ovpn 还是 OpenVPN
    • SR-IOV 已成为 FreeBSD 的重要功能
    • FreeBSD 接口 API(IfAPI)
    • BATMAN:更优的可移动热点网络方式
    • 配置自己的 VPN——基于 FreeBSD、Wireguard、IPv6 和广告拦截
    • 实用软件:使用 Zabbix 监控主机
  • 2023-1112 FreeBSD 14.0
    • LinuxBoot:从 Linux 启动 FreeBSD
    • FreeBSD 容器镜像
    • 现在用 Webhook 触发我
    • 新的 Ports 提交者:oel Bodenmann (jbo@freebsd.org)
  • 2023-0910 Port 与软件包
    • 回忆录:与 Warner Losh(@imp)的访谈
    • 在你自己的仓库中定制 Poudriere 源
    • Wazuh 和 MITRE Caldera 在 FreeBSD Jail 中的使用
    • PEP 517
    • CCCamp 2023 旅行报告
  • 2023-0708 容器与云
    • 在 Firecracker 上的 FreeBSD
    • 使用 pot 和 nomad 管理 Jail
    • 会议报告:C 与 BSD 正如拉丁语与我们——一位神学家的旅程
    • 抒怀之旅:与 Doug Rabson 的访谈
    • 基于 Jail 的广告拦截教程
    • 我们收到的来信
  • 2023-0506 FreeBSD 三十周年纪念特刊
    • CheriBSD 近十多年的历程
    • AArch64:成为 FreeBSD 新的一级架构
    • 岁月如梭:我个人的时间线
    • 安装 FreeBSD 1.0:回顾 30 年前
    • ZFS 是如何进入 FreeBSD 的呢?
    • 我不是来自约克郡的,我保证!
    • 回忆录:采访 David Greenman Lawrence
    • FreeBSD 和早期的 Unix 社区
    • 早期的 FreeBSD 移植
    • FreeBSD 30 周年:成功的秘诀
    • FreeBSD 在日本:回忆之旅与今日之实
  • 2023-0304 嵌入式
    • CheriBSD port 和软件包
    • 让我们来试试 ChatGPT
    • GPU 直通
  • 2023-0102 构建 FreEBSD Web 服务器
    • ZFS 的原子 I/O 与 PostgreSQL
    • 虚拟实验室——BSD 编程研讨会
    • ZFS 简介
    • 会议报告:落基山庆祝女性计算机科学家
    • 进行中的工作/征求反馈:数据包批处理
    • 基金会与 FreeBSD 桌面
  • 2022-1112 可观测性和衡量标准
    • 在 FreeBSD 的 DDB 内核调试器中编写自定义命令
    • DTrace:老式跟踪系统的新扩展
    • 基于证书的 Icinga 监控
    • 活动监控脚本(activitymonitor.sh)
    • 实用 IPv6(第四部分)
    • EuroBSDCon 会议报道
    • 实用 Port:Prometheus 的安装与配置
    • 书评:《用火解决问题:管理老化的计算机系统(并为现代系统保驾护航)》Kill It with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones)
  • 2022-0910 安全性
    • CARP 简介
    • 重构内核加密服务框架
    • PAM 小窍门
    • SSH 小窍门
    • 实用 IPv6(第三部分)
    • 书评:Understanding Software Dynamics(深入理解软件性能——一种动态视角)—— Richard L. Sites 著
    • 访谈:保障 FreeBSD 安全性
    • MCH 2022 会议报告
  • 2022-0708 科研、系统与 FreeBSD
    • 在 FreeBSD 上构建 Loom 框架
    • 教授本科生 Unix 课程
    • FreeBSD 入门研讨会
    • 实用 IPv6(第二部分)
    • 在 2022 年及以后推广 FreeBSD
    • 进行中的工作/征求反馈:Socket 缓冲区
    • FreeBSD 开发者峰会报告
    • 支持 Electromagnetic Field 2022
  • 2022-0506 灾难恢复
    • 使用 FreeBSD 构建高弹性的私有云
    • LLDB 14 —— FreeBSD 新调试器
    • 实用 IPv6(第一部分)
    • 利用 netdump(4) 进行事后内核调试
    • 进行中的工作/征求反馈:FreeBSD 启动性能
    • 实用 Port:在 OpenZFS 上设置 NFSv4 文件服务器
  • 2022-0304 ARM64 是一级架构
    • FreeBSD/ARM64 上的数据科学
    • Pinebook Pro 上的 FreeBSD
    • 嵌入式控制器的 ACPI 支持
    • 进行中的工作/征求反馈:Lumina 桌面征集开发人员
    • 实用 Port:如何设置 Apple 时间机器
  • 2022-0102 软件与系统管理
    • 为 FreeBSD Ports 做贡献
    • 使用 Git 贡献到 FreeBSD Ports
    • CBSD:第一部分——生产环境
    • 将 OpenBSD 的 pf syncookie 代码移植到 FreeBSD 的 pf
    • 进行中的工作/征求反馈:mkjail
    • 《编程智慧:编程鬼才的经验和思考》(The Kollected Kode Vicious)书评
    • 会议报告:EuroBSDCon 2021 我的第一次 EuroBSDCon:一位新组织者的视角
  • 2021-1112 存储
    • 开放通道 SSD
    • 构建 FreeBSD 社区
    • 与完美操作系统同行 27 年
    • 进行中的工作/征求反馈:OccamBSD
    • 通过 iSCSI 导入 ZFS ZIL——不要在工作中这样做——就像我做的那样
  • 2021-0910 FreeBSD 开发
    • FreeBSD 代码审查与 git-arc
    • 如何为 FreeBSD 实现简单的 USB 驱动程序
    • 内核开发技巧
    • 程序员编程杂谈
  • 2021-0708 桌面/无线网
    • 通往 FreeBSD 桌面的直线路径
    • FreeBSD 13 中的人机接口设备 (HID) 支持
    • Panfrost 驱动程序
    • 用 Git 更新 FreeBSD
    • FreeBSD 的新面孔
    • 想给你的桌面加点佐料?
  • 2021-0506 安全
    • 七种提升新安装 FreeBSD 安全性的方法
    • copyinout 框架
    • 使用 TLS 改善 NFS 安全性
    • Capsicum 案例研究:Got
    • 对 Jail 进行安全扫描
  • 2021-0304 FreeBSD 13.0
    • 展望未来
    • FreeBSD 13.0 工具链
    • FreeBSD 13.0 中有新加载器吗?
    • TCP Cubic 准备起飞
    • OpenZFS 中的 Zstandard 压缩
    • 会议报告:FreeBSD 供应商峰会
    • Git 不够吗?
  • 2021-0102 案例研究
    • Tarsnap 的 FreeBSD 集群
    • BALLY WULFF
    • Netflix Open Connect
    • FreeBSD 的新面孔
    • 写作学者的 FreeBSD
    • 在世界之巅
  • 2020-1112 工作流/持续集成(CI)
    • FreeBSD Git 快速入门
    • 使用 syzkaller 进行内核 Fuzzing
    • Mastering Vim Quickly 书评
    • 线上会议实用技巧
    • 在控制台上进行网络监控
  • 2020-0910 贡献与入门
    • 采访:Warner Losh,第 2 部分
    • 代码审查
    • 撰写良好的提交消息
    • 如何在不是程序员的情况下做出贡献——成为 FreeBSD 译者
    • 如何成为文档提交者
    • 谷歌编程之夏
    • 为 FreeBSD 期刊撰写文章
    • 你为什么使用 FreeBSD
    • FreeBSD 的新面孔
  • 2020-0708 基准测试/调优
    • FreeBSD Friday
    • 采访:Warner Losh,第 1 部分
    • 构建和运行开源社区
    • 在 FreeBSD 上轻松搭建我的世界(Minecraft)服务器
    • FreeBSD 的新面孔
  • 2020-0506 网络性能
    • 内核中的 TLS 卸载
    • 访谈:Michael W Lucas
    • FreeBSD 桌面发行版
    • 使用 Poudriere 进行 Port 批量管理
    • FreeBSD 的新面孔
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
在GitHub上编辑
导出为 PDF
  1. 2020-0506 网络性能

访谈:Michael W Lucas

上一页内核中的 TLS 卸载下一页FreeBSD 桌面发行版

最后更新于2个月前

  • 原文链接:

  • 作者:Allan Jude & Benedict Reuschling

摘自 BSDNow,第 329 集,录制于 2019 年 12 月。Allan Jude 和 Benedict Reuschling 采访了 Michael W Lucas。

BENEDICT REUSCHLING:Michael W Lucas 曾在这个节目中接受过几次采访。他上回接受采访是几个月前,我们认为您可能想了解他最近在做什么,以及他接下来的计划。以下是这次采访,享受吧!

REUSCHLING:欢迎,Michael!您最近发布了本新书,我相信听众们会想了解一下。能告诉我们这本书的内容吗?我听说它是关于 sudo 的。

MICHAEL W LUCAS:感谢邀请我参加。是的,这本新书是《Sudo Mastery》的第二版。除非您使用 LDAP,否则 sudo 并没有进行过重大变化。但它做了很多小改动,因此,基本上这第二版就是为了跟上这些变化,确保信息准确反映今天的 sudo。我还深入探讨了一些推荐的配置更改。例如,sudo 现在有像校验和验证这样的功能,以确保二进制文件没有被篡改。当然,没人会手动计算每个二进制文件的校验和,更别提每次修补时还要更新它们了。所以,我为流行操作系统编写了一些脚本,用于自动计算所有文件的校验和。

REUSCHLING:哦,这真是很有用。

LUCAS:确实如此。如果您怀疑系统可能遭到外部篡改,校验和验证可能是一个解决方案。而且现在有一些新的调用方法。以前他们有一个工具,可以将 sudoer 文件转换为 LDAP 格式,那非常有用。但现在他们有了一个通用工具,可以将 sudoers 文件与 LDAP 以及 JSON 格式之间相互转换。所以,您可以将 sudoers 文件放入任何您想要的格式。您可以将它传递给审计程序,确保一切符合您的要求。当然,书的封面也非常漂亮。

JUDE:确实!您能解释一下那本美丽封面的不同版本吗?

LUCAS:如果您购买电子书,您将得到一个非常漂亮的封面,基于经典的“狗玩扑克牌”图像。而且既然有人问过,是的,确实有理由说明为什么其中一个 BSD 穿着黑色高领毛衣。还有另一个 BSD 正在悄悄给他递一张王牌。

如果您购买平装本,您会看到封面有一个更完整的版本,硬封面则会覆盖整个封面。如果您有精装本,封面上的封面纸会延续艺术图案到内侧翻页。所以,如果您在寻找既有趣又好看的书,这本书一定能满足您的需求。我对它的效果非常满意。

JUDE:那么,您有一张封面艺术,随着版本的增加增加再增加。接下来您打算做什么呢?

LUCAS:我一直在思考接下来该做什么。我不至于束手无策,因为我有很多想法。但我刚刚完成了一个非常庞大的项目——《jail 书》FreeBSD Mastery Jail。为了写这本书,我写了六本书。那是一个巨大的项目,所有的一切都是为了达到某个特定的目标。此外,在完成这个过程中,我还写了几本小书。我现在没有一个大计划,但我正在努力想出一个总体目标。无论我做什么艺术、书籍之类的,都将为这个目标服务。所以,我确实有一些想法,感谢大家的关注,但我不打算让整个互联网都给我发建议。

REUSCHLING:现在可能已经太晚了! JUDE:说到《jail 书》,几乎所有使用 FreeBSD 的人都会从中学到很多东西,甚至像我这样已经使用了 jail 和 FreeBSD 多年的用户。书中的内容比我脑袋里的还多!在写这本书时,有什么令您惊讶的事情吗?

LUCAS:我从 1995 年末开始使用 FreeBSD,做这项工作迫使我回过头去复习我所知道的一切——而且自 1995 年以来有些东西发生了变化。我学到了很多关于文件系统的小细节。您可以用 DEVD 做一些非常了不起的事情,甚至 nullfs 也很有用。现在 jail 中有些控制非常精细,真是令人惊讶。我记得在过去,System 5 IPC 在 jail 中根本不可能使用,现在你可以为每个 jail 启用/禁用它,甚至可以单独为每个 jail 启用 System 5 IPC 的功能。这是我知道它被实现的原因,因为人们需要它,但我有点害怕去了解为什么有人需要 System 5 共享内存——但不需要信号量。

JUDE:是的,我认为过去的部分原因是,IPC 的命名空间是统一的——你可能希望某个 jail 只能看到其中的一部分。尽管几年前,当我们最终得到了命名空间支持,能够让你在两个不同的 jail 中运行 Postgres,并且它们不会互相覆盖,这个问题可能就不那么严重了。

LUCAS:我起初是这么想的,但这个功能后来得到了演变。所以,这是一种设计决策。我翻阅了 20 年的历史,事情发生的顺序真的非常启发人。这是迭代开发的一个绝佳例子。我的意思是,jail 在 1999 年和 2000 年救了我不少麻烦,它们在过去的几十年里悄悄地发展了起来。简单来说,jail 很难。它们是系统管理中所有知识的结晶。你必须了解文件系统,必须了解升级。如果你有很多 jail,你真的需要一些编排或自动化工具。这些事情很快就会变得非常复杂,因为突然间,你可以在一台主机上运行 500 台虚拟机。你必须管理这 500 台虚拟机,而这真的很糟糕。没有人愿意做这件事。

REUSCHLING:很多人最终会在需要使用 jail 时抓起这本书。

LUCAS:是的,它已经发布了。需要它的人会找到它。不需要的人嘛,他们的生活比我们其他人简单。

JUDE:哦,你知道,当我把 ZedFS 和 jail 结合起来时,我做得有点过头了,直到我需要一个系统,让客户能够上传文件,但确保他们只能上传自己的文件等等。

LUCAS:是的,像这样的需求我一定会放在一个 jail 里。任何面对公众的东西,我都想放到 jail 里。

JUDE:是的,ZedFS 和 jail 能如此契合真的很有趣,考虑到,一方面,Sun 在开发 ZedFS 时将其与 zones 集成,zones 有点像 jail。但它们也有很大的不同,事实证明我们能够将它们很好地对接,我觉得这真的很令人高兴。

LUCAS:是的,我也觉得不错。我认为,使虚拟化能够意识到文件系统的问题并非 zones 独有。它们只是设置了一个可以委托的文件系统,并且可以具有更低级别的权限。

JUDE:真的很有趣,你可以做两者的结合。你可以将一个数据集放入 jail,基本上意味着你将它委托给 jail 中的 root。但然后 jail 中的 root 可以再委托给该 jail 中的个别用户。

LUCAS:确实非常棒。

JUDE:嗯哼

REUSCHLING:有一些用例你通常一开始不会想到,但后来你会发现,哦,是的,这是可能的,我也能看到它的应用场景。

LUCAS:是的,真正的系统管理就是看你拥有的工具,弄清楚如何将它们拼接在一起解决问题。而 ZedFS 是一个很棒的工具。

JUDE:那么,接下来,你是如何意识到世界需要一本关于简单网络管理协议(SNMP)的书的呢?

LUCAS:哦……因为它无处不在,而且现有的书都没让我激动。SNMP 其实并不像你想的那么难。

REUSCHLING:嗯,那就是“S”(简单)的意义吧,对吧?

LUCAS:是的,没错。其实,协议本身非常简单。它有七个部分——就这些。问题在于所有的供应商和实现者对这七个部分所做的事情。无论你多么具体地编写标准,总是有解释的余地。我们需要的不是一本讲它有多么辉煌的书,而是一本讲“这些是组成部分,现状是这样,这里是你如何弄清楚这些东西的书”。

当它正常工作时,它是非常棒的。人们经常用 SNMP 进行监控。SNMP 非常适合网络管理。即使是今天,在与人们交谈和做研究时,还有人说,如果你有一个非常饱和的互联网连接,你可能需要向远程设备发出命令来解决问题。我们有 SNMPv3,很多人对它感到害怕。经过深入了解,我认为,我们只是倒着教它。有时候,它是你唯一的解决方案,我不建议你围绕 SNMP 构建整个网络。但我会说,无论你是网络管理员还是系统管理员,你都需要知道它。有时候你需要那种特定的工具,或者一个工具能解决那些用其他方式很难解决的问题。关于它有太多的困惑了。

JUDE:是的,你知道,它绝对是我工具箱里的一个工具,我不羞于承认我从来没有真正学过它。我只是通过摸索,勉强搞清楚了我需要从中获得的东西。

LUCAS:是的,你可以通过两个数据包找到你需要的信息。

JUDE:对。当我每 30 秒运行一次时,它比使用一些更沉重的东西要好得多。

LUCAS:顺便说一下,我学到的一些东西是,你可以通过 SSH 运行 SNMP 查询。

JUDE:哦哦!

LUCAS:我没有涵盖这一点,因为书已经够大了。但它确实是一些问题的可能解决方案。如果你已经有了证书授权基础设施,你可以通过 TLS 运行 SNMP。

JUDE:那还会通过 UDP 吗,还是在这种情况下会转为 TCP?

LUCAS:它可以使用任何一种。DTLS 是在 UDP 上运行的 TLS。

JUDE:是的,用于数据报。

LUCAS:这里有很多选择。如果我能成功地引导人们,让他们能够把学习协议和学习供应商的奇怪配置分开,那将比一切都值得。

REUSCHLING:在写这本书的研究过程中,你还学到了关于 SNMP 的什么?

LUCAS:嗯,所有的事情都很糟糕,但这并不令人惊讶。让我们看看,很多人用它做了有趣的事情。有来自 MySQL、Postgres 和 Apache 的代理,可以直接插入到 net SNMP 中。所以,你可以轻松地从各种软件中提取统计信息。它是可以扩展的。你可以让 SNMP 在服务器上运行任意命令。这可能是好事,也可能不是,取决于你想要复杂到什么程度。

JUDE:还有图表趋势等等。

LUCAS:哦,是的,是的。当然,监控这些东西的问题在于,你不需要监控它们,直到它们完全出错——我喜欢系统管理!

JUDE:回头看,你的年度计划进行得如何?

LUCAS:嗯,我有很多想做的事情。大约一年前,他们切除了我的一半甲状腺,过去几年里一直困扰我的一些神秘健康问题都解决了。这太棒了!这太好了!这意味着我可以做所有事情。然后我又一次艰难地学到,我可以做很多事情,但不能做所有事情。我原本打算写更多的文字,但我接受了太多的旅行邀请,而旅行让我很不舒服。所以,我决定少旅行,多写书。我靠写字谋生。这是我一直想做的事情。我很幸运能够做到这一点,我只需要站在键盘前,做好工作。

JUDE:那说到这,你能告诉我们你接下来的计划吗?

LUCAS:我有几个关于技术书籍的想法。DNSSEC 的书需要更新。而且随着 DNS over HTTPS 越来越流行,这部分也应该加入其中。

JUDE:尤其是现在我们正处于一个大多数人都在使用它,却不理解这些内容的时代。

LUCAS:是的。

JUDE:人们正在做出一个知情的决定,使用 DOH。

LUCAS:没错。对于生活在审查制度下的人们来说,这是一个很好的即时解决方案。然而,专制和审查国家不会容忍这类问题太长时间。

JUDE:是的,我认为最危险的部分是,它并不是完整的解决方案。如果你仅仅依赖它,你会遇到问题。

LUCAS:是的,确实会遇到很多问题。但我可以写一本关于如何设置它的书。电子邮件也可能是一本有趣的书。如今几乎没有关于如何设置完整电子邮件解决方案的书籍。所以,这是一个可能性。

JUDE:是的,做 DKIM 还不算太难,但新的 DMARC 相关内容让我非常困惑。

LUCAS:我认为电子邮件隐私基本上已经丧失了。即使你自己运行邮件服务器,你也很可能与使用大型商业邮件公司的某些人通信。但尝试自己运行邮件服务器仍然值得,这是我一直在关注的一个话题。我也开始考虑一些 OpenBSD 的事情——每次我提到写一本 OpenBSD 的书时,人们都会跳起来,想要下一本《Absolute OpenBSD》。让我说,没有明确的时间表——我很高兴你们想要,它会来的。

JUDE:那《git commit murder》的续集呢?

LUCAS:它在我的计划之中。我曾在生病时尝试写它。目前,我正努力完成 SNMP 书。非虚构类书籍带来了收入,我很感激有这本书。我并不是看不起它,但我还没有足够多的小说来通过写 git commit 这书谋生。我完成 SNMP 后会很高兴的。

REUSCHLING:今天有什么最后的想法吗,Michael?

LUCAS:我要感谢所有购买书籍的人,感谢你们觉得这些书有帮助。如果你能坚持听完这次采访并且我喋喋不休地说这么久,谢谢你们。

REUSCHLING:感谢你,Michael,感谢你持续的写作和你的书籍。


P.S. 今天,Lucas 发现他有关减少旅行的说法让人不寒而栗。

Interview: Michael W Lucas