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. 2021-0506 安全

对 Jail 进行安全扫描

上一页Capsicum 案例研究:Got下一页展望未来

最后更新于1个月前

  • 原文链接:

  • 作者:BENEDICT REUSCHLING


本专栏介绍了 FreeBSD 中有用、独特或值得了解的 Ports 和软件包。Ports 扩展了基本操作系统的功能,确保你能完成某些任务,或者简单地带来一丝微笑。跟随我们一起探索,也许你会发现一些新鲜的东西。


在本期中,我稍微偏离了介绍多个 Ports 的形式,专注于一个 Port:security/lynis。

Lynis 是一款用于安全审计、加固和合规性测试的工具。Lynis 与其他安全扫描工具不同的是,它尝试检测系统上可用的组件,如 Web 服务器或数据库。若找到这些组件,它会进一步检查它们的漏洞、缺失的补丁等。因此,扫描的内容会根据配置的软件和用途在每个系统上有所不同。例如,你的防火墙主机可能会接受与备份服务器不同的检查。插件扩展了 lynis 的功能,以覆盖特定的软件。扫描结束时会生成一份全面的安全报告,可能会得到你注重安全的上司的表扬,或者是你下一次安全敏感度培训的通知。

作为开源软件以及商业企业工具,它扫描各种操作系统中的安全异常。系统管理员、渗透测试人员、开发者和审计员都可以使用它来评估是否存在漏洞,不仅是已安装的软件,还有它们的配置。由于这包括操作系统以及第三方软件,因此在 FreeBSD jail 中运行它应该是一次有趣的实验。

为此,我从一个刚更新的 FreeBSD 13.0 主机创建了一个 iocage jail。请注意,你可以使用任何其他 jail 管理框架或手动构建一个 jail 来重复这个实验。进入控制台后,我运行了 pkg install lynis,没有安装其他任何东西(甚至没有我喜欢的 shell),只是一个纯净的 jail。这样,我们可以看到 lynis 在默认安装中检测到的内容。如果在安装任何要 jail 的软件之前就出现了某些问题,这就是所有 FreeBSD 13.0 安装(可能包括之前的版本)关心的事情——无论是在 jail 内部还是外部。

在运行扫描之前,我使用“lynis show settings”查看了当前设置。不要担心许可证密钥一行,开源版本的软件没有任何限制,运行起来没有问题。接下来,我通过执行“lynis audit system”开始扫描。

经过一些初始化后,我正确检测到的操作系统版本和硬件平台(amd64)被显示在屏幕上。这个并不意外,但后面有些地方就有趣了。“Boot and Services”部分发现,默认情况下有 10 个服务在运行(在标准 FreeBSD 系统中,使用“service -e”可以显示这些服务)。包括内核在内的八个模块被加载,这些模块实际上是从运行 jail 的主机检测到并转发到 jail 中的。但到目前为止,一切都是绿色的,直到进入“Users, Groups and Authentication”部分,在这里首次出现了红色警告。管理员帐户、唯一的 UID 和登录 shell 都似乎是 lynis 的问题所在。

“Shells”部分列出了未保护的控制台 TTY。请注意,我这里只列出了存在问题的项,其他项要么是可以接受的,要么由于缺少软件而尚未激活。安装额外软件后检查并重新检查扫描结果,看是否有任何可能打开攻击向量的变化,是一种好习惯。

Lynis 不仅会批评你应该做得更好的地方,它还会建议你在“文件系统”部分检查 /tmp 和 /var 挂载点。如果第一次扫描发现了一堆问题,不要气馁。将其视为概览和改进的总体指导。有些问题很容易修复,随后的审计应该会标识出这些问题。如果你将来设置了另一个主机,你可以事先检查这些问题,以避免重复犯同样的错误。

Lynis 报告中的许多部分为空,原因仅仅是我们还没有安装任何东西。如果有一些容易成为典型攻击目标的软件,Lynis 会更彻底地扫描这些,并将附加结果添加到报告中。总体而言,这个 FreeBSD jail 似乎没有太多问题。根据发现的情况,似乎唯一的问题是家庭目录的所有权。由于目前这个 jail 中除了 root 用户之外没有其他用户,所以我并不担心。但我会做个笔记,稍后再检查这个问题。

在“内核加固”部分,列出了应该与默认设置不同的 TCP/IP 相关 sysctl 设置。这意味着例如 net.inet.icmp.drop_redirect 默认设置为 0,但应该设置为 1(启用)。这个设置未启用的原因可能不仅仅是“疏忽”。可能是为了使 FreeBSD 默认在尽可能多的网络环境中正常工作,在这些环境中此选项可能会导致问题或阻止工作。由于列出了整个清单,可以轻松地将每个设置更改为推荐的值,看看网络是否仍然正常运行。如果正常,保持该选项启用是个好主意。

扫描结束时,报告列出了 4 个警告和 15 个建议。最容易修复的警告是最后一个,即运行 pkg audit -F 以获取最新的 Ports 安全漏洞数据库。每个建议和警告中提供的链接提供了更多关于问题及其影响的详细信息。并非所有这些问题都属于“如果我们不立即修复,就会丢失客户数据库”类型。有些是好的系统管理员实践,例如“避免 /tmp 占满”,所以不要仅仅因为它们与安全无关就忽视它们。通常,安全事件的发生不是因为单一问题,而是因为恶意人员能够将几个不相关的问题组合成一个更大的灾难。

对我来说,像 /etc/login.conf 中的 Umask 设置可以更严格,例如 027”这样的项目是值得花时间去探索的。谁知道呢,也许这将成为即将发布的 FreeBSD 版本中的新默认设置(比作为安全公告的一部分更好),一旦安全团队有时间进行审查。

请记住,这个小实验仅涵盖了操作系统,且随着 jail 执行其预定任务,可能会揭示更多内容。随着额外软件和服务的运行,暴露给互联网或本地网络的用户,它意味着需要进行额外的扫描。可以查看 lynis 提供的其他模式,包括渗透测试模式,因为它可能揭示更多的安全待办事项。

Lynis 并不是唯一的工具。明智的安全人员通常会使用多个工具,覆盖更广泛的可能问题,找到(或确认)其他工具的疑虑。像 portsentry、nmap、nessus、snort,以及尚未移植的 terrascan 和 openvas-scanner 等工具,都是很好的工具,可以在为时已晚之前发现并帮助解决潜在的安全问题。总是要对这些工具没有发现所有问题或没有找到最新事件保持怀疑。定期运行它们并不能成为不检查你运行的软件的安全公告并订阅其通知的借口。

哦,我刚意识到我提到了不止一个工具。但我又能做什么,不能把这些只留给自己呢?


BENEDICT REUSCHLING 是 FreeBSD 项目的文档提交者,也是文档工程团队的成员。他是 FreeBSD 基金会董事会的副主席。过去,他曾任两届 FreeBSD 核心团队。他在德国达姆施塔特应用科技大学管理一个大数据集群,还为本科生教授“Unix for Developers”课程。与 Allan Jude 一起,他是每周播客 bsdnow.tv 的主持人。

Security Scanning a Jail