Como posso tornar o histórico do Bash indetectável?

2

O histórico de Bash pode ser excluído apenas excluindo o arquivo que contém. Como posso proteger o histórico de ser limpo / excluído?

    
por Tomas 04.09.2016 / 15:30

4 respostas

13

O que você pede pode ser feito com ...

sudo chattr +a ~$USER/.bash_history
sudo chattr +i ~$USER/.profile

Isso definirá o "somente acréscimo" para .bash_history e "bit imutável" para .profile e até mesmo o root não poderá excluir ou truncar o arquivo, a menos que esse bit seja removido. O segundo comando impede que o usuário edite as configurações de .profile .

Em seguida, coloque isso em /etc/bash.bashrc ou /etc/.profile :

# #Prevent unset of histfile, /etc/profile
HISTFILE=~/.bash_history
HISTSIZE=10000
HISTFILESIZE=999999
# Don't let the users enter commands that are ignored# in the history file
HISTIGNORE=""
HISTCONTROL=""
readonly HISTFILE
readonly HISTSIZE
readonly HISTFILESIZE
readonly HISTIGNORE
readonly HISTCONTROL
export HISTFILE HISTSIZE HISTFILESIZE HISTIGNORE HISTCONTROL

Isso bloqueará as ações mais simples que um usuário pode fazer para estragar tudo. Mas não vai parar os usuários mais experientes ...

  • um usuário pode simplesmente mudar para outro shell e você não verá nada registrar.
  • qualquer pessoa com a senha do administrador ou qualquer processo com o recurso CAP_LINUX_IMMUTABLE pode remover o bit imutável
  • Os comandos
  • que começam com um espaço por padrão não são armazenados no histórico.
  • você não pode interromper um kill -9 $$ . Esse comando impedirá a gravação na história.

Então, o que você pergunta é bastante inútil. Se você não confia em seus usuários, não os deixe em seu sistema.

Se esta questão foi criada para interceptar ações de hackers ... você pode esquecer totalmente isso; eles não são propensos a usar o bash quando estão no seu sistema e esse histórico funciona apenas com o bash.

Uma opção muito superior seria usar grsecurity ou instalar acct (Utilitários de Contabilidade do GNU).

    
por Rinzwind 04.09.2016 / 15:45
8

Esta não é a resposta que você estava procurando, mas o que você realmente quer é o sistema de auditoria do Linux, não o bash. O sistema de auditoria é projetado expressamente para coisas como essa, enquanto o histórico de shell é um recurso prático e há muitas maneiras de modificá-lo ou simplesmente não utilizá-lo, conforme declarado em muitas respostas acima.

    
por figtrap 04.09.2016 / 23:28
4

Você não pode proteger o arquivo .bash_history de ser excluído. Se você fizer seus bits de permissão somente leitura, o bash falhará ao escrever nele.

No entanto, você pode criar um alias para rm no seu ~/.bashrc , para que, sempre que quiser excluir algo, ele pergunte a você (y/n) questions

Coloque esta linha no seu arquivo ~/.bashrc .

alias rm="rm -i"

Verifique também se é apenas você quem pode ler / escrever de / para esse arquivo.

chmod 600 ~/.bashrc

deve fazer o trabalho.

    
por Anwar 04.09.2016 / 15:33
0

Não é uma proteção contra a exclusão em si, mas uma maneira de manter um backup é manter o ~ / .bash_history no Dropbox e link simbólico para ele.

Eu acho que existem outros softwares de backup para backup contínuo de diferentes maneiras.

    
por Viktor Mellgren 05.09.2016 / 11:48