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.