OpenBSD,FreeBSD:您的更新理念?


14

我已经使用FreeBSD大约5年了-服务器/桌面-而且我倾向于随身携带我的apt-get / yum升级所有习惯(我也管理Debian / RHEL / Cent盒-我知道,我知道...无论平台如何,其识别力都应该更高。所以通常是:

portsnap fetch
portsnap update
portmanager -u

对于港口

有时后面跟着:

freebsd-update fetch
freebsd-update install

对于系统...等 然后,只需清理所有混乱……如果它们发生了。

我知道,这是一种相当过时的非BSD做事方式。您对BSD包装盒的看法是什么?您是否运行portaudit / portversion-在仔细考虑后检查输出然后进行更新(执行deinstall ... etc)?

我承认,我是OpenBSD的新手。我看到自己cvsupping端口树,运行“过时”脚本,然后仅升级关键端口---但不考虑内核/二进制文件,仅每六个月升级一次。您是否修补/重新编译/重建内核,二进制文件-为什么?

在BSD机器上对关键服务(相当关键-这不是银行或医院)采取保守的方法是什么?您是否在Linux机器上使用类似的方法?我通常不会接触任何服务器上的内核,除非安全警报使我深感恐惧。

是的,这里有大量的文档和书籍-你们实际上在做什么?假设我们了解基本知识-什么是智慧?用例/环境和方案各不相同,风险/利益相关者/用户也是如此。书和手册页涵盖工具和用途,但缺乏实际应用。如果您知道涵盖本书的内容,则推荐本书!

谢谢阅读!

布布诺夫

结论〜 感谢所有花时间回答此帖子的人。现在,我的总体策略是遵循两个BSD的邮件列表,并且比过去更加挑剔/关注更新。

FreeBSD〜Portaudit是一个很好的答案。通过邮件列表和勤奋的审核,我认为这在这里将非常有用。有趣的是,OpenBSD与FreeBSD之间对端口的不同强调。

OpenBSD〜将遵循邮件列表,并在认为关键的位置使用软件包工具(pkg_info和pkg_add -u)。升级:看来您每年至少需要升级一次。他们支持最新版本,再加上一个后背-所以现在是4.8和4.7。

再次感谢。

Answers:


9

确保您经常检查安装的端口中是否存在易受攻击的软件包:portaudit -Fda


1
这是* BSD的必备功能。我强烈建议将其放在每晚的crontab中,以便每天早晨通过电子邮件向您发送带有安全修复程序的端口。
Andrew M.

1
但这是根据波迪特的建议行事的问题。通过阅读这里的答案,大多数人建议除非绝对必要,否则就不要管它了。我听过一些管理员声称一切都应该不断更新的信息,这让我感到震惊,这是一种打破常规的好方法。
布本诺夫2010年

我将针对FreeBSD采纳此建议。谢谢。离开OpenBSD
Bubnoff 2010年

4

我不确定是否有特定的“ BSD方式”来执行此类操作。一切都取决于知道要更新和测试的内容-通用的sysadmin内容。幸运的是,freebsd-updateportsnap使“知道什么”变得相当琐碎。

但是,由于您要求提供详细信息,所以当我放牧大量FreeBSD机器时,它们都是集群中的所有节点。独立的机器并没有什么不同,但是我想您可以像生产服务那样模糊地进行“开发”。最后,拥有独立的测试和生产环境总是一个好主意。

在集群情况下:

  • 每台计算机都通过NFS 挂载/ usr / src/ usr / obj/ usr / ports
  • 根据您的预算,您可以拥有一个暂存/构建机器,也可以将一个群集节点指定为暂存/构建节点。
  • 登台节点具有/ usr / ports的不同副本
  • 登台节点每晚都会通过cvsup更新src-allports-all
  • 如果需要进行更新,则将暂存节点移出循环,然后将运行buildworldinstallworldportupgrade
  • 过渡节点将被彻底测试。
  • / usr / ports将在NFS主机上交换
  • 每个集群节点都可以通过installworldportupgrade进行轮换,进行测试,然后再轮回

显然,这是在系统更新和端口更新的情况下进行的,但是更新软件包或系统的过程非常相似。

如果使用两台机器完成此操作,则您可能会轮流使用每台机器作为生产或暂存,或者只是从暂存更新生产。

您可以从cvs日志中跟踪更改,并检查是否在/ usr / src / UPDATING/ usr / ports / UPDATING中获得了特定的更新,这两个更新都是从cvsup自动更新的。

如果您不使用cvsup(现在没有足够的理由),您只需要找到其他方法来跟踪所需的更新即可。您可以邮寄一份freebsd-update想要对自己进行的更改的列表,并关注安全勘误页面。


我喜欢“分期”对“生产”的想法。有了虚拟化,如今几乎没有任何借口。感谢您的回复。
布本诺夫2010年

是的,如果您必须处理,那么它非常适合“ devops”类型的东西(据我了解)。
DF 2010年

4

OpenBSD更新理念

这是我更新OpenBSD的方法

保持最新的安全发布/补丁程序:

  • BASE(即OpenBSD开发团队在其源代码树中维护的内容)
  • 软件包/端口(即,安装在BASE之上的软件应用程序)

更新步骤:

  • 相同的操作系统版本
  • 新操作系统版本

基础

一种。遵循相关的邮件列表 -我观看squish.net的每日摘要,以及Tech和Misc邮件列表上显示的一般方向。

b。遵循Unix相关的安全公告网站/邮件列表。

C。维护使用cvsync本地CVS副本

d。从上面构建稳定的发行版

发布安全更新后,我们将使用具有该版本OS /漏洞的计算机的配置文件评估实际的安全问题。如果该漏洞相关,我们将执行“相同版本升级过程”。

包裹/港口

跟踪端口/软件包的安全更新更加困难,但是,如果它对于在我们的基础结构中至关重要,那么以与BASE类似的方式进行跟踪就足够重要了。

  • 获取特定应用程序的邮件列表(保持上游更改的选项卡(与OpenBSD项目无关)是我们的责任)。

  • 进入安全位置的分发列表,例如CERT,在应用等上发布漏洞发现。

升级程序

显然,在生产计算机上进行安装之前,请先在单独的硬件(或VM)上构建和测试安装过程。对我们来说幸运的是,我们在许多方面都有冗余的主机,因此可以在最少的服务停机时间内进行部署。由于OpenBSD支持广泛的硬件,因此我们可以将服务器级设备部署到我们的主机,将低端台式机部署为我们的冗余主机(或者在更新周期内,我们搭建一个临时盒子来填充主机)。

我们的更新过程在很大程度上取决于将端口/软件包系统用于非BASE软件。我们从源代码安装软件的两个主机很难在OS的版本更新之间进行更新。

相同的操作系统更新

对于BASE OS,仅在旧的二进制文件上安装新的二进制文件就可以继续获得成功。最好,我们备份所有操作系统和应用程序配置/数据文件,格式化并重新安装修补的操作系统,然后重新安装软件包(保留原始数据)

在我们已部署的OpenBSD主机(30台以上)和经验中,备份配置和数据并不困难。对于我们的防火墙,所有数据都在配置和日志文件中。

对于端口/软件包-更改很简单,我们修改自己的端口并从中构建软件包。拥有更新的端口可以简化上述过程。

新操作系统更新

在OS版本之间,我们安装了Sketch中的所有内容。

我确定那里有足够的文档来说明该过程,但实际上,我们构建的参考计算机的配置与要替换的系统相同。部署主机之前,请先进行必要的测试。

我们从参考主机备份配置,然后在生产主机上安装OpenBSD,在其上还原“已验证”配置(此后再次运行相同的验证测试。)


谢谢!那就是我要去的方向。按照列表,使用冗余主机。
布本诺夫(Bubnoff)2010年

3

对于OpenBSD,至少:

  • 软件包是ports系统的最终产品;如果需要在端口上运行,应该很少。
  • -release和-stable(通常)被及时冻结,并且不时进行一些更新。
  • -current定期更新。如果您确实需要最新的软件包,这就是方法。
  • 保持一致:-release / stable系统坚持使用-release / stable软件包...-当前系统运行-current软件包

常见问题15,关于端口和软件包


是的,似乎OpenBSD的开发人员/维护人员鼓励在端口上使用软件包,因为无论如何,这些端口都会在安装前生成软件包。但是端口树有一个审核脚本(./out_of_date)...软件包的相似之处是什么?是OpenBSD的portaudit ...还是您只是遵循邮件列表并手动升级软件包?
布本诺夫2010年

就个人而言,对于我来说,-current每个月都是“ pkg_add -u -Dupdate,updatedepends”。我承认我从来没有像那样彻底使用过端口;通常只是将其打开;如果需要,请对我进行更新。我给那些其他脚本留下了印象,但同样,我很少使用ports系统。至于审计,这一切都是由港口团队完成的,当然还有其他贡献者。
lonerman 2010年

@Bubnoff如果您将-stable更新到最新版本,则将拥有该版本的所有已发布安全补丁。(与-current不同,它也包括非安全更新)。
WhyNotHugo 2013年

@雨果-谢谢!那是个很好的观点。我必须将其写入服务器构建文档中。
Bubnoff

2

如果没有安全性问题或功能受阻的错误,请不要理会。可能每3-6个月检查一次更新,以免您落后不大,否则请别管任何事情。

如果没有损坏,请不要修复。


4
3-6个月?那么Apache / lighttp或任何前端网络应用CMS等呢?你不担心这些吗?否则...我明白你的意思。
布本诺夫(Bubnoff)2010年

@Bubnoff OpenBSD带有自HTTP 1.x衍生的自定义httpd。Apache提供的大多数更新甚至都不适用。
Benoit 2010年

我明白那个。但是OpenBSD确实提供了对电流的更新,后来又稳定了下来。但这仍然使软件包本身留下了...使用Apache的应用可能需要更新。还是只是每六个月升级一次?
布本诺夫2010年

这是我的方法。我很少在生产系统上的端口上安装任何东西,所以我真正需要做的只是基本安装和软件包。我遵循errata(openbsd.org/errata.html)和已安装的所有软件包的相关邮件列表。如果在顶部安装了其他内容(例如CMS系统),则会分别进行跟踪和维护。如果确实需要修补某些重要内容,则可以在测试系统上构建补丁,然后将其复制过来。

1

我更喜欢portupgrade用于升级端口,并且仅在绝对必要时才执行此操作,例如,在端口中发现漏洞或需要新功能时。

至于升级系统,我通常使用来从源进行重建make buildworld。我从未有过这种方法的任何问题。


1
许多人似乎更喜欢portupgrade而不是portmanager。portupgrade是两者中更成熟的吗?看起来portmanager尚未达到1.0。
Bubnoff 2010年

1
是的,portupgrade已经存在了很长时间,并且似乎得到了最积极的开发和支持。我知道还有其他端口管理工具,但是portupgrade是列表中最常提及的工具。我发现,从04年开始,这两者之间就进行了讨论- 名单
DF 2010年

我使用相同的方法,这主要是因为从4.x时代开始使用FreeBSD,当时buildworld和portupgrade是最好/唯一的选择。如果您有时间运行它们并有时间学习该过程,它们今天仍然可以很好地工作。另外,我始终以-Os优化,更小/更快的系统进行构建。
克里斯·S
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.