Postfix e MySQL · 6 min read · Jan 11, 2026
Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail (CentOS 4.8 i386) - Página 4
13 Instalar Razor, Pyzor E DCC E Configurar SpamAssassin
Razor, Pyzor e DCC são filtros de spam que usam uma rede de filtragem colaborativa. Para instalar o Razor, execute
yum install perl-Razor-Agent razor-agentsO Pyzor não está disponível nos repositórios do CentOS 4.8, mas podemos instalar o pacote Pyzor para RHEL 4 em vez disso (este é um pacote noarch, ou seja, funciona em x86_64 e i386):
rpm -ivh ftp://ftp.pbone.net/mirror/ftp.silfreed.net/repo/rhel/4/i386/silfreednet/RPMS/pyzor-0.4.0-2.el4.noarch.rpm(Você pode usar a pesquisa RPM em http://rpm.pbone.net/ para encontrar a versão atual se o link acima não funcionar mais.)
Então inicialize ambos os serviços:
chmod -R a+rX /usr/share/doc/pyzor-0.4.0 /usr/bin/pyzor /usr/bin/pyzord
chmod -R a+rX /usr/lib/python2.3/site-packages/pyzor
mkdir /var/spool/amavisd
chown amavis:amavis /var/spool/amavisd
su -m amavis -c 'pyzor --homedir /var/spool/amavisd discover'
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -create'
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -register'Então instalamos o DCC da seguinte forma:
cd /tmp
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z
tar xzvf dcc-dccproc.tar.Z
cd dcc-dccproc-1.3.115
./configure --with-uid=amavis
make
make install
chown -R amavis:amavis /var/dcc
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifdAgora temos que informar ao SpamAssassin para usar esses três programas. Edite /etc/mail/spamassassin/local.cf para que fique assim:
vi /etc/mail/spamassassin/local.cf| # Esses valores podem ser substituídos editando ~/.spamassassin/user_prefs.cf # (veja spamassassin(1) para detalhes) # Essas devem ser suposições seguras e permitir uma filtragem visual simples # sem risco de emails perdidos. #required_hits 5 #report_safe 0 #rewrite_header Subject [SPAM] # dcc use_dcc 1 dcc_path /usr/local/bin/dccproc #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor #razor use_razor2 1 razor_config /var/spool/amavisd/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |
Então devemos habilitar o plugin DCC no SpamAssassin. Abra /etc/mail/spamassassin/v310.pre e descomente a linha loadplugin Mail::SpamAssassin::Plugin::DCC:
vi /etc/mail/spamassassin/v310.pre| [...] # DCC - realizar verificações de mensagens DCC. # # DCC está desativado aqui porque não é código aberto. Veja a licença do DCC # para mais detalhes. # loadplugin Mail::SpamAssassin::Plugin::DCC [...] |
Você pode verificar sua configuração do SpamAssassin executando:
spamassassin --lintNão deve mostrar nenhum erro.
Execute
/etc/init.d/amavisd restartdepois.
Agora atualizamos nossos conjuntos de regras do SpamAssassin da seguinte forma:
sa-update --no-gpgCriamos um cron job para que os conjuntos de regras sejam atualizados regularmente. Execute
crontab -epara abrir o editor de cron jobs. Crie o seguinte cron job:
| 23 4 */2 * * /usr/bin/sa-update --no-gpg &> /dev/null |
Isso atualizará os conjuntos de regras a cada dois dias às 4:23h.
14 Notificações de Excesso de Quota
Se você quiser receber notificações sobre todas as contas de email que estão acima da quota, então faça isso:
cd /usr/local/sbin/
wget http://puuhis.net/vhcs/quota.txt
mv quota.txt quota_notify
chmod 755 quota_notifyAbra /usr/local/sbin/quota_notify e edite as variáveis no topo. Mais abaixo no arquivo (perto do final) há duas linhas onde você deve adicionar um sinal de % ( $lusers{$luser}%):
vi /usr/local/sbin/quota_notify| [...] my $POSTFIX_CF = "/etc/postfix/main.cf"; my $MAILPROG = "/usr/sbin/sendmail -t"; my $WARNPERCENT = 80; my @POSTMASTERS = ('[email protected]'); my $CONAME = 'Minha Empresa'; my $COADDR = '[email protected]'; my $SUADDR = '[email protected]'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1; [...] print "Subject: WARNING: Sua caixa de entrada está $lusers{$luser}% cheia.\n"; [...] print "Sua caixa de entrada: $luser está $lusers{$luser}% cheia.\n\n"; [...] |
Execute
crontab -epara criar um cron job para esse script:
| 0 0 * * * /usr/local/sbin/quota_notify &> /dev/null |
15 Testar Postfix
Para ver se o Postfix está pronto para SMTP-AUTH e TLS, execute
telnet localhost 25Depois de estabelecer a conexão com seu servidor de email Postfix, digite
ehlo localhostSe você ver as linhas
*250-STARTTLS *e
*250-AUTH PLAIN* LOGIN* *tudo está bem.
[root@server1 sbin]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.
[root@server1 sbin]#Digite
quitpara retornar ao shell do sistema.
16 Popular O Banco De Dados E Testar
Para popular o banco de dados, você pode usar o shell do MySQL:
mysql -u root -pUSE mail;Pelo menos você deve criar entradas nas tabelas domains e users:
INSERT INTO `domains` (`domain`) VALUES ('example.com');
INSERT INTO `users` (`email`, `password`, `quota`) VALUES ('[email protected]', ENCRYPT('secret'), 10485760);(Por favor, tenha cuidado para usar a sintaxe ENCRYPT na segunda instrução INSERT para criptografar a senha!)
Se você quiser fazer entradas nas outras duas tabelas, isso seria assim:
INSERT INTO `forwardings` (`source`, `destination`) VALUES ('[email protected]', '[email protected]');
INSERT INTO `transport` (`domain`, `transport`) VALUES ('example.com', 'smtp:mail.example.com');Para sair do shell do MySQL, digite
quit;Para a maioria das pessoas, é mais fácil ter uma interface gráfica para o MySQL; portanto, você também pode usar o phpMyAdmin (neste exemplo sob http://192.168.0.100/phpmyadmin/ ou http://server1.example.com/phpmyadmin/) para administrar o banco de dados mail. Novamente, ao criar um usuário, certifique-se de usar a função ENCRYPT para criptografar a senha:
Não acho que eu precise explicar mais sobre as tabelas de domínios e usuários.
A tabela de encaminhamentos pode ter entradas como as seguintes:
| source | destination | |
| [email protected] | [email protected] | Redireciona emails de [email protected] para [email protected] |
| @example.com | [email protected] | Cria uma conta Catch-All para [email protected]. Todos os emails para example.com chegarão a [email protected], exceto aqueles que existem na tabela de usuários (ou seja, se [email protected] existir na tabela de usuários, os emails para [email protected] ainda chegarão a [email protected]). |
| @example.com | @anotherdomain.tld | Isso redireciona todos os emails para example.com para o mesmo usuário em anotherdomain.tld. Por exemplo, emails para [email protected] serão encaminhados para [email protected]. |
| [email protected] | [email protected], [email protected] | Encaminha emails de [email protected] para dois ou mais endereços de email. Todos os endereços de email listados sob o destino recebem uma cópia do email. |
A tabela de transporte pode ter entradas como estas:
| domain | transport | |
| example.com | : | Entrega emails para example.com localmente. Isso é como se esse registro não existisse nesta tabela. |
| example.com | smtp:mail.anotherdomain.tld | Entrega todos os emails para example.com via smtp para o servidor mail.anotherdomain.com. |
| example.com | smtp:mail.anotherdomain.tld:2025 | Entrega todos os emails para example.com via smtp para o servidor mail.anotherdomain.com, mas na porta 2025, não 25, que é a porta padrão para smtp. |
| example.com | smtp:[1.2.3.4]
smtp:[1.2.3.4]:2025
smtp:[mail.anotherdomain.tld] | Os colchetes impedem o Postfix de fazer buscas do registro MX DNS para o endereço entre colchetes. Faz sentido para endereços IP. | | .example.com | smtp:mail.anotherdomain.tld | Emails para qualquer subdomínio de example.com são entregues a mail.anotherdomain.tld. | | * | smtp:mail.anotherdomain.tld | Todos os emails são entregues a mail.anotherdomain.tld. | | [email protected] | smtp:mail.anotherdomain.tld | Emails para [email protected] são entregues a mail.anotherdomain.tld. |
Veja
man transportpara mais detalhes.
Por favor, tenha em mente que a ordem das entradas na tabela de transporte é importante! As entradas serão seguidas de cima para baixo.
Importante: O Postfix usa um mecanismo de cache para os transportes, portanto, pode levar um tempo até que você veja as mudanças na tabela de transporte terem efeito. Se você quiser que elas tenham efeito imediatamente, execute
postfix reloaddepois de fazer suas alterações na tabela de transporte.
17 Enviar Um Email De Boas-Vindas Para Criar Maildir
Quando você cria uma nova conta de email e tenta buscar emails dela (com POP3/IMAP), provavelmente receberá mensagens de erro dizendo que o Maildir não existe. O Maildir é criado automaticamente quando o primeiro email chega para a nova conta. Portanto, é uma boa ideia enviar um email de boas-vindas para uma nova conta.
Primeiro, instalamos o pacote mailx:
yum install mailxPara enviar um email de boas-vindas para [email protected], fazemos isso:
mailx [email protected]Você será solicitado a digitar o assunto. Digite o assunto (por exemplo, Boas-vindas), depois pressione ENTER, e na próxima linha digite sua mensagem. Quando a mensagem estiver pronta, pressione ENTER novamente para que você esteja em uma nova linha, depois pressione CTRL+D:
[root@server1 sbin]# mailx [email protected]
Subject: Boas-vindas <– ENTER
Bem-vindo! Divirta-se com sua nova conta de email. <– ENTER
<– CTRL+D
Cc: <– ENTER
[root@server1 sbin]#
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.