tripwire:忽略根文件夹的更改时间戳

tripwire:忽略根文件夹的更改时间戳

每次我更新数据库时:

tripwire --check --interactive

但我仍然收到 Tripwire 的通知,告诉我情况/root已发生变化。

-------------------------------------------------------------------------------
Rule Name: Root config files (/root)
Severity Level: 100
-------------------------------------------------------------------------------
  ----------------------------------------
  Modified Objects: 1
  ----------------------------------------

Modified object name:  /root

  Property:            Expected                    Observed                    
  -------------        -----------                 -----------                 
  Object Type          Directory                   Directory                   
  Device Number        2049                        2049                        
  File Device Number   0                           0                           
  Inode Number         1572865                     1572865                     
  Mode                 drwx------                  drwx------                  
  Num Links            8                           8                           
  UID                  root (0)                    root (0)                    
  GID                  root (0)                    root (0)                    
  Size                 4096                        4096                        
* Modify Time          Fri Jan 11 18:45:54 2019    Sat Jan 12 03:46:50 2019    
* Change Time          Fri Jan 11 18:45:54 2019    Sat Jan 12 03:46:50 2019    
  Blocks               8                           8  

这是全新安装后的策略,我只是删除了,.bash_history 因为我不知道如何从该文件中的“不良更改”中识别我自己的更改:


# These files change the behavior of the root account
(
  rulename = "Root config files",
  severity = 100
)
{
        /root                           -> $(SEC_CRIT) ; # Catch all additions to /root
        /root/test_results              -> $(SEC_CONFIG) -s;
        /root/.joe_state                -> $(SEC_CONFIG) -s;
#       /root/mail                      -> $(SEC_CONFIG) ;
#       /root/Mail                      -> $(SEC_CONFIG) ;
#       /root/.xsession-errors          -> $(SEC_CONFIG) ;
#       /root/.xauth                    -> $(SEC_CONFIG) ;
#       /root/.tcshrc                   -> $(SEC_CONFIG) ;
#       /root/.sawfish                  -> $(SEC_CONFIG) ;
#       /root/.pinerc                   -> $(SEC_CONFIG) ;
#       /root/.mc                       -> $(SEC_CONFIG) ;
#       /root/.gnome_private            -> $(SEC_CONFIG) ;
#       /root/.gnome-desktop            -> $(SEC_CONFIG) ;
#       /root/.gnome                    -> $(SEC_CONFIG) ;
#       /root/.esd_auth                 -> $(SEC_CONFIG) ;
#       /root/.elm                      -> $(SEC_CONFIG) ;
#       /root/.cshrc                    -> $(SEC_CONFIG) ;
        /root/.bashrc                   -> $(SEC_CONFIG) ;
#       /root/.bash_profile             -> $(SEC_CONFIG) ;
#       /root/.bash_logout              -> $(SEC_CONFIG) ;
#       /root/.bash_history             -> $(SEC_CONFIG) -s;
        !/root/.bash_history ;
#       /root/.amandahosts              -> $(SEC_CONFIG) ;
#       /root/.addressbook.lu           -> $(SEC_CONFIG) ;
#       /root/.addressbook              -> $(SEC_CONFIG) ;
#       /root/.Xresources               -> $(SEC_CONFIG) ;
#       /root/.Xauthority               -> $(SEC_CONFIG) -i ; # Changes Inode number on login
#       /root/.ICEauthority                 -> $(SEC_CONFIG) ;
}

我不知道是什么原因导致“修改时间变化”,但这很烦人。有没有办法忽略时间变化,但仍然关注根文件夹中删除、添加和修改的文件?

或许/root -> $(SEC_CRIT) -m;

但我不知道是否-m也忽略文件更改。

答案1

第一的:这不是直接答案,如何忽略 的时间戳/root,它更多的是一个信息howto configure tripwire to ignore some special changes inside the root folder(因为我仍然没有回答我原来的问题)。

仅看到文件夹上的时间戳更改而不知道该文件夹内发生了什么变化仍然令人沮丧。在(参见评论)的帮助下,inotify我能够识别根内部的一些变化。

现在这里有一些示例,可能会导致根更改:

  • 来自 joe 等编辑器的临时文件(joe 创建末尾带有 ~ 的文件,以保存最后的更改)
  • cronjobs,脚本在根目录中保存/更新某些内容
  • /root/.cache/使用像 mc(午夜指挥官)这样的程序使用/root/.cache/mc
  • /root/.config使用htop 或 mc 等程序
  • /root/.local/使用像 mc ( /root/.local/share/mc)的程序
  • 变化于/root/.bash_history
  • 编辑乔使用/root/.joe_state

当然,有无数的事情可能会导致 root 内部发生变化,inotify 是识别这些变化的好帮手。

在我的特殊情况下,我停止了 Tripwire 抱怨我对这个配置的更改:

        /root -> $(SEC_CONFIG) ; # Catch all additions to /root
        !/root/.bash_history ;
        !/root/.joe_state ;
        /root/.cache  -> $(SEC_CONFIG) ;
        /root/.config -> $(SEC_CONFIG) ;
        /root/.local  -> $(SEC_CONFIG) ;

/root应该是$(SEC_CRIT),但就我而言,大多数事情都是以 root 身份完成的,无论这是否不好,所以为了让 tripwire 更安静一点,我现在用 use 来$(SEC_CONFIG)代替。

当然,我们应该提到,很多这样的问题可以通过不以 root 身份工作并使用 sudo 代替。但如果你不能或不想,你必须关心 root 内部发生的所有变化,这可能是非常西西弗斯式的挑战。

相关内容