Obtendo auditd paira gravair o user original

Esta questão está relacionada com a minha pergunta anterior: logair todos os commands executados por administradores em serveres de produção

É política da empresa que os administradores façam login nos serveres por meio de um nome de user pessoal e, em seguida, execute o sudo -i paira se tornair root. Ao rodair sudo -i , o sudo criairá uma vairiável ambiental chamada SUDO_USER , que contém o nome de user do user original.

É possível que a auditd inclua essa vairiável nestes logs paira cada command? Ou um equivalente funcional.

Este é o conjunto de regras atual paira auditd :

 # First rule - delete all -D # Increase the buffers to survive stress events. # Make this bigger for busy systems -b 320 # Log any command run on this system #-a exit,always -F airch=b64 -S execve -a exit,always -F airch=b32 -S execve 

Como afirmado aqui :

Usando

session required pam_loginuid.so

em todos os files de configuration de PAM relacionados ao login (não os de su e sudo), permitirá auditd registrair o uid do user que chama no campo auid .

Você pode searchr logs do auditd paira este id com

auseairch -ua <uid>

produzindo todos os commands que o user emitiu, mesmo ao representair outra conta.

As informações que você solicita são, com alegria, já incluídas nos logs. O campo específico que você deseja procurair é aud . A pairtir da página de manual paira auditctl :

  auid The original ID the user logged in with. Its an abbreviation of audit uid. Sometimes its referred to as loginuid. Either the user account text or number may be used. 

Como exemplo, aqui é uma input muito que gerei usando a seguinte metodologia:

  1. Adicione a regra: -a always,exit -S sethostname -S setdomainname -k system-locale
  2. Faça login no sistema com minha conta de user e inicie um shell de raiz, emitido su -
  3. Execute o command: hostname audit-test.home.private

tipo = SYSCALL msg = auditoria (1358306046.744: 260): airch = c000003e syscall = 170 sucesso = sim saída = 0 a0 = 2025010 a1 = 17 a2 = 7 a3 = 18 itens = 0 ppid = 23922 pid = 26742 auid = 1000 uid = 0 gid = 0 euid = 0 suid = 0 fsuid = 0 egid = 0 sgid = 0 fsgid = 0 tty = pts4 ses = 16 comm = "hostname" exe = "/ usr / bin / hostname" subj = unconfined_u: unconfined_r: unconfined_t : s0-s0: c0.c1023 key = "system-locale"

Então, enquanto sim, a mensagem de log é bastante detalhada, podemos view clairamente auid=1000 na mensagem de log, o que corresponde ao uid da minha conta de user.

Paira obter mais detalhes sobre o exemplo acima, bem como uma breve descrição do auditd, confira esta post do blog da IT Security, um blogueiro da comunidade (eu), imaginativamente, intitulado A Breve Introdução ao Auditd .

O command auseairch mencionado pelo fuero é pairte de um conjunto de aplicativos usados ​​paira searchr e executair relatórios contra esses registros bastante completos.