NAU

NAU - Norton Automatic Updater

 
O que é
O que não é
Facilidades disponíveis
Requerimentos para uso
Download
Como instalar
Erros conhecidos
Antivírus suportados
Agradecimentos


For a English version of this site, please click here


Norton Automatic Updater - por Alceu Rodrigues de Freitas Junior (glasswalk3r@yahoo.com.br), baseado no NAI VirusScan DAT file auto updater criado por Bas Rijniersce (bas@brijn.nu)



Alterações: Por favor cheque os links "Notes" e "Change" na página de download para maiores informações.


O que é

Norton Automatic Updater é um script em Perl que procura resolver um problema comum em redes Microsoft Windows: atualizar todas as estações de trabalho com Norton Antivírus de um único ponto da rede.

As vantagens em fazer isso são:
  1. A estação terá o Norton antivírus atualizado forçadamente, através de um script de logon de qualquer usuário que efetuar logon na mesma.
  2. Você evitará desperdício de consumo de banda de sua rede, uma vez que o download da atualização será feito apenas uma vez e o arquivo será compartilhado atravé da intranet.
O NAU irá checar por novas versões do Intelligent Updater e irá realizar o download dos arquivos do servidor web da Symantec, desde que a nova versão do site seja mais atual do que a mantida no servidor da rede local. Uma vez copiado, o arquivo terá sua integridade checada com o uso de MD5sum e, caso esteja ok, será gerado um arquivo de lote (script de logon de usuários do MS Windows) para atualizar as demais estações.

A Symantec já possui um produto que gerencia a atualização de todas as estações de trabalho de um servidor Windows NT: a intenção do NAU é fornecer uma escolha em software livre para esse problema e está também disponível atualmente para servidores UNIX com o Samba instalado e rodando como o PDC da rede local.

O NAU está disponível para livre distribuição pela licença GNU GPL (veja em http://www.fsf.org para maiores informações).

O que não é

O NAU não irá realizar nenhuma atividade diretamente nas estações de trabalho; ele irá usar um arquivo de lote (batch) para executar o Intelligent Updater nestas máquinas.

Ele também não irá procurar por vírus nestas estações.

Facilidades disponíveis

O NAU possui as seguintes capacidades na sua versão atual:

Requerimentos para uso

O NAU requer:
  1. Um servidor de autenticação PDC (tanto Microsoft Windows NT quanto Samba);
  2. Perl;
  3. o módulo LWP para Perl;
  4. o módulo Digest::MD5 para Perl;

Servidor PDC

É possível usar tanto um servidor Windows NT ou um servidor UNIX com Samba instalado, desde que ambos estejam configurados como servidores PDC, e os usuários realizem autenticações nos mesmos.
O NAU irá usar as capacidades do Samba de compartilhamento de arquivo e autenticar usuários em um domínio Microsoft Windows como PDC para garantir a atualização das estações de trabalho de uma rede local qualquer.

Perl

Bem, considerando que o NAU foi escrito em Perl e esta linguagem é interpretada, é até natural que esteja instalada no servidor.
Qualquer distribuição UNIX (Linux, FreeBSD, Solaris, AIX, etc) decente inclui Perl  na mídia de instalação do sistema. Você pode obter maiores informações sobre Perl no site http://www.perl.com.

Se você usa Windows NT, então dever´ instalar a versão correspondente para esse SO dispon&icute;vel em http://www.activestate.com.

LWP.pm

LWP é um módulo que oferece acesso a funções de http, https e ftp para Perl. À partir da versão 1.6, NAU irá usar esse módulo como substituto a programas como wget e lynx para checar a página por atualizações e realizar o download da atualização do antivírus.
O uso desta biblioteca permite, além de uma menor dependência do NAU da aplicativos externos, a possibilidade de ser multiplataforma, já que Perl e o Samba estão disponíveis para diferentes plataformas de hardware e sistema operacional.
A versão mínima deste módulo é a 5.66: em versões anteriores, o NAU não será capaz de salvar o arquivo do Intelligent Updater.

Digest::MD5.pm

Esse módulo substitui o uso do programa md5sum, responsável nas versões anteriores à 1.6 para checar a integridade do arquivo do Intelligent Updater copiado do site da Symantec.

Download

Se você utiliza PGP poderá checar minha assinatura no arquivo para download. Minha chave pública se encontra aqui.

Como instalar o NAU

A configuração do NAU é bastante simples.

Primeiramente, você deve ter um diretório que seja compartilhado pelo servidor PDC. Por razões de segurança, esse compartilhamento pode ser feito apenas com direitos de leitura.

NAU irá usar scripts the logon the usuário, portanto você deve configurar a opção de netlogon no servidor que estiver usando (Windows NT ou Samba).


Depois descompacte o arquivo com o comando abaixo:
tar -xzvf nau-1.6.tar.gz /
Isso irá expandir o NAU em /etc e /usr/sbin. O arquivo nau.pl será colocado em /usr/sbin por razões de restrição de acesso e o arquivo nau.conf em /etc. Um cliente do NAU, para sistemas operacionais Microsoft Windows, será descompatado na pasta /nau_client. Copie o arquivo nau.exe para o diretório que será compartilhado junto com o Intelligent Updater: ambos arquivos serão copiados posteriormente para  as estações via script de logon.

Toda a configuração do NAU agora pode ser feita pelo arquivo /etc/nau.conf. Leia com atenção os comentários e configure as diversas opções.

Uma vez executado, o NAU irá conectar-se a Internet e checar por novas versões do Intelligent Updater, comparando com a versão local. Se um novo arquivo for encontrado, ele irá fazer o download, atualizar a base local e criar um arquivo batch chamado netlogon.bat como no exemplo abaixo:

@echo off
c:
if exist 2300141.lock goto ok
del *.lock
echo Running Norton Update file...
copy \\SERVER\NAU\naudb.exe /y
start /w naudb.exe /q
del naudb.exe
echo Dat file from: 1082601696 > 2300141.lock
:ok
echo Norton AntiVirus is up to date.
exit
NAU irá gerar um número randômico e criar um arquivo com esse número usando uma extensão .lock. Toda a vez que alguém efetuar o logon no servidor PDC, esse arquivo será checado. Se for encontrado, a estação já está atualizada. Caso contrário, o Intelligent Updater será executado.

À partir da versão 1.5, o NAU permite o uso de templates de arquivos batch. Normalmente, esses arquivos batch são utilizados pelos administradores para executarem instruções corriqueiras de administração. O NAU irá utilizar esses mesmos comandos como base na criação do arquivo batch, e depois irá incluir seus comandos para atualização de antivírus.

Para utilizar essa função, basta incluir no diretório onde será salvo o arquivo batch o arquivo de lote desejado, com a nome alterado para netlogon.template. Os comandos encontrados nesse arquivo serão inseridos no novo arquivo, chamado netlogon.bat. Isso permitirá que os comandos executados regularmente no logon de cada usuário ainda possam ser mantidos.

Você terá, também, que instalar os módulos LWP e Digest::MD5 para que versões 1.6 e acima funcionem.
Isso pode ser feito de três maneiras, e apesar de eu explicar apenas a instalação para o módulo LWP, os procedimentos são exatamente os mesmos para o Digest::MD5: Ambos módulos são bastantes usados e estão amplamente disponível em novas versões do Perl. Sistemas UNIX que trabalham com pacotes, como Linux e FreeBSD, podem ter um pacote específico para instalar essa biblioteca. Normalmente elas são chamadas, respectivamente, de LWP (ou libwww) e perl-digest-md5
Para cada sistema de pacotes, o processo de instalação é diferente, portanto eu não vou entrar em detalhes como instalar um pacote.

Esse é modo mais simples de instalar uma biblioteca no Perl. CPAN é um repositório de diversas biblitoecas para Perl, e o módulo CPAN.pm oferece uma interface simples para buscar servidores com essas bibliotecas e instalá-las no seu servidor. CPAN.pm é um módulo padrão, empacotado junto com o Perl. A possibilidade de tê-la já instalada na sua versão de Perl é muito grande.
Para instalar o módulo LWP, basta executar na linha de comando:
perl -MCPAN -e shell
A primeira vez que você executar esse módulo, será feitas algumas perguntas para você poder configurar o módulo. Depois de configurado, basta digitar:
install LWP
Responder as perguntar e ter o módulo copiado e instalado no seu servidor. Caso esteja atrás de algum proxy, você poderá ter alguns problemas quanto aos testes executados pelo módulo CPAN para instalação do LWP. Basta então executar:
force install LWP
Que os testes serão executados, mas caso algum erro ocorra, o LWP ser&accute; instalado de qualquer forma. Perceba que alguns testes são cruciais, e pode ser que o LWP não esteja funcionando devido à alguma dependência! Esteja atento as mensagens, e sempre responda sim (YES) para as perguntas quando a responder sobre dependências.
Para proceder com Digest::MD5, basta seguir os mesmos passos, apenas mudando o nome LWP para Digest::MD5 nos comandos acima.
Você pode fazer o download direto do LWP do site http://www.cpan.org. O arquivo normalmente está no compactado no formato "tar+gz", então bastará você executar a seguinte sequência de comandos, depois de efetuar o download:
mv lwp.tar.gz /usr/local
tar xzvf lwp.tar.gz
cd lwp
perl Makefile.PL
make
make test
make install
O problema deste método que é que você terá que resolver as dependências sozinho, baixando e instalando as bibliotecas que o LWP depende manualmente. Esteja atento as mensagens de instalação do LWP para checar quais são essas bibliotecas. Novamente esses passos se aplicam também à instalação do Digest::MD5 (na realidade, na grande maioria de módulos para Perl).
Para executar o NAU, você deve executar:
nau.pl caminho/nau.conf
Onde caminho é uma parâmetro, indicando a localização do arquivo de configuração nau.conf.
Você deve agendar o NAU utilizando o CRON para buscar novas atualizações diariamente: isso irá garantir que as estações sejam atualizadas sempre. Eu recomendo que seja feita essa busca pelo menos duas vezes ao dia (de manhã e de no final do dia)

Problemas conhecidos

Além de possíveis bugs que alguém possa encontrar (apesar do NAU já estar estável atualmente), uma vez executado o Intelligent Updater, quando executado, abre uma janela solicitando interação do usuário, com um botão de OK e outro de CANCELAR a atualização. Se a atualização for cancelada, não há o que se fazer.

Isto costumava ser um problema até a versão 1.5: o NAU é distribuído com um cliente que irá pressionar o botão de OK, permitindo que a atualização ocorra sem interação do usuário. O cliente foi desenvolvido em Microsoft Visual Basic, e por causa da linguagem escolhida, ele irá funcionar apenas em sistemas operacionais da Microsoft, infelizmente.

No entanto, recebi recentemente um email reportando que o uso do programa em VB não é realmente necessário: o arquivo executável do Intelligent Updater aceita uma chave como parâmetro ("/q") que permite que o antivírus seja executado sem a tela de confirmação. Em vista disso, novas versões do NAU (1.7.1 em diante) não serão mais distribuídas com o cliente em VB. O script de logon para atualização também foi modificado para atender essa nova demanda.
Este programa cliente será copiado para cada estação no processo de logon de usuário, e irá tomar o arquivo do Intelligent Updater como um argumento, executá-lo e pressionar o botão de OK.

Usando um servidor Windows NT

Talvez já tenha um servidor Windows NT rodando como PDC na sua rede local. Teoricamente você pode rodar o NAU num servidor NT, desde que instale o Active Perl no servidor, uma vez que Perl não é nativa neste sistema. Eu realizei um teste com a versão 5.6.1 build 631 do Active Perl, e infelizmente tive problemas em utilizar o mesmo. Essa versão inclui a versão 5.51 do módulo LWP, utilizado à partir da versão 1.6 do NAU e a versão mínima do LWP para rodar o NAU é 5.66.

Até a data de atualização desta página, ainda não existia um pacote no site http://www.activestate.com para atualização deste módulo, atualmente na versão 5.62. Essa atualização poderia ser feita manualmente ou através do módulo do CPAN, mas eu não tive oportunidade de testar o mesmo num servidor com Active Perl instalado. Se você teve êxito nesta instalação, por favor me avise.

Uma solução melhor é instalar no Windows NT o Cygwin (http://www.redhat.com/downloads) ou Active Perl 5.8, que inclui a versão 5.68 do LWP. Considere seriamente em atualizar sua versãa do Active Perl.

Você pode usar o programa AT do Windows NT para agendar a execução do NAU, ou então o CRON caso esteja usando Cygwin.

Usando o NAU para atualizar outros antivírus


Isso é possível, desde que o programa utilize um processo semelhante ao da Symantec para atualizar seus sistemas: baixar a atualização de um website, copiar ela para o servidor e/ou executar ela em cada estação de trabalho

Os programas que eu sei que funcionam desta forma:
Eu criei uma versão do NAU para o antivírus da Mcafee, ainda em versão BETA. Você pode fazer o download do MAU (Mcafee Automatic Updater) checando o link na seção de downloads.

Agradecimentos

Gostaria de agradecer as seguintes pessoas que me auxiliaram com o NAU:

Programming Republic of Perl SourceForge.net Logo Valid HTML 4.01 Transitional