Acho que o auditd pode ser o que você está procurando. Embora eu não tenha certeza se é capaz de fazer logoff de diffs.
Nós temos um requisito para preencher que nos dará um relatório diário sobre todas as mudanças que foram feitas (e quem as fez) através do protocolo SSH; quer sejam arquivos ou recursos de banco de dados.
As ações de monitoramento do banco de dados não são um problema, com a exceção de que temos cerca de 4.000 consultas por segundo e o registro de cada uma apenas para capturar consultas de um determinado usuário ou host requer algum planejamento. Mas isso pode ser feito, então estou bem com isso.
Temos alguns desenvolvedores seniores que têm acesso ssh a servidores da Web de produção por vários motivos. Os arquivos podem ser editados usando o VIM ou outros editores de texto comuns, como o Pico, mas um sistema de implantação deve ser usado em seu lugar. Precisamos observar e relatar quando o ambiente da Web é modificado fora desse processo de implantação.
Nossa estrutura de diretório da web é preenchida com mais de 5.000.000 de arquivos e pastas diferentes, alguns diretórios possuem tantos arquivos, o comando "ls" quebra ou simplesmente trava. Este é um sistema de CRM herdado, mas sua produção ao vivo. Por esse motivo, utilitários como ossec hids, inotify ou outros processos de monitoramento de sistema / arquivo exigiriam muitos recursos para monitoramento e notificação em tempo real.
Em vez de monitorar o sistema de arquivos, deve ser possível simplesmente monitorar o usuário e observar quando eles acessam arquivos ou diretórios dentro de um caminho definido, bem como registrar as alterações que eles fazem.
Quanto aos requisitos, precisamos apresentar um relatório diário de todas as alterações de arquivos e bancos de dados feitas ao longo do dia (via ssh) e, se necessário, produzir as alterações feitas (antes e depois). O script 'script' do utilitário de comando Linux quase nos dá a repetição, exceto que não gosta de funcionar quando o usuário abre determinados programas (vim, etc). Outro método de gravação é necessário.
Surpreende-me que não exista um pacote genuíno que tenha uma solução de monitoramento de usuários baseada em terminal em tempo real, tudo em um; completo com rastreamento de caminho de diretório, acesso a recursos, modificações com controles deslizantes de tempo, histórico de eventos que podem ser filtrados por host ou usuário (local / ldap / etc).
Ou ... existe um?
Acho que o auditd pode ser o que você está procurando. Embora eu não tenha certeza se é capaz de fazer logoff de diffs.