Linux‎ > ‎Correio‎ > ‎postfix‎ > ‎

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 PHP5

cd /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:



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

Comments