Registre toda a atividade raiz com o nome de usuário original que su'd / sudoed to root

11

Qual é o método preferido para controlar quem está agindo como root nos logs quando o login root está desativado (SSH), mas os usuários podem executar sudo -iou su -se tornar root? Gostaria de seguir todos os comandos com o nome de usuário original também. RHEL 6 ou qualquer rsyslog do Linux, etc.

Gregg Leventhal
fonte

Respostas:

7

Os métodos mais robustos parecem ser auditados:

http://blog.ptsecurity.com/2010/11/requirement-10-track-and-monitor-all.html

O Auditd basicamente intercepta todas as chamadas do sistema e as compara com o seu conjunto de regras. Portanto, em seu /etc/audit/audit.rulesarquivo, você teria algo como o seguinte:

# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.

# First rule - delete all
-D

# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320

# Feel free to add below this line. See auditctl man page
-a always,exit -F euid=0 -F perm=wxa -k ROOT_ACTION

A última regra é a única regra não padrão.

A principal desvantagem dessa abordagem (e a razão pela qual encontrei essa pergunta ao procurar alternativas) é que os arquivos de log não processados ​​são bastante enigmáticos e são úteis apenas após a execução do programa de consulta no arquivo de log não processado: ausearch

Um exemplo de consulta para essa regra seria:

ausearch -ts today -k ROOT_ACTION -f audit_me | aureport -i -f

Uma solução de bom senso provavelmente seria criar um cron que consultaria seus logs de auditoria brutos e os enviaria para sua solução de log.

freb
fonte
Se você está procurando algo que substitui auditd e faz a correlação dos eventos brutos para você, confira: github.com/slackhq/go-audit
FREB
3

Nas distros do Red Hat, você normalmente usa o /var/log/securelog para identificar quem está acessando ou utilizando sudoum sistema Fedora / CentOS / RHEL.

Exemplos

exemplo sudo
$ sudo -Es

resultado do log:

1 de setembro 19:32:51 greeneggs sudo: saml: TTY = pts / 2; DPP = / home / saml; USUÁRIO = raiz; COMANDO = / bin / bash

su exemplo
$ su -

resultado do log:

1 de setembro 19:34:49 greeneggs su: pam_unix (su-l: session): sessão aberta para raiz do usuário por saml (uid = 1000)

slm
fonte
3

Se você tiver usuários cooperantes, poderá configurar o rootsh para registrar tudo o que o usuário raiz digita no syslog.

http://linux.die.net/man/1/rootsh

rootsh rpms estão disponíveis no EPEL.

A versão do sudo no RHEL6 também é capaz de registrar o stdout em um arquivo para cada sessão do sudo. Olhe para a página do manual sudo_plugins.

Nenhuma dessas abordagens é completamente à prova de balas.

Fred, o Cão Maravilha Mágico
fonte