Registrando uma atividade de “pessoas” no Linux

10

Então eu li muitos posts relacionados a isso e acabei de chegar mais confuso do que antes. Existem recomendações para várias ferramentas, incluindo ttyrec, snoopy, acct, rootsh, sudosh, ttyrpld, auditoria unix e muito mais.

No meu caso, eu quero ser capaz de registrar todos os comandos executados em um sistema (como o histórico com timestamps ativados), mas também quero saber quem fez o quê? No entanto, todos nós fazemos login via ssh para o mesmo pequeno subconjunto de contas de usuário (dependendo do que estamos fazendo). Como posso obter um registro de comandos incluindo as informações que um "quem" me fornecerá (em relação à conexão) para que eu possa rastrear a ação para uma pessoa específica como um posicionado apenas para um "usuário" genérico?

    
por Ashimema 10.05.2011 / 11:51

3 respostas

9

O pacote auditd é projetado para isso, você pode usar o PAM para atribuir a cada sessão uma ID de sessão para poder rastrear a atividade em uma conta de volta ao login original (e verificar o log de login para determinar onde a pessoa se conectou in from) e use o comando ausearch para localizar os eventos nos quais você está interessado. É possível ler um guia bastante abrangente aqui embora alguns dos detalhes mais precisos precisem ser alterados para corresponder à sua distribuição. Redhat tem um site com uma FAQ e alguns outros documentos aqui .

Como isso não depende de tentar registrar comandos digitados em shells ou gravar o histórico de comandos dos usuários, ele deve registrar coisas como abrir o vi (que pode ser feito em X ou em screen ), escrever um script (talvez um caractere por vez com comandos de cortar / colar do vi e algumas execuções de :.!/usr/games/fortune para obter alguns dados de origem que talvez você não consiga registrar) e, em seguida, executar o comando :%!/bin/bash .

    
por 10.05.2011 / 14:18
4

Já existe uma variedade de ferramentas à sua disposição, que sua pergunta (e essas respostas) sugere como histórico, snoopy, auditd, sudo logs, etc ... mas se você tem um "Subconjunto de contas" as pessoas são usando, não há como o servidor dizer quem fez o quê. A única maneira de saber especificamente quem fez isso é se os usuários tiverem seus próprios computadores que usam especificamente e usarem keyloggers para dizer o que estavam digitando fisicamente no teclado.

Sempre que você compartilha contas, não é possível saber o que realmente está acontecendo, já que você precisaria de mais provas de quem estava usando sua conta root, ou a conta de ganho ou o que o seu pessoal estivesse fazendo. Se você estiver tentando investigar o que aconteceu em um incidente específico, talvez seja necessário revisar suas políticas e procedimentos de acesso, seus procedimentos de recuperação e avaliar seus funcionários e / ou se envolver novamente em reciclagem, se necessário (ou em sua confiabilidade com contas confidenciais). do que se concentrar diretamente em caçar quem fez alguma coisa, pois pode sugar mais recursos do que você pode ganhar ao encontrar a pessoa que fez isso.

Caso contrário, você pode querer investigar técnicas de investigação forense para rastrear o que aconteceu (imagem da unidade, rastreamento de log, etc.) Se você não estiver investigando um incidente, analise suas políticas e institua melhor rastreamento e verificação de conta ( somente você tem root, somente Bob usa sua conta usando o sudo para ter acesso a privilégios mais altos, instala e monitora o auditd, etc.) e tome cuidado para não fazer com que o seu círculo de confiança se sinta preso a um microscópio ou você pode alienar as pessoas tentando realizar seus trabalhos (ou impedi-los de realizar seus trabalhos).

    
por 10.05.2011 / 14:38
2

O Linux auditd ( link ) lhe dará mais poder em ver quem fez o quê. Você tem mais sobre isso na resposta do DerfK.

No entanto, nada dirá a você, que efetuou login como webadmin, se houver n pessoas que tenham acesso à conta webadmin. Eu sugeriria usar contas nomeadas para cada usuário e usar su - ou sudo para executar comandos da conta "função".

    
por 10.05.2011 / 14:21