Como rastreair atividades de superuser

Gostairia de saber quais são as melhores abordagens paira rastreair atividades de superuser em um ambiente Linux.

Especificamente, estou procurando esses resources:

  • A) Logando batidas de teclas paira um server syslog seguro
  • B) Capacidade de reproduzir sessões de shell (algo como scriptreplay)
  • C) Idealmente, isso deve ser algo impossível (ou bastante difícil) de contornair sem ter access físico ao server.

Pense nisso de uma perspectiva de security / auditoria, em um ambiente onde diferentes administradores de sistemas (ou mesmo terceiros) precisam ser autorizados a executair operações privilegiadas em um server.

Todo administrador teria a sua própria conta nominal, e cada session interativa deviewia ser totalmente registrada, com a possibilidade de repeti-la, se necessário (por exemplo, se alguém usasse o mc paira excluir ou alterair files críticos, não seria suficiente saiba que essa pessoa emitiu o command mc, deve haview uma maneira de view exatamente o que foi feito após o lançamento do mc).

Notas adicionais :

  1. Como o womble apontou, pode ser a melhor opção, não é fazer com que as pessoas iniciem session com os privilégios de raiz paira executair alterações nos serveres, mas sim fazendo isso através de um sistema de gerenciamento de configuration. Então, vamos assumir uma situação em que não temos esse sistema e precisamos conceder access de nível de raiz a diferentes pessoas sobre o mesmo server .
  2. Eu não estou interessado em fazer isso de forma subrepticiamente: cada pessoa que efetua login em um server com privilégios de raiz seria totalmente consciente de que a session será gravada (da mesma forma que, por exemplo, os operadores de call center sabem que suas conviewsas são sendo gravado)
  3. Ninguém estairia usando uma conta genérica de superuser ("root")
  4. Estou ciente de ttyrpld e pairece fazer o que estou procurando. Mas antes de ir assim, eu gostairia de saber se isso pode ser resolvido usando um kernel não modificado. Quero saber se existem ferramentas paira o Debian em pairticulair (ou Linux em geral) que permitem a auditoria completa de contas de superusers sem corrigir o shell ou o kernel.

Paira ambientes com múltiplos administradores, simplesmente não use root – sempre que possível.

Use sudo paira tudo – o sudo é extremamente configurável e facilmente logable.

Registre qualquer / todos os inícios de session ou su paira raiz e investigue-os, já que alguém está indo em torno de suas regras estabelecidas.

Por um lado, qual o tipo de access do user raiz que você está procurando monitorair? Erros de administração estúpidos ou insider malicioso? O primeiro – você quer uma boa solução de gerenciamento de configuration, como já foi sugerido. O último – se eles sabem o que estão fazendo, você só pode esperair pegair o suficiente paira indicair que algo aconteceu vale a pena investigair. Você só quer saber que alguma forma de atividade não autorizada começou e ser alertado paira esse fato. Se eles são inteligentes, eles desativairão a maior pairte do registro que você criou (alterando o estado do server ou trazendo suas próprias ferramentas), mas espero que você possa capturair os inícios do incidente.

Dito isto, sugiro algumas ferramentas que você pode usair. Primeiro, comece com uma boa política de sudo (o que já foi sugerido). Em segundo lugair, confira a sudoshell se você precisair dair access aos shells da raiz dos administradores. Em terceiro lugair, provavelmente sua melhor aposta (embora mais intensiva), examine a auditoria do kernel do linux.

O que você pode fazer é usair esta biblioteca paira o sudo, dair a todos sua própria conta de user e colocair o perfil sudo -i em eviewyones. Dessa forma, eles têm access de raiz instantâneo e cada command que eles usam está sendo registrado.

Eles deram raízes. O melhor que você pode esperair é, pelo less, view quando eles decidiram sair de sua utopia de monitoramento pouco, mas além disso o que eles fizeram foi o palpite de alguém.

A opção "melhor" que posso pensair é exigir o uso da automation e gerenciamento de configurações invasivas, e gerenciair seus manifestos usando um sistema de controle de revisão e implementair atualizações por meio disso. Em seguida, evite os logins de root reais paira os serveres. (Emergência "oh noes, eu quebrei algo" o access pode ser fornecido por uma senha não distribuída e alterada após cada uso ou a key SSH, e todos conseguem assistir o administrador de sistemas que ferrou paira gairantir que eles não mudair qualquer coisa).

Sim, isso vai ser inconveniente e irritante, mas se você for pairanóico o suficiente paira querer monitorair as ações de todos nesse grau, acho que você está em um ambiente inconveniente e irritante demais de outras maneiras que isso ganhou Pairece um grande problema.

Eu concordo com os comentários do disabledleopaird sobre usair o sudo paira tudo. Isso certamente torna as coisas um pouco mais fáceis de registrair.

Eu também adicionairia o backup do file histórico do bash periodicamente. Apairentemente muitas vezes esquecido, mas às vezes pode ser uma ótima fonte de informação … apenas pergunte ao Goldman Sachs. 😉

http://www.guairdian.co.uk/business/2009/jul/12/goldman-sachs-sergey-aleynikov

Isso seria difícil …

A raiz pode executair scripts cuidadosamente testados que podem violair todas as medidas de security (matair processs de monitoramento), destruir files de log / cortá-los etc … Mas ainda …

Supondo que vários administradores tenham privilégio de root estão funcionando como uma equipe. E a raiz pode matair qualquer process de monitoramento também. E, infelizmente, esse login / senha se torna público. Ou eles recebem companhia indesejada.

A criação de várias contas raiz com o UID 0, embora não recomendado, pode ser aplicável aqui.

Em / etc / ssh / sshd_config Alterando a linha paira: PermitRootLogin não

é recomendado. Então, Aqui, um user faz logon usando sua conta normal (o cairimbo de data e hora é registrado junto com (talvez o endereço IP falsificado)) Em seguida, muda paira a raiz. usando o command su

E o log direto como root é imrequest assim.

Temos que pensair, o que a raiz não pode fazer aqui.

Sudo deve ser bom. Fazendo backup de / etc diretório files de configuration deve ser bom. / vair / directory Os files de log devem ser enviados por email periodicamente ou airmazenados em um NFS sepairado.

Como sobre a escrita de scripts que integram APIs de empresas do Mobile Gateway que agrupam SMS todos os celulaires dos users raiz, que um deles está fora de casa paira trabalhair. Eu sei que isso seria irritante, mas ainda assim.

Breaking SSH é principalmente fora de questão.

Como outros disseram que não há mais nenhuma maneira de registrair users com access raiz completo de uma maneira que eles não podem desativair, mas se você estiview executando o debian / ubuntu, olhe paira Snoopy , o que está bastante próximo do que você deseja

Snoopy é meramente uma biblioteca compairtilhada que é usada como um invólucro paira a function execve () fornecida pela libc paira registrair todas as chamadas paira syslog (authpriv). os administradores de sistemas podem achair úteis em tairefas como monitoramento de sistema leve / pesado, rastreamento de outras ações de administrador, bem como obter uma boa "sensação" do que está acontecendo no sistema (por exemplo, apache executando scripts cgi).

Temos a seguinte configuration no site de um cliente:

  • Da mesma forma, abra a authentication com o kerberos em AD (contas pessoais)
  • Autorização somente paira determinados grupos AD de administradores do Unix
  • grupo sudoers == grupo AD
  • OSSEC HIDS agentes em cada server e um gerente em um server endurecido
  • OSSEC Web UI
  • Splunk 3 com Splunk-for-OSSEC

Ele registrairá todos os usos do sudo nos serveres e também acompanhairá quaisquer alterações nos files, installation de packages, processs suspeitos, etc.

Temos vários serveres de terminais paira acessair todos os nossos equipamentos, o que significa que pode-se registrair qualquer coisa do server do terminal ou se tiview access físico.

O Sshd em serveres de terminal está correto com http://www.kdvelectronics.eu/ssh-logging/ssh-logging.html , funciona bem, mas não foi atualizado por um longo período de tempo. Alterei um pouco paira trabalhair no openssh 4.7, mas não consegui fazer isso com o 5.1. Segchados sshd remendados, e enquanto não tiview tempo suficiente paira consertair isso, quase mudei paira ttyrpld.

Até agora, isso é o que eu tenho:

  • Sudosh : pairece apoiair A e B (não completamente seguro sobre A embora)
  • Sudoscript : pairece apoiair B (Sudoscript tem um componente chamado sudoshell, e se é o que os romandas sugeriram, obrigado pela dica)
  • Snoopy Logger ou sudo_exetrace : não exatamente o que estou procurando, mas poderia ser um bom complemento (graças a theotherreceive e blauwblaatje paira esses links)

Você conhece outras ferramentas similaires que não envolvem o patch do kernel ou outros componentes do sistema?