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.088 ]

Por: Lucas Priori em 15/09/2008


MTA Sceo



A instalação dele é extremamente simples, copie o arquivo sceo_0_28b.tar.bz2 para a raiz do sistema e descompacte-o lá:

# cd /home/temp
# cp sceo_0_28b.tar.bz2 /
# cd /
# tar xjvf sceo_0_28b.tar.bz2


Edite seu arquivo de configuração:

# pico /usr/local/sceo/sceo.conf

Em Server_name coloque o nome do endereço reverso de seu servidor. Altere seu arquivo sceo.conf de forma a ficar com estas opções:

Module "/usr/local/sceo/mod/sceo_mysql /usr/local/sceo/mod/sceo_mysql.conf"
Dlocal "/usr/local/bin/maildrop -d %l <"

Lembre-se de COMENTAR ou APAGAR as antigas linhas das opções alteradas:

Module "" e Dlocal "/usr/bin/procmail -d %l <"

Salve e saia do arquivo de configuração. Faça um link para o programa 'fila' do /usr/local/sceo/fila em /usr/sbin. Este programa é usado para listar a atual fila do Sceo.

# ln -s /usr/local/sceo/fila /usr/sbin/fila

Vamos instalar o módulo sceo_mysql. Copie o sceo_mysql_1.1.tar.bz2 para /usr/local/sceo/mod e descompacte-o lá:

# cd /home/temp
# cp sceo_mysql_1.1.tar.bz2 /usr/local/sceo/mod
# cd /usr/local/sceo/mod
# tar xjvf sceo_mysql_1.1.tar.bz2


Agora vamos compilá-lo:

# gcc sceo_mysql.c -o sceo_mysql -lmysqlclient -lcrypt

Lembre-se que estou instalando os programas em um Linux Slackware 12 Full. Caso de algum erro na compilação, com certeza é porque você não instalou todos os pacotes do mysql.

Edite o arquivo sceo_mysql.conf:

# pico sceo_mysql.conf

Deixe-o desta forma:

host= localhost
db= mail
user= sceo
pass= minhasenha
user_table= users
user_login_field= mail
user_pass_field= pass
user_pass_type= crypt
user_home_field= home
user_maildir_field= maildir
user_quota_field= quota
quota_type= maildirsize
domain_table= domain
domain_field= name
alias_table= aliases
alias_field= alias
alias_rcpt_field= rcpt

Lembre-se de deixar a opção pass= com a senha correta de seu banco de dados. Salve e saia do arquivo.

Vamos testar o módulo:

# ./sceo_mysql sceo_mysql.conf
+OK SCEO_Mysql v 1.1 Conectado

Digite:

local dominio.com.br
+OK

Digite:

local teste.com.br
-Nao local

Digite:

user lucas@dominio.com.br
+OK

Digite:

user teste@dominio.com.br
-Email inexistente

Digite:

quota lucas@dominio.com.br
+OK 250000000

Tudo funcionando, digite CTRL + C para sair do módulo. 250000000 (~ 250 Mb) é o valor que especificamos como padrão na criação do banco de dados.

Agora vamos ligar o Sceo:

# /etc/rc.d/rc.sceo start

Dê um "ps ax" para ver se ele apareceu na lista de processos com seus módulos:

# ps ax
.
.
.
6222 ? Ss 0:00 /usr/local/sceo/sceo
6223 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
6225 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
6227 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
6229 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
6231 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
6233 ? S 0:00 /usr/local/sceo/sceo

Os módulos e o processo principal rodam como root. Mas os processos filhos criados para tratar as novas conexões e os arquivos de fila rodam com usuário 'sceo'.

Vamos testá-lo:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost SMTP SCEO v0.28b

Digite:

ehlo testador
250-localhost
250-SIZE 10485760
250-AUTH PLAIN LOGIN
250 8BITMIME

Digite:

mail from: <>
250 Remetente liberado

Digite:

rcpt to: <lucas@dominio.com.br>
250 Destinatario liberado

Teste agora um usuário que NÃO existe:

Digite:

rcpt to: <teste@dominio.com.br>
550 Esse email nao existe. (no such user) <teste@dominio.com.br>

Digite:

quit

Se você quer que o Sceo reenvie os emails de sua rede interna (Relay), basta acrescentar a seguinte linha no arquivo /usr/local/sceo/regras_conexao. Digamos que sua rede interna seja 10.0.0.0/24:

Ip? "10.0.0.0/24" Relay!

Salve e saia do arquivo. Não é preciso reiniciar o Sceo. Tudo ok com o servidor SMTP.

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

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

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

Benchmark entre servidores de e-mails

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

Leitura recomendada

Servidor de e-mail com OpenBSD - Postfix & Cia

Os atuais MDAs e as linguagens de filtragem de e-mail (parte 1 - Procmail)

Configurando servidor IMAP

Qmail a La Toaster no Debian Etch

Webmail Squirrelmail e Roundcubemail, Clamav e SpamAssassin integrados no MTA Postfix

  
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