Servidor de e-mail no Linux com MTA Sceo

Como configurar um servidor de email no Linux usando MTA Sceo e Courier-IMAP com base de dados MySQL, Maildir, proteção antivírus com Clamav, proteção antispam com SPF e Greylist, quota de caixa postal e controle de número de emails enviados por cliente.

[ Hits: 43.086 ]

Por: Lucas Priori em 15/09/2008


Courier-IMAP



Digite:

# cd /home/temp
# tar xvjf courier-imap-4.4.1.tar.bz2


Para compilar o Courier-IMAP é preciso não ter privilégios de root. Mas antes vamos alterar as permissões dos arquivos do Courier para o usuário que vai utilizar para compilá-lo. No meu caso é o usuário lucas:

# useradd lucas
# passwd lucas

<Entre com a senha do 'lucas'>

# chown -R lucas. courier-imap-4.4.1

Logue-se com o usuário comum ('lucas' no meu caso) e depois compile o programa. Não se assuste, o processo é meio demorado mesmo e parece ter entrado em loop infinito, é normal.

# cd /home/temp/courier-imap-4.4.1
# ./configure --sysconfdir=/etc/courier
# make


# cd /home/temp/courier-imap-4.4.1
# make install
# make install-configure


Abaixo vou demonstrar como ligar/desligar o Courier-IMAP, mas você NÃO precisa ligá-lo agora. Vou passar mais abaixo um script para controlá-lo.

Para iniciar o IMAP e POP3:

# /usr/lib/courier-imap/libexec/imapd.rc start
# /usr/lib/courier-imap/libexec/pop3d.rc start


Para parar o IMAP e POP3:

# /usr/lib/courier-imap/libexec/imapd.rc stop
# /usr/lib/courier-imap/libexec/pop3d.rc stop


Script de controle do Courier-IMAP

Crie o arquivo /etc/rc.d/rc.courier:

# pico /etc/rc.d/rc.courier

Copie e cole o conteúdo abaixo no arquivo /etc/rc.d/rc.courier.

#!/bin/sh
#############################################
# Script de controle do servidor Courier-IMAP
# ./rc.courier start -> Ligar servidor
# ./rc.courier stop -> Parar servidor
# ./rc.courier restart -> Reiniciar servidor
#
#
#

ligar_courier() {
echo "Iniciando Courier-IMAP..."
/usr/local/sbin/authdaemond start
/usr/lib/courier-imap/libexec/imapd.rc start
/usr/lib/courier-imap/libexec/pop3d.rc start
}
# Stop courier:
parar_courier() {
echo "Parando Courier-IMAP..."
/usr/lib/courier-imap/libexec/imapd.rc stop
/usr/lib/courier-imap/libexec/pop3d.rc stop
/usr/local/sbin/authdaemond start
}
case "$1" in
'start')
ligar_courier
;;
'stop')
parar_courier
;;
'restart')
parar_courier
sleep 1
ligar_courier
;;
*)
echo "Os parâmetros aceitáveis são: $0 start|stop|restart"
esac

Dê permissão de execução ao script:

# chmod 700 /etc/rc.d/rc.courier

Testando o IMAP e POP3:

Ligue o Courier:

# /etc/rc.d/rc.courier start

Antes de testá-lo, precisamos criar o diretório do usuário lucas@dominio.com.br. No banco de dados dissemos que a caixa postal desta conta está em /home/mail/dominio.com.br/lucas/Maildir.

Crie o caminho assim:

# mkdir -p /home/mail/dominio.com.br/lucas
# cd /home/mail/dominio.com.br/lucas
# /usr/lib/courier-imap/bin/maildirmake Maildir
# touch /home/mail/dominio.com.br/lucas/Maildir/maildirsize
# chown -R sceo. /home/mail


ATENÇÃO: Tenha em mente que para o maildrop entregar a mensagem ele precisa que o diretório 'mail', 'dominio.com.br', e que tudo dentro de 'lucas' esteja com permissão para o usuário 'sceo', senão você terá o erro 'Home directory owned by wrong user', então sempre que criar um novo domínio lembre-se de definir o usuário 'sceo' apenas para a pasta do domínio e depois para a subpasta dos emails que criar.

Não execute sempre o 'chown -R sceo. /home/mail' a cada conta criada, pois se você tiver 1000 contas de emails, o sistema operacional vai lembrar muito da sua mamãezinha por ter que redefinir a permissão de milhões de diretórios desnecessariamente. Coloque-se no lugar do processador. ;-)

É extremamente importante que o arquivo maildirsize esteja sempre com permissão para o usuário 'sceo'. O Courier e o Maildrop atualizam neste arquivo a movimentação dos emails da caixa postal.

O módulo sceo_mysql analisa este arquivo para saber se a caixa postal esta lotada ou não. O módulo só considera a caixa postal lotada depois que ela excedeu seu limite.

Testando o IMAP

# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready.
Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution
information.

Digite:

? login lucas@dominio.com.br mudar123

Se tudo ocorreu bem, ele responderá:

? OK LOGIN Ok.

Para sair:

? logout

Testando o POP3

# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.

Digite:

user lucas@dominio.com.br
+OK Password required.

Digite:

pass mudar123
+OK logged in.

Digite:

quit
+OK Bye-bye.

Maildrop

O Maildrop é o programa que recebe o email do Sceo e entrega-o em sua respectiva caixa postal.

# cd /home/temp
# tar xvjf maildrop-2.0.4.tar.bz2
# cd maildrop-2.0.4
# ./configure --sysconfdir=/etc/courier --enable-maildirquota
# make
# make install-strip
# make install-man


Feito, Maildrop instalado e terminamos a parte do Courier.

Página anterior     Próxima página

Páginas do artigo
   1. Preparando-se
   2. Courier-Authlib
   3. Courier-IMAP
   4. MTA Sceo
   5. Configurando o SPF
   6. Greylist
   7. Quota de caixa postal e número de emails enviados
   8. Antivírus Clamav e finalizando
Outros artigos deste autor

MTA Selor: Servidor de E-mails - Novo Projeto GPL

Benchmark entre servidores de e-mails

Dividindo carga de saída de servidor SMTP (MTA Selor)

Servidor de emails com Dovecot e MTA Sceo (projeto brasileiro)

Leitura recomendada

Clamav com Mailscanner para Postfix

Utilizando o pine com o fetchmail

Hotwayd :: Conectando-se ao servidor POP3 do Hotmail

Servidor Postfix com Fedora Core 4

Usando Spammer e SpamDomains no sendmail

  
Comentários
[1] Comentário enviado por giovanildo em 15/09/2008 - 09:49h

É por causa de artigos como esse que se tornou rotina a minha visita a este site, o q tenho a dizer eh obrigado.

[2] Comentário enviado por naarea em 15/09/2008 - 11:56h

So tomem cuidado com a questão da licença do software
"2) Esta versão do MTA Sceo não disponibiliza seu código-fonte, ficando
obrigado a qualquer um não modificar, descompilar ou utilizar qualquer outro
meio para descobrir o código-fonte do programa."

"Você deve estar ciente de que o programa não
é livre de defeitos e seus autores e/ou distribuidores não dão e não
podem dar qualquer tipo de garantias"

Mais parabens pelo tutorial.

[3] Comentário enviado por lpriori em 15/09/2008 - 13:24h

Ola naarea e giovanildo,

Obrigado, é muito bom poder contribuir para a comunidade.
Pretendo escrever muito mais.

O software é grátis como os de licença GPL, mas por enquanto só não é possível modifica-lo porque seu código fonte não esta disponível.

Toda idéia das "garantias" foram tiradas da licença GPL que tenta sempre proteger o autor de qualquer problema. Foi apenas isso que tentei fazer. Este programa esta em uso em muitos lugares e a muito tempo sem dar problemas, sem sequer precisar ser reiniciado.

Não tenho sequer pensamentos de num futuro próximo cobrar o uso do programa, muito pelo contrário, espero disponibiliza-lo sob GPL também, assim como seus utilitários disponíveis no site.

Conheço vários outros programadores que também tem medo de disponibilizar o código fonte de seu projeto e na maioria das vezes eles nem mesmo divulgam o projeto. Uma pena pois nosso país é residência dos melhores programadores.

O Sceo é um projeto muito especial pra mim. Esta disponível porque tenho certeza absoluta que seu poder em velocidade, flexibilidade e segurança vai ajudar muito todos nós da comunidade e porque tenho o sonho de incentivar nós brasileiros a mostrar que temos o potencial para bater de frente com os enlatados de fora e principalmente porque quero receber dicas de melhorias.

Gostaria de aproveitar e agradecer ao grupo vivaolinux. Achei extremamente profissional o processo de criação de tutorial aqui.



[4] Comentário enviado por renatomartins em 15/09/2008 - 14:35h

Parabéns pelo MTA.
Mas não caia no erro do qmail, que devido o tipo da licença não se popularizou, e não pode ser integrada nas distribuições e não teve o devido crescimento. Isso foi uma grande perda para a comunidade livre.
Mas mesmos sem licença mas com código aberto ele é considerado o melhor servido de email do mundo.( o código do qmail é aberto com ressalva o núcleo não pode ser alterado só podemos aplicar patch. )

Outra coisa se você abrir seu código alem de ganhar varias contribuições e atá melhorias. Você pode aprende muito com outros programadores e talvez até uma distro linux receber seu servidor como uma alternativa ate mesmo para o qmail e portfix.

Eu mesmo já precisei fazer varias alterações tanto no postfix quanto qmail e isso só foi possível devido o código ser aberto

Um grande abraço e novamente Parabéns

[5] Comentário enviado por grandmaster em 15/09/2008 - 17:24h

Muito bom saber que temos mais opções :D

Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[6] Comentário enviado por nariz em 16/09/2008 - 08:36h

nao conhecia esse
testarei em breve

obrigado

[7] Comentário enviado por c.rafael em 16/09/2008 - 17:32h

lpriori ,

Meus parabéns pelo o software e pelo insentivo de colocar o mesmo no VL. Irei testar o mesmo e colocar o resultado do mesmo aqui.

Abraços

[8] Comentário enviado por Telli em 16/09/2008 - 17:44h

Mas não possui nem um webmail ? E como criar as contas de e-mail nele ?

[9] Comentário enviado por lpriori em 20/09/2008 - 17:43h

Desculpem-me mas ficou faltando um comando no tutorial.

Logo após a instalação do Maildrop, é preciso setar o uid dele senão ele pode ter problemas para entregar o email na caixa postal.

# chmod 4555 /usr/local/bin/maildrop

É só fazer isto e tudo fica ok

Em relação a criação de contas de emails:
Estou terminando uma ferramenta de criação das contas de emails no banco de dados MySQL que será anexada ao pacote do sceo_mysql em breve.


Obrigado a todos pelos comentários.
Espero que gostem do projeto.


[10] Comentário enviado por kram3r em 09/10/2008 - 20:43h

Caro lpriori,
adorei o seu mta. Simples prático rápido e seguro.
Implementei ele em 2 servidores que utilizo e estão trabalhando de forma absolutamente Jóia!!!
porem, vc comentou que esta terminando uma ferramenta de criacao de contas. Eu a fiz e estou somente finalizando e o código estará liberado após alguns testes. Inclusive gostaria de uma avaliação sua e do pessoal que já o tem implementado (basta entrar em contato).
Outra coisa que gostaria de saber, é como implementar lista de discussao nele (como o mailman, ezmlm, majordomo e outros...)Há algum já implementado com SCEO?

Grande abraço e parabens.

[11] Comentário enviado por lpriori em 21/10/2008 - 16:13h

Obrigado pelo comentário aqui e o que me enviou por email, kram3r

Como disse a você via email, eu nunca instalei esses gerenciadores de listas com Sceo. Quando você o fizer,
ficaremos feliz em ler um tutorial seu explicando o caminho (principalmente eu) ;-)

Podem enviar qualquer dúvida ou sugestão por email ou pelo site sceo.hospedaria.com.br que
ficarei feliz em ajudar ou que me ajudem. =)

Uma nova versão do Sceo esta a caminho, com muitos melhoramentos, por isso é importante que eu
receba sugestões para o projeto.

Há uma nova versão do modulo Mysql
A versão apontada pelo tutorial é a versão 1.1 e a nova versão é a 1.2
http://sceo.hospedaria.com.br/ferramentas/sceo_mysql_1.2.tar.bz2

Foi corrigido apenas um bug no controle de quota para caixas postais gigantes.

Abraço a todos e mais uma vez obrigado a equipe do VOL.



[12] Comentário enviado por lpriori em 14/11/2008 - 16:46h

Esta disponível no site do projeto o Sceo-UI. É uma ferramenta extremamente útil escrita em PHP para administrar seu servidor de emails.
Foi programada pelo Ananias (kram3r)

O link é http://sceo.hospedaria.com.br/ferramentas/sceo-ui-0.6.tar.gz


Obrigado Ananias por contribuir para o projeto. O administrador ficou excelente.

[13] Comentário enviado por lpriori em 12/12/2008 - 13:05h

Me desculpem mais eu percebi um erro no tutorial. É um erro de digitação apenas.

Na parte de Greylist, a regra que aciona o programa no arquivo regras_destinatario esta incorreta.

Na regra:
!SPF_resp? "1" !Auth? Internal_rcpt? Exec! "sceo_greylist -i %s -f %f -t %r" Exec_resp? "1" Reply! "451 Tente mais tarde" Deny!

A primeira condição esta digitada de forma errada, o correto é:
!Spf_resp? "1" .....

Com o erro, a Greylist acaba não sendo processada e por conseqüência, muitos Spams passam.



[14] Comentário enviado por calaff2 em 31/01/2009 - 23:46h

Ae meu velho estou com alguns problemas nunca configurei um servidor de email.
Vamos lá:
telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.

login lucas@dominio.com.br mudar123
-ERR Invalid command.

login idalmo@ipxba.no-ip.biz
-ERR Invalid command.

elnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.

user lucas@dominio.com.br
+OK Password required.

ass mudar123
-ERR Temporary problem, please try again later
Connection closed by foreign host.

telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
user idalmo@ipxba.no-ip.biz
+OK Password required.
pass mudar123
-ERR Temporary problem, please try again later
Connection closed by foreign host.




[15] Comentário enviado por lpriori em 01/02/2009 - 12:56h

Olá calaff2,

O primeiro problema ocorreu porque você errou a porta. Você deu comandos de IMAP no POP3

"login lucas@dominio.com.br mudar123" é um comando de IMAP que funciona na porta 143

Veja que você deu um telnet na porta 110

O outro problema ocorreu porque provavelmente você não criou o diretorio HOME do email lucas@dominio.com.br

De uma olhada no tutorial, antes ele te manda criar o diretorio home do email...

Abraço,
Lucas

[16] Comentário enviado por calaff2 em 01/02/2009 - 14:41h

Lucas você tem como informar seu msn e seu email para contato tirar algumas duvidas?


telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information.
? login lucas@dominio.com.br mudar123
* BYE Temporary problem, please try again later
Connection closed by foreign host.


telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
user lucas@dominio.com.br
+OK Password required.
pass mudar123
-ERR Temporary problem, please try again later
Connection closed by foreign host.



ta criado o direotrio

ls /home/mail/dominio.com.br/lucas/Maildir/
cur/ maildirsize new/ tmp/

ls /home/mail/ipxba.no-ip.biz/idalmo/Maildir/
cur/ maildirsize new/ tmp/


Att: Idalmo Junior

[17] Comentário enviado por lpriori em 02/02/2009 - 16:10h

Pode ser um problema de permissão então.

Tente dar um chmod -R 755 em /home/mail
chmod -R 755 /home/mail

o Corrier é meio chatinho mesmo.

Algum passo foi pulado no tutorial. Verifique se o /usr/local/libexec/courier-authlib/authdaemond esta rodando.


Você pode me contactar pelo email sceo@hospedaria.com.br

Abraço,
Lucas

[18] Comentário enviado por lpriori em 02/02/2009 - 16:11h

Esqueci de um detalhe,

Verifique se é o usuario do diretorio também.

chown -R sceo. /home/mail


[19] Comentário enviado por calaff2 em 11/02/2009 - 14:18h

Lucas velho você esta vivo ? hauhauha mandei alguns emails para você e até agora não recebi resposta .

Abraços

Att: Idalmo Junior

[20] Comentário enviado por lpriori em 22/06/2009 - 15:36h

Gostaria de informar que o código fonte do MTA Sceo será disponibilizado em breve sob licença GPL.
O código fonte esta sendo preparado para um fácil entendimento, como adição de comentários, estrutura interna de distribuição das funções em arquivos fonte separados, etc...

Espero poder contar com a comunidade livre

[21] Comentário enviado por kram3r em 22/06/2009 - 15:46h

Ótima notícia.
Lembrando que uma das ferramentas externas do sceo já é GPL (nasceu GPL)
O Sceo-UI que era de minha autoria e que já foi modificado por 4 pessoas e hoje tem um mantedor junto comigo na re-escrita do zero utilizando o framework CodeIgniter.
Parabéns pela decisão!

[22] Comentário enviado por poetah em 02/10/2009 - 11:15h

Belo artigo,
mais aqui não se encontra a pasta com o file
para iniciar o imap

/usr/lib/courier-imap/libexec/imapd.rc

debian lenny aqui

?


[23] Comentário enviado por poetah em 03/10/2009 - 01:09h

disfarça, acabei não lendo os erro na compilação e nao vi que precisa de permissão ali para criar as pastas!!!

(Y)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts