把一个完整的linux服务器放在源代码pipe理(git)

我正在考虑使用git将我的整个Linux服务器置于版本控制之下。 其原因是,这可能是检测恶意修改/ rootkit的最简单方法。 所有我会天真地认为是必要的,以检查系统的完整性:每周安装Linux分区使用救援系统,检查是否git存储库尚未尝试,然后发出git状态来检测系统所做的任何更改。

除了磁盘空间明显的浪费之外,还有其他的负面影响吗?

这是一个完全疯狂的想法?

这是否是一个安全的方式来检查rootkit,因为我很可能至less要排除/ dev和/ proc?

    这是一个“坏主意”(tm)。 除此之外,你的版本库会运行的很慢,而且随着每一个版本的修改都会变得更糟。

    尝试集中pipe理,如木偶/ cfengine /厨师。 这将保持你所期望的事情,并恢复意外的变化。

    把它与像iwatch这样的东西结合起来,以获得未经授权的文件更改的电子邮件。

    如果需要推出自定义应用程序,再结合rpm / deb文件。

    现在抛出一些像rkhunter或chkrootkit踢踢球,你应该很好去。

    任务完成。

    另一种方法是设置tripwire ,这是一个GPL的软件,可以通过系统中所有重要文件的蜘蛛,并确定哪些已经被定义为不可接受。 更改可以简单定义为mtime,通过inode编号,一直到密码强大的校验和。

    如果您不想每天晚上都收到有关/var/run中更改的文件, /etc中的DHCP客户端文件中的更改/etc ,那么需要进行一些设置和调整,但是如果您确实需要那个麻烦,确实可以非常有帮助。

    文件属性数据库使用机器知道的密钥签名,这有助于您确信没有工具恶意更改数据库或tripwire二进制文件。 为了完全确定,您可以将tripwire工具和数据库的副本刻录到只读介质,该介质可以安装在服务器上,用于validation自刻录光盘以来所做的所有更改(如果需要完整的取证分析)。

    如果要这样做,在机器投入生产之前build立并运行tripwire是非常重要的,否则你永远无法确定一些恶意用户是否有机会感染机器被绊了一跤。

    @Sirex已经提供了一个非常好的答案,但是如果你想进一步提高安全性,处理这个问题的最好方法就是先检测然后再检测。

    尝试设置一个系统,只读/挂载文件系统。 使/ tmp独立的ramfs挂载noexec,nodev选项。 为了使系统正常工作,你只需要将/ var挂载为读写。 所以在/ var下用rw,noexec,nodev挂载一个fs,并删除/ var / tmp(afaik,守护程序很less需要这个configuration)的写权限。 同时使用内核的安全补丁来进一步限制用户对资源的访问,例如尝试使用grsec。 尽可能使用限制性最强的防火墙。

    一些发行版提供了关于系统强化的大量文档。 例如:

    • 保护Debian手册
    • 强化Debian Wiki

    我不认为这可能会起作用,但作为一个实验,我想看看如果只用/ etc文件夹来做这件事会发生什么。 这是大多数configuration信息保存的地方。

    我认为分析工具在系统中所做的更改是个好主意:

    1. 在虚拟机中安装裸Linux
    2. 初始化root git
    3. 安装你想分析的工具
    4. 查看系统中所做的所有更改

    …删除VM

    你将不得不添加很多文件夹到.gitignore文件,虽然像PROC等。