配置 OPNsense 以检查更新并自动安装

配置 OPNsense 以检查更新并自动安装

我运行 OPNsense 以及一些带有 Webmin 的 Linux 系统。

Webmin 有一个选项可以定期检查更新并自动安装(如果我没记错的话,这可以针对所有更新执行,也可以只针对与安全相关的更新执行)。这可确保系统始终保持最新状态,或至少安装了所有安全修复程序。

另一方面,OPNsense 似乎没有这个选项(如果我错了,请纠正我)。但是,如果可以通过命令行检查更新并安装它们,而无需用户输入,那么应该可以将其作为 cron 作业运行。

为此我需要运行什么命令?(或者有更简单的方法?)

顺便说一句,有关自动化优缺点的讨论,请参阅https://security.stackexchange.com/q/183173/49551

答案1

总结:

/usr/local/opnsense/scripts/firmware/update.sh将更新至最新可用固件。为了同时更新 Web GUI 中的更改日志,还请运行/usr/local/opnsense/scripts/firmware/check.sh

完整答案和背景:

  • opnsense-update根据其文档,它是更新 OPNsense 的工具。当不使用命令行选项调用时,它只会报告Nothing to do,但它被下面提到的几个脚本使用。
  • 可以从 GUI 触发的操作存储在 configd 模板中,该模板位于/usr/local/opnsense/service/conf/actions.d/。固件更新的模板是actions_firmware.conf
  • actions_firmware.conf有一些操作看起来与固件升级有关。所有这些操作似乎都运行包装脚本,最终运行另一个脚本/usr/local/opnsense/scripts/firmware/$COMMAND.sh
  • 在这些命令中,updateupgrade似乎分别运行固件更新/升级(根据 configd 模板中的描述)。这些术语似乎在aptLinux 上的用法很像:更新检查有哪些新版本可用,升级安装它们。但是,任何一项操作(可能,但不一定)都会重新启动系统。
  • 检查新版本似乎正在运行/usr/local/opnsense/scripts/firmware/check.sh。该脚本会检查新版本(并更新 Web GUI 中的更改日志),但不会安装它们。它始终报告成功,无论检查是否成功,以及是否有新版本可用。
  • 当有更新可用时,选择从 GUI 安装似乎可以运行/usr/local/opnsense/scripts/firmware/update.sh。此脚本会检查是否有新更新,如果有更新,则安装最新更新。在最新版本上运行时,此脚本只会生成一些输出,而不会更改任何内容。update.sh在未运行之前运行check.sh将更新系统,但不会更新 Web GUI 中的更改日志。

因此,根据我的研究,该命令似乎是:

/usr/local/opnsense/scripts/firmware/update.sh

每 24 小时通过 cron 作业运行一次即可让您了解最新情况。

对于成熟的脚本,我另外建议:

  • 也可以在之前或之后运行check.sh,因此 Web GUI 中的更改日志也保持最新。
  • 将至少update.sh(也可能check.sh)的输出重定向到文件或其他持久存储,以便您可以验证更新是否成功,如果没有成功,则可以有一个起点来查找错误。

相关内容