O
ttyrec é um software que permite gravar tudo que for feito no terminal do
Linux.
Com ele é possível gravar a saída TTY de um programa em modo de texto, juntamente com a data e hora e, em seguida, exibi-lo como se fosse um vídeo. É muito útil para realizar auditorias em servidores Linux.
Este breve tutorial tem como objetivo demonstrar a instalação e a utilização do software em um ambiente rodando Debian 7, mas nada impede de ser instalado em outras distribuições.
Mais informações podem ser encontradas em:
Procedimentos
Primeiramente, faça o login no servidor e como root rode os seguintes comandos:
# apt-get update
# apt-get install ttyrec
Feito isso o software já estará instalado e pronto para uso. Veja algumas das opções que podem ser utilizadas para gravar:
A opção "-a" permite anexar a saída para o arquivo ou ttyrecord, ao invés de substituí-lo.
Exemplo:
# ttyrec -a arquivo.rec
A opção "-u" chama automaticamente uudecode e salva sua saída quando os dados uuencoded aparecerem na sessão. Ele permitirá que você transfira arquivos de hosts remotos. Você pode chamar o ttyrec com esta opção, acessar o host remoto e invocar uuencode com ele para o arquivo que você deseja transferir.
Exemplo:
# ttyrec -u arquivo.rec
A opção "-e" é utilizada para que você possa monitorar a saída de um comando. Pode-se gravar apenas a execução do comando find.
Exemplo:
# ttyrec -e find
Para reproduzir as gravações utilizaremos o ttyplay. A opção "-n" mostra na tela a saída de todos os comandos que foram executados, parecidos com o comando history.
Exemplo:
# ttyplay -n arquivo.rec
A opção "-s" determina a velocidade de reprodução. Varia de 1 (velocidade normal) a 10 (rápido).
Exemplo:
# ttyplay -s 5 arquivo.rec
No comando acima o vídeo será reproduzido 5 vezes mais rápido que o normal.
Obs.: as opções citadas acima foram retiradas do manual do ttyrec, para mais acesse no seu terminal:
man ttyrec
Script
Criando um script para gravar todas as sessões do terminal, assim que um usuário logar no servidor
Primeiro iremos criar o diretório onde ficarão os arquivos do ttyrec. Eu, por exemplo, costumo usar o caminho
/sis-bkp/audit/ttyrec, porém você pode modificar da forma que achar necessário.
# mkdir -m 777 -p /sis-bkp/audit/ttyrec
O comando acima cria todos os diretórios (opção "-p") e ainda seta a permissão 777 para o diretório ttyrec (opção "-m 777") para que todos os usuários do sistema consigam escrever no mesmo.
Para finalizar, precisaremos editar o arquivo
/etc/profile, que será responsável por chamar o utilitário ttyrec para gravar as sessões de quaisquer usuários que se conectarem no servidor.
Primeiro, faça um backup do arquivo original para restaurar caso haja problemas:
# cp /etc/profile /etc/profile.bkp
Depois, com um editor de sua preferência, eu utilizei o Vim:
# vim /etc/profile
No final do arquivo, salte uma linha e inclua:
# Gravar sessões do terminal
if [ `id -u` ];
then
LOG="/sis-bkp/audit/ttyrec/log-${LOGNAME}-"`date +%d-%m-%Y_%H:%M`".rec"
ttyrec -u $LOG
fi
# Fim gravar sessões do terminal
Salve o arquivo e estará pronto. Toda vez que um usuário logar no sistema, será gerado um arquivo com extensão ".rec" dentro de
/sis-bkp/audit/ttyrec com o seguinte formato "log-usuário-data_hora.rec".
Obs.: caso o seu servidor permita acesso via SSH para o usuário root, remova para que não haja confusão de quem logou no mesmo. Deixe apenas que usuários comuns possam logar via SSH, pois assim o log será gerado com o nome do usuário.