segunda-feira, 26 de outubro de 2015

TTYREC - Gravando Sessões do Terminal Linux

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. 

Nenhum comentário:

Postar um comentário