Instalando Maia Mailguard no Debian Lenny

Baseado em: http://www200.pair.com/mecham/spam/debian-maia101.html

Atualização: Tem novidades em:http://www200.pair.com/mecham/spam/debian-maia-lenny.html com mais alugns detalhes. Mas o procedimento abaixo ainda é valido já que mostra o básico da instalação do software que funcionou sem problemas.

Primeiro passo: Remover o pacote amavisd-new atual devido a diferenças nos arquivos de configuração.

Opcional: echo "amavisd-new hold" | dpkg --set-selections

mkdir /etc/ambackup
cp /etc/init.d/amavis /etc/ambackup/amavis-init
cp -R /etc/amavis/ /etc/ambackup/amavis-backup
cp -R /usr/share/amavis/conf.d /usr/share/amavis/conf.d-temp
cp /usr/sbin/amavisd-new /usr/sbin/amavisd-new-temp
cp /usr/share/perl5/JpegTester.pm /usr/share/perl5/JpegTester.pm-temp
amavisd-new stop
apt-get remove amavisd-new 
cd /etc/init.d
wget http://www200.pair.com/mecham/debian/amavis-init-20030616
mv amavis-init-20030616 amavis
chmod +x amavis
cp /usr/sbin/amavisd-new-temp /usr/sbin/amavisd-new
cp -R /usr/share/amavis/conf.d-temp /usr/share/amavis/conf.d
cp /usr/share/perl5/JpegTester.pm-temp /usr/share/perl5/JpegTester.pm
/etc/init.d/amavis start 
mkdir /etc/ambackup
cp -R /etc/amavis/ /etc/ambackup/amavis-backup
cp /usr/sbin/amavisd-new /usr/sbin/amavisd-new-temp
amavisd-new stop
apt-get remove amavisd-new 
cp /usr/sbin/amavisd-new-temp /usr/sbin/amavisd-new
chmod +x /etc/init.d/amavis
/etc/init.d/amavis start 
Copiando os arquivos antigos.

cp /etc/amavis/amavisd.conf /etc/amavis/amavisd.conf-debian

cp /etc/amavis/amavisd.conf /etc/amavis/amavisd.conf-debian-backup

cp /etc/amavis/amavisd.conf /etc/amavis/amavisd.conf-maia

cp /usr/sbin/amavisd-new /usr/sbin/amavisd-new-debian

Fazendo link simbolicos

ln -s /etc/amavis/amavisd.conf /etc/amavisd.conf

Instalando MySQL

apt-get install mysql-server mysql-client

Outros programas necessários:

apt-get install libmysqlclient15-dev

apt-get install libcrypt-blowfish-perl libcrypt-cbc-perl libossp-uuid-perl libtemplate-perl libwww-perl

apt-get install libdigest-sha1-perl libhtml-parser-perl libdbd-mysql-perl libdbi-perl libunix-syslog-perl libio-stringy-perl libnet-server-perl libmailtools-perl libmime-perl libconvert-uulib-perl libconvert-tnef-perl libarchive-zip-perl libarchive-tar-perl

apt-get install cabextract libberkeleydb-perl libdigest-sha1-perl libdigest-hmac-perl libnet-dns-perl pax

Instalando o php5

apt-get install php5 php-pear php5-common php5-mysql php5-gd php5-sqlite smarty

Instalando módulos do php-pear

pear install Mail_Mime-1.3.1

pear install Log-1.9.9

pear install Pager-2.4.2

pear install Image_Color-1.0.2

pear install Image_Canvas-0.3.0

pear install Image_Graph-0.7.2

pear install Numbers_Roman-0.2.0

pear install Numbers_Words-0.14.0

pear install Auth_SASL-1.0.1

pear install Net_Socket-1.0.6

pear install Net_IMAP-1.0.3

pear install Net_POP3-1.3.6

pear install Net_SMTP-1.2.8

pear install DB-1.7.6

Existe um bug no Pie.php que veio com o Image_Graph-0.7.2. Se você instalou essa versão do Image_Graph, baixe este arquivo para corrigir o bug:

cd /usr/share/php/Image/Graph/Plot/

mv Pie.php Pie.php.orig

wget http://www200.pair.com/mecham/Pie.php.txt

mv Pie.php.txt Pie.php

Também é necessário aplicar um patch para o Net_IMAP que veio no PHP5cd /usr/share/php/Net/

cp IMAPProtocol.php IMAPProtocol-orig.php

wget http://www200.pair.com/mecham/spam/IMAPProtocol.php.patch.txt

patch IMAPProtocol.php < IMAPProtocol.php.patch.txt

cd

Se não instalou, instale o apache2

apt-get install apache2 libapache2-mod-php5

Temos que criar algumas pastas para que seja utilizado pelo maia

mkdir /var/lib/amavis/db

mkdir /var/lib/amavis/maia

mkdir /var/lib/amavis/maia/scripts

cd /var/lib/amavis/maia/scripts

cp /usr/local/src/maia/1.0/scripts/* .

cp load-sa-rules.pl 1

cp process-quarantine.pl 2

cp send-quarantine-digests.pl 3

sed 's/var\/amavisd/var\/lib\/amavis/g' 1 > load-sa-rules.pl

sed 's/var\/amavisd/var\/lib\/amavis/g' 2 > process-quarantine.pl

sed 's/var\/amavisd/var\/lib\/amavis/g' 3 > send-quarantine-digests.pl

rm 1 2 3

test -e /etc/maia.conf && cp /etc/maia.conf /etc/maia.conf-backup

cp /usr/local/src/maia/1.0/maia.conf.dist /etc/maia.temp

sed 's/var\/amavisd/var\/lib\/amavis/g' /etc/maia.temp > /etc/maia.conf

cp -r /usr/local/src/maia/1.0/templates /var/lib/amavis/maia/templates

chown -R amavis:amavis /var/lib/amavis

chmod -R 750 /var/lib/amavis

chmod 640 /var/lib/amavis/maia/templates/*.tpl

Edita o maia.conf e altere o endereço do $base_url para o endereço do webmail.

Configurando o MySQL

Crie um banco de dados maia

CREATE DATABASE maia;

USE maia;

Carregue o maia-msyql.sql para gerar o banco de dados:

SOURCE /usr/local/src/maia/1.0/maia-mysql.sql;

Você deve ter visto várias linhas similar a "Query OK, 1 row affected (0.01 sec)"

Agora vamos criar um usuário para o banco de dados amavis

GRANT CREATE, DROP, ALTER, SELECT, INSERT, UPDATE, DELETE ON maia.* TO amavis@localhost IDENTIFIED BY 'passwd';

FLUSH PRIVILEGES;

quit

Para ver se a configuração está ok

cd /var/lib/amavis/maia/scripts/

./configtest.pl

O resultado deve ser mais ou menos assim:

Perl : 5.8.4 : OK

file(1) : 4.12 : OK

Archive::Tar : 1.23 : OK

Archive::Zip : 1.14 : OK

BerkeleyDB : 0.26 : OK

Compress::Zlib : 1.34 : UPGRADE RECOMMENDED (minimum version ...

Convert::TNEF : 0.17 : OK

Convert::UUlib : 1.051 : UPGRADE RECOMMENDED (minimum version ...

Crypt::Blowfish : 2.09 : OK

Crypt::CBC : 2.12 : OK

Crypt::OpenSSL::RSA : N/A : NOT INSTALLED (SpamAssassin's optional...

Data::UUID : 0.11 : OK

DB_File : 1.808 : OK

DBD::mysql : 2.9006 : OK

DBD::Pg : N/A : NOT INSTALLED (required if you use Postgre...

DBI : 1.46 : OK

Digest::MD5 : 2.33 : OK

Digest::SHA1 : 2.10 : OK

File::Spec : 0.87 : OK

HTML::Parser : 3.45 : OK

HTTP::Date : 1.46 : OK

IO::Stringy : 2.110 : OK

IO::Zlib : 1.04 : OK

IP::Country : N/A : NOT INSTALLED (SpamAssassin's optional ...

LWP::UserAgent : 2.033 : OK

Mail::Address : 1.62 : OK

Mail::DomainKeys : N/A : NOT INSTALLED (SpamAssassin's optional ...

Mail::Internet : 1.62 : OK

Mail::SpamAssassin : 3.0.3 : OK

Mail::SPF::Query : N/A : NOT INSTALLED (SpamAssassin's optional SPF ...

MIME::Base64 : 3.04 : OK

MIME::Parser : 5.417 : UPGRADE RECOMMENDED (minimum version 5.420)

MIME::QuotedPrint : 3.03 : OK

Net::CIDR::Lite : N/A : NOT INSTALLED (SpamAssassin's optional SPF ...

Net::DNS : 0.48 : OK

Net::Server : 0.87 : UPGRADE RECOMMENDED (minimum version 0.93)

Net::SMTP : 2.29 : OK

Pod::Usage : 1.16 : OK

Template : 2.14 : OK

Time::HiRes : 1.59 : OK

Unix::Syslog : 0.100 : OK

URI : 1.35 : OK

Database DSN test : PASSED

Se (e apenas se) o DB_File não estiver instalado, deve instalar pelo CPAN:

perl -MCPAN -e shell

install DB_File

quit

Agora vamos copiar as regras do SpamAssassin para a base MySQL (Tenha certeza que o comando 'spamassassin –lint' não retorna nenhum erro, caso contrário, corriga antes de continuar).

spamassassin --lint

su amavis -c 'spamassassin --lint'

Como estamos usando o SpamAssassin 3.1.1 ou superior, podemos utilizar o novo sa-update.

Se quiser usar sem a chave GPG rode:

sa-update --nogpg

Opcionalmente, voce pode importar a chave gpg:

cd /etc/spamassassin

wget http://spamassassin.apache.org/released/GPG-SIGNING-KEY

gpg --import GPG-SIGNING-KEY

Então rode:

sa-update

cd /var/lib/amavis/maia/scripts

./load-sa-rules.pl

Você deve ter visto várias regras sendo carregadas; caso contrário verifique se o script aponta para as pastas certas (você o editou mais cedo). Agora vamos copiar a interface web.

É necessário que a pasta themes possa ter permissão de escrita para o usuário www-data (e amavis)

mkdir /var/www/maia

cp -r /usr/local/srcmaia/1.0/php/* /var/www/maia

ln -s /usr/share/php/smarty/libs /usr/share/php/Smarty

cp /var/www/maia/config.php.dist /var/www/maia/config.php

chgrp amavis /var/www/maia/themes/*/compiled

chmod 775 /var/www/maia/themes/*/compiled

gpasswd -a www-data amavis

Agora entre no configtest.php para verificar a instalação: Ex:

http://endereco.do.servidor.de.email.com.br/maia/admin/configtest.php

Deve aparecer uma janela com vários indicadores. Caso um dos componentes esteja faltando, faça as devidas correções.

O resultado deve ser parecido com o da janela abaixo:

Nota: se você precisa de suporte a IMAP, LDAP ou Mcrypt, você é livre para:

apt-get install php5-imap php5-ldap php5-mcrypt (mas apenas quando necessário)

Tambem deve notar que aplicamos os patches no Image_Graph e Net_IMAP. Então lembre-se de reinicair o apache2 quando fizer as mudanças.

Agora vamos copiar (e renomear a versão maia do amavisd-new)

cp /usr/local/src/maia/1.0/amavisd-maia /usr/sbin/amavisd-new-maia

Vamos começar com uma configuração específica para o Maia. Pode-se baixar um arquivo especifico para ser utilizada no Debian:

cd /etc/amavis

wget http://www200.pair.com/mecham/amavisd.conf.maia

mv amavisd.conf.maia amavisd.conf-maia

Só é preciso fazer algumas mudanças na configuração do maia.

/etc/amavis/amavisd.conf-maia

Quando quiser utilizar o maia como o seu programa, deve-se parar o amavisd-new

amavisd-new stop

Então, copia os arquivos do Maia sobre os arquivos do amavisd-new

cp /usr/sbin/amavisd-new-maia /usr/sbin/amavisd-new

cp /etc/amavis/amavisd.conf-maia /etc/amavis/amavisd.conf

Então, inicia o amavisd-new do maia (Na primeira vez é uma boa idéia iniciar com o comando 'amavisd-new debug’)

amavisd-new start

Agora é monitorar os logs com o comando:

tail -f /var/log/mail.log

Se você tem o 20030616-p10 ou superior instalado, deve evitar que ele seja atualizado no apt-get upgrade

echo "amavisd-new hold" | dpkg --set-selections

Ativando a administração

Para se tornar um administrador, na primeira vez que utilizar o maia, deve-se acessar o seguinte endereço:

http://endereco.do.servidor.de.email.com.br/maia/login.php?super=register

Conseguindo se logar neste endereço já garante o acesso administrativo. Como o sistema só garante apenas um administrador por este link, nenhuma outra pessoa vai conseguir obter acesso administrativo por este link.

Instalando pacotes de linguagem:

http://www.maiamailguard.com/files/maia-lang-pt.tar.gz

O anti-spam pode ser acessado em http://mail.site-anti-spam.com.br/maia

O login do administrador é suporte@site-antispam.com.br

Para ver as contas dos usuários, entra em Administração -> Utilizadores, para encontrar o que aparece na janela abaixo:

Após clicar em Find Users:

Para acessar o que cada usuário recebeu é só clicar no email correspondente:

Acessando a lista de spam:

Acessando a mensagem:

Reportar como SPAM: Confirma que a mensagem é mesmo um SPAM

Confirmar este item como Não-Spam: Indica que a mensagem não é spam e treina o spamassassin para detectar se é spam ou não.

Eliminar este item: Apaga a mensagem sem ao menos treinar o spamassassin

Ver Código-Fonte: Abre o fonte da mensgem. Útil para ver de onde veio a mensagem.

Próximo passo: Alterar as opções do filtro para que os emails sejam enviados sem passar pelo anti-spam

Tem como base: http://www.adilson.net.br/2009/11/como-fazer-para-que-os-usuarios.html

main.cf original

#Amavis

content_filter = amavis:[127.0.0.1]:10024

receive_override_options = no_address_mappings

...

# Restrição apos comando MAIL FROM

smtpd_sender_restrictions =

permit_mynetworks,

permit_sasl_authenticated

main.cf modificado

#Amavis

content_filter =

receive_override_options =

#O content_filter deve ficar vazio para colocar as regras de

#exclusão. O mesmo vale para o receive_override_options por conta

#de um software de lista que roda no servidor e não pode ter

#interferencias

# Restrição apos comando MAIL FROM

smtpd_sender_restrictions =

permit_mynetworks,

permit_sasl_authenticated,

check_sender_access regexp:/etc/postfix/sasl-bypass

# É neste check_sender_access que fica a parte principal para o uso do amavis.

Dentro do sasl-bypass

/^/ FILTER amavis:[127.0.0.1]:10024

Salve o arquivo e rode o comando "postfix reload" para recarregar as configurações.

Voltar a página anterior