我运行 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
。- 在这些命令中,
update
和upgrade
似乎分别运行固件更新/升级(根据 configd 模板中的描述)。这些术语似乎在apt
Linux 上的用法很像:更新检查有哪些新版本可用,升级安装它们。但是,任何一项操作(可能,但不一定)都会重新启动系统。 - 检查新版本似乎正在运行
/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
)的输出重定向到文件或其他持久存储,以便您可以验证更新是否成功,如果没有成功,则可以有一个起点来查找错误。