24 February 2010

Controle de usuários com GNU Accounting Utilities

Para gerenciar servidores Linux com mais qualidade e segurança, é necessário saber tudo que acontece e como acontece. Para nos ajudar nessa tarefa, podemos usar as GNU Accounting Utilities, mais conhecidas por acct. Trata-se de um excelente pacote de ferramentas, que fornece desde logs dos comandos executados até estatísticas sobre as contas de usuário.

Instalação no Gentoo

 # emerge -av acct

Configuração no kernel

O kernel deve ser instruído por meio da opção BSD_PROCESS_ACCT, a criar uma system call (chamada do sistema), que o acct irá utilizar para registrar eventos relacionados aos usuários. A lista de eventos pode ser consultada no arquivo /usr/src/linux/include/linux/acct.h.

Resumidamente, os eventos são: processo, usuário, tempo de processamento, taxa de utilização de memória e CPU.

Seu kernel oferece suporte? 

Verifique se o kernel que você está usando oferece suporte aosrecursos necessários:
# zcat /proc/config.gz | grep -e BSD_PROCESS_ACCT 
CONFIG_BSD_PROCESS_ACCT=y 
CONFIG_BSD_PROCESS_ACCT_V3=y

Outra forma de verificar o suporte por parte do kernel: ao executaro acct, você receberá a seguinte mensagem de erro, caso não haja suporte:

accton: Function not implemented
Início

# /etc/init.d/acct start 

Para iniciar automaticamente no boot.
# rc-update add acct default

Saboreando os resultados

Depois de instalado e configurado, vamos descobrir o querealmente esse pacote nos oferece.

Comando ac: fornece estatísticas sobre tempo de conexão dos usuários no sistema, com base em login/logout definidos no log 

wtmp.

A unidade de retorno é em horas. Dentre os parâmetros do comando ac, existem dois que mais se destacam:
* -d: total por dia
* -p: total por usuário

Comando last: este comando mostra os logins e logouts no sistema.Usado sem parâmetros, ele varre o arquivo wtmp e mostra os resultados desde que o arquivo foi criado; porém, com os parâmetros fica mais interessante:

por exemplo, para saber quando o usuário root fez login remotamente:

# last root -d 
Isso mostrará todos os últimos logins do root, o IP de origem e o horário.

Comando lastcomm: mostra os últimos comandos executados, informando o dono do processo, o tempo de execução e a data.Esse comando é baseado nos logs gerados pelo acct; por padrão, o comando busca o arquivo /var/log/account/pacct.

Comando sa: cria um relatório condensado dos últimos comandos utilizados, contendo o número de vezes que o comando foi executado e quanto de recursos ele utilizou. Conclusão:

As GNU Accounting Utilities são uma excelente ferramenta que auxilia na administração de servidores Linux, tirando do limbo muita informação.

Cruzando os dados de logins com os comandos executados, podemos saber quando os usuários utilizam o sistema, quais comandos executam e até mesmo em que momento o sistema fica mais sobrecarregado e qual o motivo da sobrecarga. Com todas essas informações, obtemos subsídios para tomadas de decisões mais céleres para o gerenciamento dos servidores.

Autor: Marlon Luis Petry

No comments: