(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

 

Usando Watchlists no Magnux Linux

(Ou "Alguém tem uma cópia deste arquivo?")

Flávio Veloso

Watchlists é um mecanismo do sistema operacional Magnux Linux que mantém cópias automáticas de arquivos-chave do sistema, para o caso de haver a necessidade de se restaurar uma cópia recente o mais rápido possível; e de notificação ao administrador das mudanças efetuadas nestes arquivos. .

Este artigo explica o que são as watchlists, como elas se integram completamente no Magnux Linux e como tirar vantagem de seu uso.



1. Introdução

1.1. O problema

Você provavelmente já viu esta cena: o administrador do sistema faz uma alteração em um arquivo do sistema, ou mesmo apaga algum acidentalmente, e de repente se vê entre dezenas de fitas de backup [1] em busca da versão exata que existia antes do desastre.

Se o administrador encontrará o arquivo dependerá de vários fatores. Antes de mais nada, é necessário que a cópia esteja em alguma fita. O número de cópias de segurança é geralmente limitado e, se levarmos em conta que estamos sempre sujeitos à aplicação da Lei de Murphy, veremos que a sorte definitivamente não está do lado do administrador.

Ok, vá lá... Digamos que a sorte esteja do lado do administrador, e a cópia do arquivo procurada possa ser encontrada em alguma das cópias de segurança guardadas. Resta agora saber aonde... Procurar um único arquivo com determinado conteúdo entre dezenas de arquivo gigantescos é tudo, menos uma tarefa rápida, prazeiroza e livre de erros. Ou seja, vai ser necessário tempo para encontrar aquela versão do arquivo entre dezenas de gigabytes. Enquanto isso, é bom não esquecermos, o sistema onde o arquivo se perdeu provavelmente não está funcionando corretamente, ou mesmo está fora do ar — e isto vai durar até o administrador encontrar o arquivo correto e reinstalá-lo, o que pode levar horas!


1.2. Watchlists: O Backup Automático de Arquivos do Sistema

O sistema de watchlists resolve, ou pelo minimiza, o problema de se restaurar arquivos do sistema danificados e/ou perdidos. Com o uso de watchlists o administrador tem sempre ao seu alcance a última versão dos arquivos configurados, além da versão imediatamente anterior. Desta forma, restaurar um arquivo do sistema se torna apenas uma questão de se copiar um arquivo para seu lugar original.

Antes de prosseguirmos, é importante salientar que o sistema de watchlists é (até onde sei) originário de sistemas BSD. Usuários destes sistemas provavelmente já têm idéia do que são watchlists e como esta funcionalidade pode ser utilizada para facilitar a administração de sistemas. O conceito foi utilizado e extendido no Magnux Linux e, por isso, mesmo administradores familiarizados com ele devem continuar lendo este artigo para tirar mais proveito das extensões implementadas no Magnux Linux.


1.3. Watchlists: O Vigia de Arquivos Fundamentais do Sistema

Antes de mais nada, é importante compreender que o conceito de watchlists é mais amplo do que o de simplesmente copiar automaticamente arquivos do sistema. Através das watchlists o sistema nomeia os arquivos que são importantes para o sistema e que, por isso, devem ser observados. Em outras palavras, fazer uma cópia de segurança dos arquivos é apenas uma operação executada nestes arquivos. Outra funcionalidade que as watchlists propiciam é a de notificação ao administrador de qualquer mudança feitas neles. Em ambientes onde existem mais de um administrador, ou onde se utiliza alguma forma de configuração automatizada, esta funcionalidade pode ser fundamendal para se estar por dentro do que acontece no sistema.

A notificação ao administrador é feita sempre que o sistema detecta uma alteração em arquivos observados. O administrador recebe o nome do arquivo alterado, mais um relatório da mudança emitido pelo comando diff(1). Desta forma, o administrador não só sabe o que mudou, mas também qual foi a mudança.

Futuramente, outras ações podem ser implementadas para serem executadas sempre que algum dos arquivos observados for modificado.


2. Como Funciona

2.1. Observando Arquivos Observados

Os sistema mantém os arquivos observados no diretório /var/lib/watchlist. O arquivo é gravado com seu caminho completo, mas com as "/" (barras) substituidas por "." (pontos). Como o sistema mantém sempre uma cópia atual e a imediatamente anterior, os arquivo têm sufixo .backup ou .current para designar a cópia anterior e a mais atual, respectivamente.

Assim, por exemplo, a cópia mais atual de seu arquivo /etc/passwd é mantida no arquivo /var/lib/watchlist/etc.passwd.current. A versão imediatamente anterior está em /var/lib/watchlist/etc.passwd.backup. Liste os arquivos em /var/lib/watchlist e você vai ficar surpreso com o número de arquivos essenciais que o Magnux Linux vem tomando conta para você. Como as cópias são geradas somente quando os arquivos são alterados, esta duas versões são mantidas por tempo indefinido, ou seja, diferentemente de um backup, não estão sujeitas a limites no número de cópias geradas.


2.2. Enumerando os Arquivos Importantes

O sistema de watchlists funciona através da leitura do arquivo /etc/watchlist e de arquivos em /etc/watchlist.d. Estes arquivos têm o mesmo formato e definem o caminho completo dos arquivos que se quer observar. Cada arquivo deve ser especificado em uma linha, seguido de parâmetros opcionais. Linhas em branco ou iniciando com um "#" são ignoradas. Observe abaixo o Exemplo 1, que contém algumas linhas do arquivo /etc/watchlist do Magnux Linux I-4.

Exemplo 1. /etc/watchlist do Magnux Linux I-4

#
# file       diff?
#===================================
/etc/exports y
/etc/fstab y
/etc/group y
/etc/issue y
# (...)

Atualmente, o único parâmetro disponível controla se o "diff" das mudanças deve ("y") ou não ("n") ser enviado para o administrador do sistema. Mas por que não enviar o "diff"? Porque normalmente o relatório é enviado ao administrador por e-mail, e toda a segurança do sistema pode vir abaixo se você deixar circular dados que de outra forma são mantidos em segurança. Um exemplo é o arquivo /etc/shadow, que contém as senhas do sistema. Quando este arquivo é alterado, uma listagem de diferenças não é enviada ao administrador, do contrário as senhas de usuários seriam enviadas por e-mail.

Note que os arquivos com a opção de "diff" desligada continuam sendo observados e as cópias de segurança continua sendo geradas normalmente.


3. Observação de Arquivos Customizada

Utilizar o sistema de watchlists para observar arquivos gerados no servidor local por sistemas ou usuários é muito simples. Basta alterar o arquivo /etc/watchlist e incluir a especificação do arquivo a observar, ou criar um arquivo em /etc/watchlist.d com o mesmo conteúdo. Esta última forma é recomendada, visto que evita alterações em arquivos do sistema operacional. É recomendável que você crie um arquivo em /etc/watchlist.d com o nome do host onde o arquivo se encontra, para evitar conflitos de nome.

Por exemplo, supondo que no servidor sisfoo.example.net exista um sistema que mantenha sua configuração no arquivo /usr/local/etc/sisfoo.conf e uma listagem de senhas em /usr/local/etc/senhas.sisfoo. Estes arquivos são importante e, por isso, o administrador quer que o sistema de watchlists os observem. Para isso, basta incluir as linhas abaixo no arquivo /etc/watchlist.d/sisfoo.example.net:

/usr/local/etc/sisfoo.conf    y
/usr/local/etc/senhas.sisfoo  n

Note que para o arquivo /usr/local/etc/senhas.sisfoo foi especificado "n" na geração de diferenças para o administrador, do contrário as senhas seriam enviadas por e-mail.


4. Armadilhas

A lista abaixo contém algumas "armadilhas" que o administrador poderá encontrar ao utilizar o sistema de watchlists. É importante conhecê-las para se tirar melhor proveito do sistema.

Arquivos com espaços no nome

Atualmente o sistema não funciona corretamente ao se especificar arquivos com espaços no nome. Como isto não ocorre em arquivos de configuração de sistemas Unix, você não deve encontrar este problemas. No entanto, se isto for realmente necessário, envie uma mensagem para a lista de usuários do Magnux Linux e informe seu caso.

Observar um diretório inteiro

O sistema de watchlists só observa arquivos listados nos arquivos de configuração (cf. Seção 3). Enumerar um diretório ou linhas contendo wildcards do shell não funciona.

A falta desta funcionalidade é, na verdade, considerada uma falha do sistema, e deve ser corrigida em futuras versões.

A Observação é Diária

O sistema de watchlists executa a observação dos arquivos apenas uma vez por dia, durante a execução dos scripts periódicos. Assim, várias alterações executadas em um mesmo intervalo de observação não são captadas.


5. Conclusão

Espero ter demostrado neste artigo que o sistema de watchlists implementado no Magnux Linux é um grande aliado dos administradores de sistema. Ele ajuda na recuperação de arquivos-chave do sistema no evento de uma alteração desastrosa ou perda do arquivo, facilitando a recuperação do mesmo e diminuindo o down time. Com as notificações automatizadas, o administrador também sempre receber um "diff" das alterações, possibilitando-se montar um "log" de alterações, que podem ser desfeitas rápidamente e de forma automatizada. Por último, espero ter demostrado que o sistema é flexível suficiente para permitir a observação de arquivos criado e mantidos por usuários e/ou sistemas locais.

Notas

[1]

O termo "fita de backup" é usado aqui por ser a forma mais comum de se gerar cópias de segurança. Qualquer menção a "fita" ou "fita de backup" neste artigo pode ser substituido livremente por qualquer meio de backup que o leitor utilize, seja CD-ROMs, HDs, rede etc.