instalando o clamav - disponivel em: http://www.clamav.net/ - descompactar o arquivo - criar o usuario/grupo clamav - groupadd clamav - adduser -g clamav -s/bin/false -c"ClamAV" clamav - gerar o configure - ./configure se reclamar "WARNING: ****** GNU MP 2 or newer NOT FOUND - digital signature support will be disabled !", instale gmp-devel - yum install gmp-devel se reclamar "WARNING: ****** bzip2 support disabled", instale bzip2-devel - yum install bzip2-devel - compilar - make - instalar - su -c "make install" - copiar o init para /etc/init.d cp contrib/init/RedHat/clamd /etc/init.d - adicionar a inicilizacao nivel 3 para clamd - chkconfig --add clamd - chkconfig --level 2345 clamd on - no arquivo /usr/local/etc/clamd.conf - comentar a linha "#Example" - alterar o valor de "LogFileMaxSize" para 0 - alterar o valor de "DatabaseDirectory" para: - /usr/local/share/clamav - no arquivo /usr/local/etc/freshclam.conf - comentar a linha "#Example" - alterar o valor de "DatabaseDirectory" para: - /usr/local/share/clamav - atualizar a base de dados de virus /usr/local/bin/freshclam - colocar no crontab para atualizar a base periodicamente - 13 20,2,8,14 * * * /usr/local/bin/freshclam > /dev/null 2>&1 - subir o demonio do clamav - /etc/init.d/clamd start ERROS clamav-0.93 - na subida do clamd ERROR: Not supported data format - rodar o freshclam antes e depois restartar o clamd - /usr/local/bin/freshclam: error while loading shared libraries: libclamav.so.4 : cannot open shared object file: No such file or directory - rodar ldconfig clamav-0.92 - /usr/local/bin/freshclam: error while loading shared libraries: libclamav.so.3 : cannot open shared object file: No such file or directory - rodar ldconfig clamav-0.9????? - clamav.so.2: cannot open shared object file: No such file or directory - rodar ldconfig, mudou versao de alguma lib. OBS.: - na versao 0.91.1 - o socket do demonio do clamv passou a se chamar clamd.socket ao inves de apenas clamd. continua em /tmp - alterar isso /etc/amavisd.conf e /usr/local/etc/clamd.conf 1. dl the source for the version of interest 2. read the dox for build changes 3. create a configure/make script (for repeatability - mine has my chosen options in it) 4. examine the new conf files for interesting entries 5. make backup copies of conf files from previous version 6. stop clamav procs 7. rm -f /usr/local/lib/*clam* (to remove old libraries) 8. make install 9. check again conf files - adjust as needed for new version 10. restart clamav processes instalando o amavis disponivel em: http://www.ijs.si/software/amavisd/ descompactar o pacote ler o INSTALL - ver as dependencias - no meu caso: Convert::UUlib, Net::Server, Time::HiRes, Mail::SpamAssassin, Unix::Syslog, Archive::Tar - se o modulo ja estiver instalado e atualizado ele retornara: xxx::yyy is up to date. - instalar as dependencias - cpan - install Convert::UUlib - ... criar um grupo para o amavis - groupadd amavis criar um usuario para o amavis - useradd -g amavis -d /var/amavis -s /no/shell -c "Amavis" amavis setando as permissoes do diretorio do usuario amavis - cd /var - mkdir -p /var/amavis/tmp /var/amavis/var /var/amavis/db /var/amavis/home - chown -R amavis:amavis /var/amavis - chmod 750 /var/amavis - cd - copiar amavisd para: - cp amavisd /usr/local/sbin/amavisd - chown root. /usr/local/sbin/amavisd - chmod 755 /usr/local/sbin/amavisd copiar amavisd.conf para /etc - cp amavisd.conf /etc - chown root:amavis /etc/amavisd.conf - chmod 640 /etc/amavisd.conf copiar o amavisd_init.sh para /etc/init.d - cp amavisd_init.sh /etc/init.d/amavisd - chmod 755 /etc/init.d/amavisd adicionar a inicilizacao nivel 3 para amavis - chkconfig --add amavisd - chkconfig --level 2345 amavisd on criar um diretorio que sera utilizado pelo amavis como area de quarentena - mkdir /var/virusmails - chown amavis:amavis /var/virusmails - chmod 750 /var/virusmails criar a area para manipulacao e arquivamento das mensagens em quarentena - mkdir /var/virusmails/tmp - chown amavis:amavis /var/virusmails/tmp - mkdir -p /var/virusmails/verificadas/spam - mkdir -p /var/virusmails/verificadas/virus editar o arquivo /etc/amavisd.conf e ajustar (alterar ou descomentar) as variaveis: - $mydomain = 'dominio.com.br'; - $daemon_user = 'amavis'; - $daemon_group = 'amavis'; - $TEMPBASE = $MYHOME/tmp; - $forward_method = 'smtp:127.0.0.1:10025'; - $final_virus_destiny = D_DISCARD; # (defaults to D_BOUNCE) - $final_banned_destiny = D_DISCARD; # (defaults to D_BOUNCE) - $final_spam_destiny = D_DISCARD; # (defaults to D_REJECT) - $final_bad_header_destiny = D_PASS; # (defaults to D_PASS), D_BOUNCE suggested - \&ask_daemon, ["CONTSCAN {}\n", "/tmp/clamd"], alterar o arquivo /etc/postfix/master.cf, para colocar as definicoes do amavis (colocar isso no final do arquivo): smtp-amavis unix - - y/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 - y/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 alterar as linhas: - smtp inet n - n - - smtpd -o content_filter= para: smtp inet n - n - - smtpd -o content_filter=smtp-amavis:[127.0.0.1]:10024 incluir no /etc/postfix/main.cf a diretiva de content-filter para o amavis - postconf -e 'content_filter=smtp-amavis:[127.0.0.1]:10024' incluir o alias "virusalert" no /etc/aliases - virusalert:root - postalias /etc/aliases - subir o demonio do amavis /etc/init.d/amavisd start - restartar o postfix - postfix reload incluindo whitelist (spams marcados erroneamente pelo SpamAssassin - no caso de se desejar incluir um usuario ou dominio globalmente. Caso contrario, utilize o procedimento individual descrito abaixo) - cd /etc/mail/spamassassin - bkpnucc.pl local.cf - vi local.cf - incluir whitelist_from *@dominio ou whitelist_from user@dominio - restartar o amavis para ele ler as novas configuracoes - /etc/init.d/amavis reload - mandar a mensagem que foi indevidamente bloqueada - cd /var/virusmails - gunzip - sendmail -i user < - treinando o spamassassin para o caso de SPAM, com mensagens no formato mbox - su - amavis -c "/usr/bin/sa-learn --showdots --mbox --spam /tmp/arquivo" - treinando o spamassassin para o caso de NAO SPAM, com mensagens no formato mbox - su - amavis -c "/usr/bin/sa-learn --showdots --mbox --ham /tmp/arquivo" - fazendo o spamassassin esquecer uma mensagem treinada equivocadamente - su - amavis -c "/usr/bin/sa-learn --showdots --mbox --spam --forget /tmp/arquivo" - para SPAM - su - amavis -c "/usr/bin/sa-learn --showdots --mbox --ham --forget /tmp/arquivo" - para NAO SPAM - verificando se as mensagens marcadas sao mesmo SPAM - cd /var/virusmail/tmp - rodar o script: - envia_toscamente_falsepositive_spam.sh - em caso de suspeita de false positive - zless arq.gz - gunzip arq.gz - para mover os virus, foi criado um script que roda no crontab de 2 em 2 horas. (movendo_virus_para_arquivamento.sh) para economizar espaco ele gzipa o email antes de mover para a pasta. #20040721 - mover virus para arquivamento 37 */2 * * * $pefe/movendo_virus_para_arquivamento.sh - automatizar atualizacao do antivirus - tambem no crontab #20040531 - atualizacao do clamav antivirus - marcio 19 20,2,8,14 * * * /usr/local/bin/freshclam Resolvendo o problema de BAD HEADER - colocar no /etc/init.d/amavisd, dentro da diretiva start - LANG=C LC_ALL=C export LANG LC_ALL fonte: http://www.ijs.si/software/amavisd/#faq Awareness and solutions to some of these problems appeared in the 20030314 release of amavisd-new. Also the SpamAssassin people are attacking their share of UTF-8 related problems, and some issues were fixed in SpamAssassin 2.50. It is best to run amavisd-new in a non-UTF8 locale environment. Either adjust the settings in /etc/sysconfig/i18n (Linux), or set environment variables LANG and LC_ALL to "C" or "en_US" (instead of "en_US.UTF-8") when starting amavisd-new daemon. Depending on the shell used, one may start amavisd-new by (with Bourne or compatible shell): # su - vscan -c 'LANG=C LC_ALL=C /usr/local/sbin/amavisd' or the long way: # su - vscan $ export LANG; export LC_ALL; LANG=C; LC_ALL=C $ /usr/local/sbin/amavisd Atualizando spamassassin - backup da base do SA cd /var/amavis tar zcvf SA20050719backup.tar.gz ./.spamassassin - /etc/init.d/amavisd stop - su - amavis -c "sa-learn --dump magic" - su - amavis -c "sa-learn --sync" - atualize o spamassassin - cpan - install Mail::SpamAssassin - su - amavis -c "sa-learn --sync -D" - su - amavis -c "sa-learn --dump magic" para verificar o que ele aprendeu e se guardou os dados antigos - reinicie o amavisd - /etc/init.d/amavisd start