Antivírus no Linux
Transcrição
Antivírus no Linux
Coluna do Kurt COLUNA Antivírus no Linux Como proteger seus clientes dos perigos da Internet. A o começar a escrever a coluna deste mês, pensei comigo por que deveria escrever um artigo sobre o uso de antivírus no Linux. Em todos os meus anos de trabalho, eu nunca encontrei uma única máquina Linux sequer que estivesse infectada por algum tipo de vírus (ao contrário de outras, que haviam sido comprometidas por cavalos de Tróia ou algum tipo de ataque direto). Então, por que escrever sobre isso? Por outro lado, um grande número de pessoas usa o Windows no computador pessoal, mas cada vez mais o Linux é a plataforma de escolha nos servidores, o que me levou a pensar: “Por que não proteger as máquinas Windows usando os servidores Linux?”. Verifiquei rapidamente e percebi que seria muito simples verificar o conteúdo dos emails recebidos usando o ClamAV [1] e que é possível configurar proxy Squid para usar o ClamAV. Mas o que eu não sabia era que é possível configurar o Samba para usar o ClamAV e fazê-lo testar os arquivos acessados antes de entregá-los ao usuário! Um aviso importante: usar o ClamAV nos servidores como medida sanitária para desinfectar dados antes que eles cheguem – via e-mail ou por tráfego HTTP – à máquina Windows do usuário não é garantia de segurança. Se alguém usa Windows, é obrigatório o uso de um antivírus localmente. Infelizmente, não serei capaz de fornecer ao leitor um passo-a-passo detalhado neste artigo, uma vez que a instalação do antivírus varia bastante dependendo da distribuição Linux (desde o tipo de pacote, hierarquia de diretórios etc.) e isso não iria caber em um artigo de apenas duas páginas. Então, vou “trapacear” e chamar este artigo de ensaio. Instalação e uso do ClamAV A instalação do ClamAV é bastante simples, pois a maioria das distribuições fornece pacotes do aplicativo por padrão. Algumas (des)honrosas exceções são o Red Hat Enterprise 16 5 e o CentOS 5. Se o leitor estiver usando um desses sistemas, o modo mais fácil de instalar o ClamAV é usar os pacotes RPM fornecidos por Dag [2]. Outras distribuições, tais como Debian ou Fedora, separaram o ClamAV em uma miríade de pacotes menores. Por exemplo, o Fedora 12 traz os seguintes pacotes para o aplicativo: clamav, clamavdata, clamav-data-empty, clamav-devel, clamav-filesystem, clamavlib, clamav-milter, clamav-milter-sysvinit, clamavmilter-upstart, clamavscanner, clamav-scanner-sysvinit, clamav-scanner-upstart, clamav-server, clamav-server-sysvinit, clamav-update e exim-clamav (o Debian tem “apenas” uma dúzia de pacotes para o aplicativo). O ClamAV pode ser executado localmente para varrer arquivos específicos, diretórios etc., da mesma forma que qualquer antivírus comum. Contudo, o ClamAV também oferece suporte a um modo servidor, o que disponibiliza o aplicativo para outros sistemas na rede. Isso significa que é possível, por exemplo, manter uma máquina central executando o ClamAV que deverá estar sempre atualizada e que tenha muito mais capacidade de processamento para ser usado por outros computadores, tais como os servidores de email, para analisar o conteúdo dos dados manipulados por eles à caça de vírus, sem comprometer o seu desempenho. Isso também simplifica a disponibilização de recursos antivírus a outros aplicativos e serviços. Basta enviar um conteúdo qualquer ao servidor equipado com o ClamAV e receber a resposta – não há necessidade de integração de bibliotecas nem nada muito complicado. Simplesmente instale o clamav-scanner-sysvinit package no Fedora ou o clamav-daemon no Debian e configure-o para iniciar automaticamente. Será necessário editar o arquivo clamd. conf (no Fedora, disponível no diretório /etc/clamd.d/) e descomentar as linhas TCPSocket e TCPAddr: TCPSocket 3310 TCPAddr 127.0.0.1 http://www.linuxmagazine.com.br COLUNA | Kurt Atualização do ClamAV O conceito mais importante a ser entendido neste artigo é a atualização das assinaturas do antivírus. A maioria dos programas antivírus depende de assinaturas para detectar vírus; pouquíssimas soluções implementam métodos heurísticos ou monitoramento baseado em comportamento. Para atualizar as assinaturas de vírus do ClamAV, é preciso instalar o pacote clamav-update no Fedora, ou o clamav-freshclam no Debian. Esse pacote inclui um binário chamado freshclam, que baixa as atualizações e as integra às assinaturas de vírus já existentes. Para configurar o freshclam para ser executado, é preciso editar o arquivo freshclam.conf. As únicas alterações geralmente necessárias são: comentar a linha Example no início do arquivo (o que causará um erro e impedirá que o freshclam seja executado) e alterar a linha DatabaseMirror para apontar para os espelhos do ClamAV do seu país: # Descomente a linha abaixo e substitua XY # pelo código do seu país. Há uma lista em # http://www.iana.org/domains/root/db/ DatabaseMirror db.br.clamav.net Em seguida, é possível adicionar o freshclam aos arquivos crontab do sistema em /etc/ ou no crontab do root para que seja executado regularmente e notifique os resultados ao administrador. Opcionalmente, também é possível usar o comando OnUpdateExecute no freshclam.conf para executar um script de notificação: 0 * * * * /usr/bin/freshclam | mail -s “freshclam update info” [email protected] Uma nota crítica: ao usar o servidor clamd, ele vem com assinaturas ultrapassadas, pois as carrega na primeira vez que for executado. Para garantir que o clamd tenha as assinaturas mais recentes, é preciso configurar o freshclam para enviar a ele um comando RELOAD. Para isso, altere o parâmetro NotifyClamd no arquivo freshclam. conf para que ele aponte para o arquivo de configuração do clamd. No Fedora, o exemplo seria: NotifyClamd /etc/clamd.scan.conf ClamAV + Sendmail Há muitos anos, se você quisesse fazer o Sendmail filtrar emails por meio de um programa externo, era preciso embrenhar-se pelo arquivo sendmail.mc – você sabe, o arquivo que parecia ruído de linha e não era nada legal de se ler. Por sorte, o Sendmail implementou o Milter (Mail Filter, ou filtro de email), que permite rejeitar e 18 modificar conexões, mensagens e destinatários; acrescentar ou apagar cabeçalhos, re-escrever o corpo de mensagens e assim por diante. o Postfix também implementou o Milter, então, se o seu programa oferecer uma interface de Milter, é possível utilizá-lo com facilidade em conjunto com o Sendmail ou o Postfix. Ao varrer emails com o ClamAV, é possível comunicar-se com o ClamAV por meio de um socket Unix local ou via TCP (seja no servidor local ou em outra máquina). A alternativa via TCP é bem fácil de configurar, uma vez que o clamd esteja em execução (e supondo que seja usada a porta padrão 3310). Basta adicionar a seguinte linha ao sendmail.mc: INPUT_MAIL_FILTER(`clamav`, `S=inet:[email protected], F=,T=S:4m;R:4m`)dnl Em seguida, simplesmente recompile o sendmail. mc, reinicie o Sendmail e pronto. O Postfix é um pouco mais complicado – é preciso editar dois arquivos – mas os detalhes estão disponíveis online [3]. Além disso, se você não desejar ou não puder integrar o ClamAV ao agente de email, pode usar o ClamSMTP como proxy [4] e filtro de email. ClamAV + Squid Agora a coisa começa a ficar interessante. parece que uma das técnicas mais populares para criar botnets é por downloads do tipo drive-by. De forma simplificada, um agressor insere conteúdo malicioso numa página web ou num servidor de anúncios e depois infecta várias centenas ou até milhares de clientes Windows que são comprometidos e subjugados. Então, como podemos adicionar a busca de vírus ao proxy web? O Squid 3.0 possui suporte a um cliente ICAP (Internet Content Adaptation Protocol) [5], que é bem semelhante ao Milter do Sendmail, no sentido de que permite repassar o processamento (tal como o de busca de vírus) para um outro servidor. Para ativar um cliente ICAP no Squid, basta usar a opção --enable-icap-client ao compilá-lo: ./configure --enable-icap-client Mas isso é só metade da batalha. Em seguida, é preciso obter um servidor ICAP para o ClamAV: atualmente, parece haver somente um, o c-icap. Mas a boa notícia é que ele é compatível com Linux e também deve funcionar com sistemas BSD. Para mais detalhes sobre a instalação do c-icap e a configuração do Squid para usá-lo, o site do c-icap possui uma página de instalação que cobre tudo [6]. É importante notar que, se você estiver em busca de uma solução antivírus http://www.linuxmagazine.com.br Kurt | COLUNA para Linux, certifique-se de que ela possua um servidor ICAP funcional, caso deseje usá-la em conjunto com seu proxy web. Mais informações ClamAV + Samba [2] Pacotes de Dag Wiers para o ClamAV: http://dag.wieers.com/rpm/packages/clamav/ Depois de trancafiar seus emails e a navegação na Web, o que acontece se alguém trouxer um pen drive com um vírus, e ele se copiar para o servidor de arquivos na esperança de infectar outros sistemas? Na maioria dos casos, o vírus terá sucesso – a menos, claro, que o servidor de arquivos possua recursos antivírus. O módulo samba-vscan [7] adiciona esse recurso ao Samba. No momento em que um arquivo com vírus é acessado, ele deve ser detectado e o acesso a ele bloqueado (pelo menos é essa a ideia). Detalhes da instalação são cobertos em maior profundidade no arquivo INSTALL. Preguiçosos: Copfilter Se você puder dedicar uma máquina (física ou virtual) à busca de vírus na rede, recomendo adotar o Copfilter [8], e se você quiser uma solução de instalação e gerenciamento facílimos, use o IPCop, que o inclui na forma de pacote [9]. n [1] ClamAV: http://www.clamav.net/ [3] Filtragem de vírus com Postfix e ClamAV: http://www.debian-administration. org/articles/259 [4] ClamSMTP: http://memberwebs. com/stef/software/clamsmtp/ [5] ICAP: http://pt.wikipedia.org/wiki/Protocolo_ICAP [6] Servidor c-icap: http://c-icap.sourceforge.net/install.html [7] Open Antivirus: http://www.openantivirus.org/projects.php [8] Copfilter: http://www.copfilter.org/ [9] IPCop: http://sourceforge.net/apps/trac/ipcop/wiki Loja Edição do mês Livros Seções Ao se inscrever no portal, você se cadastra automaticamente em nossa newsletter e recebe toda semana notícias Linux Magazine #65 | Abril de 2010 e promoções exclusivas. Notícias 19