Agora o melhor da história, verificar se o software funciona conforme nossas configurações.
Como root, abra algum terminal em seu servidor .
Obs.: Acho interessante testar o software primeiro numa máquina virtual, e funcionando sem problemas, aí sim instalar no sistema em produção.
# ttyrec -u arquivoteste.rec
Após esse comando parece que não aconteceu nada. Porém após isso, dentro do diretório de uso atual irá aparecer um arquivo chamado arquivoteste.rec e o ttyrec já estará gravando tudo que for feito no terminal.
Execute outros comandos em seu servidor, com por exemplo history, df, fdisk -l, iptables -nL etc.
Depois disso você deve digitar exit para sair do ttyrec.
Vamos verificar o que foi gravado:
# ttyplay arquivoteste.rec
Outra opção é acompanhar a saída deste arquivo com:
# tail -f arquivoteste.rec
Se tudo ocorreu bem com o processo acima, vamos automatizar deixando um script que faça o ttyrec gravar todos os terminais dos usuários que se conectarem em teu sistema.
Crie o diretório /root/audit/ttyrec com permissão 777 para que todos os usuários possam escrever dentro dele.
Para garantia que não ocorra problema dentro do seu arquivo /etc/profile, faça uma cópia do mesmo:
# cp /etc/profile /root/profile.bkp
Após isso edite o mesmo com o seu editor preferido, no meu caso usei o vim, adicionando o conteúdo abaixo após a última linha do arquivo:
# vim /etc/profile
if arquivoteste `id -u` != 0
then
TTYFORMAT="/root/audit/ttyrec/${LOGNAME}-${HOSTNAME}-`date +%H-%M--%d-%m-%Y`.rec"
ttyrec -u $TTYFORMAT
fi
Chegamos no final desse artigo, agora toda vez que algum usuário fizer algum acesso em seu servidor, o histórico será armazenado num arquivo dentro de /root/audit/ttyrec, com as gravações com hora e data.
Espero que esteja bem explicado, pois é minha primeira contribuição aqui no VOL.
[4] Comentário enviado por y2h4ck em 30/09/2011 - 10:09h
Excelente artigo, parabéns.
Apenas a caráter de informação, recomendo apenas modificar a pasta
onde os arquivos serão salvos, apenas para evitar que uma sub-pasta
do usuário root esteja como 777.
Existem opções de ACL setadas diretamente no filesystem que permitem
setar permissões avançadas como APPEND, para determinados grupos de
usuários.
[5] Comentário enviado por thiagocoimbra23 em 30/09/2011 - 10:32h
Cruzeirense, bom dia.
`
Sim, porém é super importante não deixar acesso externo via ssh para usuário root, pois o mesmo pode acessar e fazer o que quiser dentro do seu servidor. deixe acesso a outro usuário sem permissões totais do sistema. após isso, você pode trocar de usuário para root com o comando su.
[6] Comentário enviado por verovan em 04/10/2011 - 11:23h
Parabéns pelo artigo, muito interessante e bem explicativo.
Tive problemas para deixar automático no OpenSuse, coloquei o script acima no /etc/profile, porém quando o usuário loga ele dá o erro "arquivoteste: command not found" faltou alguma coisa?
[10] Comentário enviado por verovan em 04/10/2011 - 12:26h
Esse é o final do /etc/profile
....
#
# An X session
#
case "$-" in
*i*)
if test "$TERM" = "xterm" -a -O "$tty" -a -z "${SSH_TTY}" ; then
echo "Directory: $PWD"
# Last but not least
date
fi
esac
if arquivoteste `id -u` != 0
then TTYFORMAT="/var/audit/ttyrec/${LOGNAME}-${HOSTNAME}-`date +%H-%M--%d-%m-%Y`.rec" ttyrec -u $TTYFORMAT
fi
[12] Comentário enviado por verovan em 05/10/2011 - 13:48h
ok, vou fazer e já dou um retorno. O programa está funcionando normalmente, quando faço os comandos manualmente ele grava tudo e depois consigo ver, porém nessa ultima parte onde colocou os script para que ficasse automatico é que tem o problema, não entendi essa primeira linha do script "if arquivoteste `id -u` != 0".
Não sei se seria algo particular no Suse, pois num post anterior alguem colocou que no Ubuntu funcionou
[13] Comentário enviado por renatux-chaves em 05/10/2011 - 14:18h
Boa tarde!
Ótimo artigo, porém estou com o mesmo problema do amigo verovan. Estou usando red hat e quando logo aparece a seguinte mensagem " -bash: audit.rec: command not found ". Já fiz como pedido a cima, mas continua o mesmo erro.
[15] Comentário enviado por renatux-chaves em 05/10/2011 - 14:58h
Fala thiagocoimbra23, obrigado pela atenção!
segue abaixo o meu /etc/profile. Porém no script eu fiz algumas alterações, como por exemplo o nome do arquivo que estava arquivoteste.rec eu mudei para audit.rec e o diretório que estava em /root/audit/ttyrec eu mudei para /var/audit/ttyrec.
saída do ls -l :
total 60
-rw-rw-rw- 1 root root 56748 Out 5 14:26 audit.rec
arquivo /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}
# Path manipulation
if [ `id -u` = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
pathmunge /usr/X11R6/bin after
unset pathmunge
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
[16] Comentário enviado por verovan em 05/10/2011 - 15:16h
Vou colocar passo a passo que fiz. Primeiro meu arquivo /etc/profile está com o script assim " if arquivoteste.rec `id -u` != 0
then TTYFORMAT="/var/audit/ttyrec/${LOGNAME}-${HOSTNAME}-`date +%H-%M--%d-%m-%Y`.rec" ttyrec -u $TTYFORMAT
fi"
Depois acessei o diretório /var/audit/ttyrec e fiz o comando
ttyrec -u arquivoteste.rec
ele gerou o arquivo no /var/audit/ttyrec/arquivoteste.rec
Porém quando faço um novo logon com o root, ele aparece o erro logo no logon
arquivoteste.rec: command not found
e assim não grava os comandos dessa nova sessão que abri.