监视服务器以了解自动化软件以外的更改

我工作的公司目前正在研究为我们的服务器(所有Ubuntu / FreeBSD)部署集中式自动化系统(如Salt或Puppet)。 我们可能会跟盐一起去,但我认为这与我的问题无关。

我的问题:有没有一种好的方法来监控机器上是否包含自动化系统中未包含的本地更改?

例如:为了快速修复,某人在给定机器上启动了服务或修改了configuration文件。 有没有办法使用Salt / Puppet /什么来检查这些东西? 或者我需要使用像AIDE这样的外部程序吗?

您可以使用tripwire监视服务器上所有相关文件的更改。 另一方面,在每次自动configuration更改之后,您必须重置这些行程。

你可以用find(1)和md5(1)编写一个脚本,将所有相关文件的MD5sum进行比较,并将它们与异地存储的MD5sum进行比较。

与Tripwire的build议一样,我一直在新系统上实施AIDE 。 这在您的环境中的两个平台上都可用。

助手将使用aide.conf来确定要监视的文件/目录以及如何。 写一个可以设置aide.conf的Puppet模板是不可能的,而不需要查看使用rpm创build(并且可以validation)的directores /文件。

另一方面,你可以列出你想要监视的文件…

为了重新初始化包含更新的Aide DB,当通过Puppet运行yum(然后新创build的数据库需要移动到位)时,需要运行aide –init。 助手花了很长时间来运行这个初始化,这是站不住脚的(对我们来说)。 你的情况可能没有问题。

善待助理,不要成为一个资源。 http://www.howtoforge.com提出了一个很好的-19因素。

我真正喜欢盐的东西是状态testing:

# salt \* state.highstate test=True 

给你一个很好的着色报告,告诉你什么符合你定义的状态,而不实际应用这些变化。 这给了你想要的东西,它告诉你你的系统状态偏离了自动化系统所希望的状态。 这样做是有充分的理由的,也许你正在学习盐或者有一个微妙的遗留系统,不想全部用自动化系统。 越多越好,越好越好,但这意味着你可以在学习的时候有机地增长。

http://docs.saltstack.com/ref/states/testing.html

不知道您是否已经find了解决scheme,但是您可以使用Metafor Software来监视对所有相关文件和包的更改。

这比AIDE要容易得多,比Tripwire便宜(Metafor是免费的Beta版本)。

除了监视自动化系统中未包含的更改外,您还可以使用Metafor在Salt / Puppet运行后validation服务器的真实状态。