Informática Numaboa - Linux
Debian + Postfix + PostfixAdmin + SquirrelMail
Sab 16 Mai 2009 01:19 |
- Detalhes
- Categoria: Como fazer instalações
- Atualização: Quinta, 28 Janeiro 2010 21:08
- Autor: vovó Vicki
- Acessos: 59434
- Debian + Postfix + PostfixAdmin + SquirrelMail
- A lista de fontes
- Iptables e logcheck
- MySQL, Postfix e Dovecot
- Certificados SSL (Autoridade)
- Certificados SSL (Requisições)
- phpMyAdmin
- SquirrelMail e PostfixAdmin
- SquirrelMail e PostfixAdmin II
- SquirrelMail e PostfixAdmin III
- Configurar SASL e TLS
- Amavis e SpamAssassin
- Amavis, SpamAssassin, ClamAV, Razor, Pyzor
- Amavis
- Amavis II
- Tabelas Bayes e AWL
- Personalizar o SquirrelMail
- Razor, pflogsumm e BIND
- Configurações Postfix adicionais
- Férias no PostfixAdmin
- Quotas, MailGraph e mysql-zrm
- O problema dos Aliases
- Todas as Páginas
Para configurar a 'entrega' Dovecot, pegue primeiro o arquivo global.sieve que contém instruções de como entregar spam na pasta Spam do usuário. Também precisamos criar um arquivo de log dovecot-deliver.log para podermos acompanhar como a entrega de emails está sendo feita:
mkdir /var/sieve cd /var/sieve wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/global.sieve.txt mv global.sieve.txt global.sieve chown -R vmail:vmail /var/sieve chmod -R 0700 /var/sieve touch /var/log/dovecot-deliver.log chown vmail:vmail /var/log/dovecot-deliver.log cd /etc/logrotate.d/ wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/deliver.logrotate.txt mv deliver.logrotate.txt dovecot-deliver
Veja os scripts baixados: global sieve e deliver logrotate.
Agora é preciso editar a entrada dovecot em master.cf. Também faremos um backup do master.cf original:
cp -i /etc/postfix/master.cf /etc/postfix/master.cf-17mai2009 vi /etc/postfix/master.cf
Localize o transporte maildrop atual e depois insira o transporte dovecot como mostrado:
maildrop unix - n n - - pipe flags=ODRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient} -eDepois recarregue o Postfix:
postfix stop postfix start
Você deve receber uma mensagem de erro dizendo que os arquivos diferem (files differ). Execute o LINUX2 para corrigir isto. Neste ponto, precisamos configurar o Dovecot. Vamos fazer muitas alterações nos arquivos /etc/dovecot/dovecot.conf e /etc/dovecot/dovecot-sql.conf para que trabalhem adequadamente no nosso ambiente atual, por isto, ao invés de editá-los, baixe arquivos novos:
cd /etc/dovecot mv dovecot.conf dovecot.conf.original wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/dovecot.conf.txt mv dovecot.conf.txt dovecot.conf sed -i 's/postmaster@example.tld/postmaster@exemplo.com/' dovecot.conf chmod 0644 dovecot.conf mv dovecot-sql.conf dovecot-sql.conf.original wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/dovecot-sql.conf.txt mv dovecot-sql.conf.txt dovecot-sql.conf sed -i 's/password=password/password=pfix_senha/' dovecot-sql.conf chmod 0600 dovecot-sql.conf wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/dovecot-crammd5.conf.txt mv dovecot-crammd5.conf.txt dovecot-crammd5.conf sed -i 's/password=password/password=pfix_senha/' dovecot-crammd5.conf chmod 0600 dovecot-crammd5.conf /etc/init.d/dovecot restart
Veja os scripts baixados: dovecot.conf, dovecot-sql.conf e dovecot-crammd5.conf.
Vamos recomeçar com tudo limpinho por que, de qualquer modo, precisamos nos certificar de que algumas coisas estejam funcionando depois de um reboot:
reboot exit
Assim que o sistema estiver de volta, faça login e:
tail -f /var/log/mail.log
Agora vamos mandar uma mensagem através do sistema para ver se ela chega no nosso maildir. A esta altura você já deve ter um MUA configurado para usar este servidor como seu servidor de saída. Você também deve ser capaz de configurá-lo para que se conecte com o servidor IMAP usando seu nome de usuário (o endereço de email completo) e uma senha. Por padrão, o Dovecot não vai permitir que você se autentique no servidor IMAP passando uma senha em texto claro (não criptografada) via rede, por isto você precisa configurar seu MUA para usar SSL (TLS) na porta 993 (IMAP seguro). Acontece que ainda não configuramos o Postfix para usar SASL, por isto, no momento, será preciso usar a porta 25 como porta de saída do seu SMTP. Assumindo que você tenha tido sucesso ao criar um maildir para você mesmo (via interface do PostfixAdmin), envie uma mensagem para você mesmo e verifique se ela foi recebida. Use um tail no arquivo mail.log enquanto a mensagem é processada (chame o tail antes de enviar a mensagem e fique observando). Faça também um grep fatal /var/log/mail.log. Um sucesso deve ter o seguinte aspecto:
Mai 17 14:02:08 ns2 postfix/pipe[12517]: C2506E99C5: to=<teste@exemplo.com>, relay=dovecot, delay=0.19, delays=0.11/0.02/0/0.06, dsn=2.0.0, status=sent (delivered via dovecot service)
Se houver erro, ele precisa ser corrigido antes de continuar. Fizemos uma porção de alterações numa porção de arquivos. A probabilidade de algum detalhe ter escapado é grande, o que pode impedir a entrega de mensagens. É preciso conhecer os arquivos envolvidos e procurar identificar a ou as configurações incorretas. Alguma familiaridade com o Postfix também é muito bom, assim como conhecer comandos básicos do mailq, postsuper, qshape e postqueue. Lembre-se também que você tem o phpMyAdmin para analisar as bases de dados e para eventualmente fazer algumas alterações diretamente. Analise a base de dados 'postfix' para se acostumar com a estrutura dos dados. Talvez também seria conveniente criar uma conta IMAP para o usuário teste@exemplo.com e enviar uma mensagem para este endereço e depois verificar se ela foi recebida no maildir:
ls -al /var/vmail/exemplo.com/teste/new
cat /var/log/dovecot-deliver.log
Se você pode entregar mensagens para um usuário, seria uma boa idéia se familiarizar com o PostfixAdmin agora. Adicione alguns aliases e alguns domínios. Brinque com o software. O Postfix não vai mais usar /etc/aliases para os domínios virtuais, assim:
Você precisa criar aliases (ou caixas postais) para root, abuse, postmaster, webmaster, clamav e logcheck em exemplo.com
root@exemplo.com deve ter seus emails encaminhados para um endereço de usuário real (ele não deve ser uma caixa de correio, deve ser um alias). Se você não conseguir criar aliases ou caixas postais para mensagens geradas pelo sistema, o Dovecot vai saltar mensagens ou você vai acabar com mensagens perdidas em /var/mail/. Seria uma boa idéia ver o que você tem lá agora.
Configure seu MUA para buscar mensagens do servidor de email via IMAP SSL (TSL) na porta 993. Se você precisar usar POP3, use POP3 SSL (TLS) na porta 995. Clientes POP3 só serão capazes de buscar emails da pasta /new, o que significa que eles nunca poderão ver a pasta Spam, a não ser que se use o SquirrelMail. Por padrão, senhas inseguras em texto claro nas portas 110 (POP3) e 143 (IMAP) não são permitidas. Se precisar usar o POP3 e IMAP padrão, então será preciso adicionar a configuração "disable_plaintext_auth = no" em dovecot.conf. Alguns clientes podem querer usar CRAM-MD5 para se autenticar. Se este for o caso, você vai precisar chamar o phpMyAdmin e inserir uma senha em texto claro no campo 'clear' para estes usuários - isto só vai funcionar se você estiver usando o esquema proposto para a base de dados onde o campo 'clear' foi adicionado. Se você ainda não o fez, instale o certificado CA que criamos anteriormente no cliente teste. Se o certificado raiz não foi instalado como deve, podemos ter todo tipo de dor de cabeça.
Existem três scripts (de contribuição) que vêm com o PostfixAdmin. Estão no diretório /usr/share/doc/postfixadmin/ADDITIONS que são usados para deletar maildirs órfãos (endereços de email que você deleta no PostfixAdmin, mas onde os arquivos permanecem no sistema). Como mencionado anteriormente, não deletamos os maildirs automaticamente quando um usuário é removido. Como sugestão, deixe os arquivos órfãos parados por algum tempo. Um dos scripts fornecidos poderia deletar tudo se deixássemos - e isto pode não ser bom. Um dos outros dois, cleanupdirs.pl, parece ser bom, mas ainda assim não vamos permitir que delete os maildirs - só vamos usá-lo para indicar os diretórios órfãos. Também vamos trocar seu nome para maildircheck.
cp -i /usr/share/doc/postfixadmin/ADDITIONS/cleanupdirs.pl /usr/sbin/maildircheck
touch /var/log/maildircheck.log sed -i "s|/home/vmail|/var/vmail|" /usr/sbin/maildircheck sed -i "s/removed_maildirs.log/maildircheck.log/" /usr/sbin/maildircheck sed -i "s/someuser/postfix/" /usr/sbin/maildircheck sed -i "s/somepass/pfix_senha/" /usr/sbin/maildircheck sed -i "s/ rmtree/# rmtree/" /usr/sbin/maildircheck sed -i "s/'\$to_delete'/\$to_delete/" /usr/sbin/maildircheck sed -i "s/Need to delete/Orphaned/" /usr/sbin/maildircheck chmod 700 /usr/sbin/maildircheck
cd /etc/logrotate.d wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/maildircheck.txt mv maildircheck.txt maildircheck
Veja o script baixado: maildircheck.
Observe que no código acima a linha 'rmtree' está comentada (anulada). Este é um ponto importante. Para testar, você precisa deletar um usuário teste através da interface PostfixAdmin e depois executar:
maildircheck
Se você deletar teste@exemplo.com, confira e garanta que o diretório de email NÃO foi deletado. Por exemplo, rode ls -l /var/vmail/exemplo.com/teste. Depois, adicione novamente o usuário. Se você insisitir e quiser usar este script para deletar os diretórios, você vai precisar tirar o "#" para 'descomentar' e linha 'rmtree'. Espero que o script funcione e que você não acabe deletando todas as caixas postais do sistema
Agora tenho um script opcional que deleta automaticamente as mensagens deixadas na pasta Spam de todos os usuários por mais de 24 dias. Você pode testá-lo (com menos dias) mudando temporariamente o número de dias (-mtime 0 = 1 day).
cd /etc/cron.daily wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/rmmailboxspam.txt mv rmmailboxspam.txt rmmailboxspam chmod +x rmmailboxspam
Veja o script baixado: rmmailboxspam.
Gosto de bloquear a possibilidade de super administradores deletarem domínios. Isto é opcional e remove o link para 'del' o domínio:
sed -i "s|$PALANG\['del'\]|$PALANG\[''\]|" /usr/share/postfixadmin/templates/admin_list-domain.php
Para voltar a permitir esta tarefa, ou seja, se você precisar deletar um domínio com todas as suas caixas postais e aliases:
sed -i "s|$PALANG\[''\]|$PALANG\['del'\]|" /usr/share/postfixadmin/templates/admin_list-domain.php