Adicionando um antivírus

Por:
Depois que o servidor de e-mails estiver funcionando, é interessante instalar um antivírus para proteger as estações Windows. Este é um detalhe interessante: existem vários bons antivírus para Linux, mas todos são destinados a justamente encontrar vírus for Windows em compartilhamentos de rede, páginas web e arquivos, e-mails, etc. Até hoje, o Linux (tanto como servidor, quanto desktop) tem se mantido como uma plataforma livre de vírus dignos de nota, daí a ausência de soluções neste sentido. A demanda simplesmente não existe.

Uma das melhores opções é o Clamav, que possui uma lista de definições atualizada com uma freqüência muito grande e oferece um recurso de atualização automática. O Clamav escaneia as mensagens que passam pelo servidor, removendo as mensagens com arquivos infectados. Ele serve tanto para proteger clientes Windows da rede, quanto para reduzir o tráfego de mensagens inúteis.

Para instalar o antivírus, basta instalar o pacote “clamav“. Ele não costuma mudar de nome entre as distribuições. No Debian, você precisa instalar também o pacote “clamav-daemon“, em outras distribuições este componente faz parte do pacote principal.

Para utilizar o Clamav em conjunto com o Postfix, de forma que todos os e-mails passem primeiro pelo antivírus, e só depois sejam encaminhados para as caixas postais dos usuários, é necessário instalar também o pacote “amavisd-new“.

O Amavisd “intercepta” as novas mensagens, entregando-as ao executável do Clamav. De acordo com a configuração, as mensagens com arquivos infectados podem ser simplesmente deletadas, ou colocadas em uma pasta de quarentena. Lembre-se de que quase todas as mensagens com arquivos infectados são enviadas automaticamente pelos vírus da moda, como uma forma de se espalharem, por isso não existe muito sentido em preservá-las. O Amavisd é um software complicado de instalar manualmente, é necessário alterar vários scripts e arquivos de inicialização e configurar corretamente as permissões de várias pastas. Além de trabalhoso, o processo é muito sujeito a erros, por isso é sempre recomendável utilizar os pacotes incluídos nas distribuições, onde o trabalho já está feito.

A comunicação entre o Amavisd e o Clamav é feita automaticamente, mas é necessário configurar o Postfix para direcionar os novos e-mails para o Amavisd, para que o trio comece a trabalhar em conjunto. Para isso, é necessário adicionar as linhas abaixo no final do arquivo “/etc/postfix/master.cf” (note que este arquivo é diferente do main.cf que configuramos anteriormente). Estas linhas estão incluídas no arquivo “/usr/share/doc/amavisd-new/README.postfix”; você pode copiá-las a partir do arquivo, ao invés de escrever tudo:

smtp-amavis unix – – n – 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes

127.0.0.1:10025 inet n – n – – smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000

Adicione também a linha abaixo ao “/etc/postfix/main.cf“:

content_filter = smtp-amavis:[127.0.0.1]:10024

É preciso verificar também os arquivos “/etc/clamav/clamd.conf” e “/etc/amavis/amavisd.conf”. Em muitas distribuições eles são configurados corretamente ao instalar os pacotes, mas em outras é preciso fazer as alterações manualmente.

No arquivo “/etc/clamav/clamd.conf”, verifique se a linha abaixo está presente e descomentada:

LocalSocket /var/run/clamav/clamd.ctl

No arquivo “/etc/amavis/amavisd.conf”, verifique se as linhas abaixo estão descomentadas. Este arquivo inclui vários exemplos que permitem usar diferentes antivírus, por isso é um pouco extenso. Use a função de pesquisar do editor de textos para ir direto ao ponto:

### http://www.clamav.net/
[‘Clam Antivirus-clamd’,
&ask_daemon, [“CONTSCAN {}n”, “/var/run/clamav/clamd.ctl”],
qr/bOK$/, qr/bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],

O último passo é fazer com que o Amavis tenha acesso aos arquivos de log e diretórios de trabalho do Clamav. No Debian e em muitas outras distribuições, basta adicionar o usuário “clamav” no grupo “amavis“, a solução mais rápida e limpa:

# adduser clamav amavis

Caso você esteja usando outra distribuição, onde essa primeira alteração não funcione, resta fazer do jeito sujo, alterando manualmente as permissões de acesso dos diretórios:

# chown -R amavis:amavis /var/clamav
# chown -R amavis:amavis /var/log/clamav
# chown -R amavis:clamav /var/run/clamav

Depois de terminar a configuração, reinicie todos os serviços, de forma que tudo entre em vigor:

# /etc/init.d/postfix restart
# /etc/init.d/clamav-daemon restart

(“/etc/init.d/clamd restart” no Fedora e Mandriva)

# /etc/init.d/clamav-freshclam restart

(“/etc/init.d/freshclam restart” no Fedora e Mandriva)

# /etc/init.d/amavis restart

Experimente tentar enviar agora um e-mail contendo um arquivo infectado qualquer para uma conta qualquer do seu servidor. O e-mail simplesmente não vai chegar ao destino. O arquivo “/usr/share/doc/amavisd-new/README.postfix” contém uma string de texto que dispara o antivírus e pode ser usada para simular um e-mail infectado.

Checando o conteúdo do arquivo “/var/log/clamav/clamav.log”, você verá uma entrada indicando que um e-mail infectado foi encontrado:

Thu Ago 26 19:55:49 2005 -> /var/lib/amavis/amavis-20050526T195549-07338/parts/part-00001: Eicar-Test-Signature FOUND

O próximo passo é instalar o Spamassassin que funciona como um filtro antispam automático, que utiliza uma blacklist com endereços IP e conteúdos de mensagem catalogados. Esta lista funciona de forma semelhante à de um programa antivírus, é atualizada pela equipe de desenvolvimento e atualizada de forma automática. Para instalar:

# apt-get install spamassassin

No Debian, por padrão, ele fica inativo depois de instalado, talvez como uma precaução para evitar consumir muitos recursos em micros onde ele é instalado acidentalmente junto com outros servidores. Para ativá-lo, edite o arquivo “/etc/default/spamassassin“, mudando a opção “ENABLED=0” para “ENABLED=1”:

# Change to one to enable spamd
ENABLED=1

Para finalizar, inicie o serviço “spamassassin” (ou “spamd” em muitas distribuições):

# /etc/init.d/spamassassin start

Falta agora configurar o Amavis para utilizar também o Spamassassin ao receber novas mensagens. Agora os e-mails passarão pelos dois filtros, seqüencialmente.

Abra novamente o arquivo: “/etc/amavis/amavisd.conf“. Na seção 1, por volta da linha 160, comente (#) a linha:

@bypass_spam_checks_acl = qw( . );

Essa linha desativa a checagem de spam. Ela vem descomentada por padrão, pois nem todo mundo utiliza o Amavis em conjunto com o Spamassassin. Ao comentá-la, a checagem é ativada.

Na seção 4, por volta da linha 400, procure pela linha: “$final_spam_destiny =“.

Essa linha configura o que será feito com as mensagens marcadas como spam. Ela tem três valores possíveis:

D_PASS – Entrega a mensagem normalmente, incluindo apenas a palavra “SPAM” no subject. Isso permite que os próprios usuários configurem o filtro local do leitor de e-mails para remover as mensagens caso estejam incomodando. Nenhum filtro antispam é perfeito, sempre algumas mensagens legítimas acabam sendo marcadas como spam. Esta opção minimiza o problema, deixando a remoção das mensagens por conta dos usuários.

D_DISCARD – Descarta a mensagem. Esta é a opção mais usada, mas ao mesmo tempo a mais perigosa, pois mensagens “boas” marcadas como spam vão simplesmente sumir, sem deixar nenhum aviso ao remetente ou destinatário.

D_REJECT – Esta terceira opção também descarta a mensagem, mas envia uma notificação ao emissor. Isso permite que o emissor de uma mensagem “boa”, acidentalmente classificada como spam, receba um aviso de que ela foi descartada e tenha a oportunidade de reenviá-la novamente de outra forma. Mas, por outro lado, como a maioria dos spams são enviados a partir de endereços falsos, isso acaba sendo um desperdício de banda.

Ao usar a opção que descarta as mensagens, a opção fica:

$final_spam_destiny = D_DISCARD

Mais adiante, na seção 7, por volta da linha 1100, você encontrará mais opções relacionadas ao Spamassassin.

Finalmente, é preciso transferir o ownership dos arquivos do Spamassassin para o Amavis (assim como no caso do Clamav), para que ele possa executar corretamente suas funções:

# chown -R amavis:amavis /usr/share/spamassassin

Não se esqueça de reiniciar os serviços com o comando:

# /etc/init.d/spamassassin restart

(“/etc/init.d/spamd restart” em muitas distribuições)

# /etc/init.d/amavis restart

Além de trabalhar em conjunto com o Postfix (ou com o Qmail ou mesmo Sendmail), o Spamassassin pode ser usado diretamente pelo Evolution ou Kmail para filtrar os e-mails localmente. Você pode ver mais detalhes de como configurar o cliente no: http://brlinux.linuxsecurity.com.br/tutoriais/000665.html#000665.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X