Como posso usar o ausearch para registrar o IP de um usuário quando ele modifica um arquivo por SSH?

Como posso usar o ausearch para registrar o IP de um usuário quando ele modifica um arquivo por SSH?

Minha equipe faz login em um servidor de desenvolvimento usando a mesma senha root; não configuramos contas de usuário separadas.

Agora estou tentando criar um log de alterações de arquivos e quero distinguir entre diferentes autores, mas ausearch sempre retorna o nome do usuário (portanto, "root" sempre), mesmo quando eu passo a regra name_format=numeric, que deveria expor o Endereço IP em vez de "root".

Responder1

NOTA: Esta pergunta também foi feita pelo OP em outro local online. Esta é uma versão editada da minha resposta naquele outro local. A inconveniência de vários usuários fazerem login diretamente como root já foi abordada lá e não precisa ser revisada.

Pelo que entendi, você está perguntando como fazer com que os logs de auditoria mostrem de qual endereço IP cada ação registrada foi realizada. Sua frustração é que a maioria das linhas de auditoria nem sequer possui campos hostnamee addr, e as poucas que possuem, em sua maioria, se parecem com isto:

node=192.168.33.9 type=USER_START msg=audit(1422241281.664:263): pid=5912 uid=0 auid=1001 ses=18 msg='op=PAM:session_open acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/4 [...]

ou seja, com desconhecidos hostnamee addrvalores.

O subsistema de auditoria do Linux não preenche automaticamente suas entradas com informações de nome de host/IP associadas; daemons como o sshd precisam fornecê-los explicitamente ao auditd de alguma forma (no caso do sshd, por meio de chamadas PAM):

node=192.168.33.9 type=CRED_ACQ msg=audit(1422240837.085:202): pid=5441 uid=0 auid=501 ses=18 msg='op=PAM:setcred acct="ratb" exe="/usr/sbin/sshd" hostname=canton.local addr=192.168.33.36 terminal=ssh res=success'

Comandos de nível de usuário, como seu editor favorito, não farão isso, pois não se importam de onde você vem.

Como todos estão fazendo login diretamente como o mesmo usuário, você terá que registrar sesnúmeros individuais ("sessões") doUSER_STARTmensagens de auditoria que o sshd emite via PAM e, em seguida, correlacione-as com os sesIDs doSYSCALLmensagens para a atividade que você deseja rastrear. Por exemplo, esta foi a trilha de auditoria echo hi > tmp/testing.txtda mesma sessão SSH acima e, portanto, compartilha o mesmo sesID (18):

node=192.168.33.9 type=PATH msg=audit(1422241924.835:341): item=1 name="tmp/testing.txt" inode=2631940 dev=08:22 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
node=192.168.33.9 type=PATH msg=audit(1422241924.835:341): item=0 name="tmp/" inode=2621477 dev=08:22 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
node=192.168.33.9 type=CWD msg=audit(1422241924.835:341):  cwd="/root"
node=192.168.33.9 type=SYSCALL msg=audit(1422241924.835:341): arch=c000003e syscall=2 success=yes exit=3 a0=bc62a8 a1=241 a2=1b6 a3=10 items=2 ppid=5913 pid=5921 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts4 ses=18 comm="bash" exe="/bin/bash" key=(null)

informação relacionada